2017-09-12 07:13:26 +00:00
+++
title = "CLI usage"
2017-09-27 14:37:17 +00:00
weight = 2
2017-09-12 07:13:26 +00:00
+++
2019-08-13 18:15:56 +00:00
Zola only has 4 commands: `init` , `build` , `serve` and `check` .
2017-09-27 14:37:17 +00:00
2018-10-18 21:09:32 +00:00
You can view the help of the whole program by running `zola --help` and
the command help by running `zola <cmd> --help` .
2017-09-27 14:37:17 +00:00
## init
2019-08-13 18:15:56 +00:00
Creates the directory structure used by Zola at the given directory after asking a few basic configuration questions.
Any choices made during those prompts can easily be changed by modifying the `config.toml` .
2017-09-27 14:37:17 +00:00
```bash
2018-10-18 21:09:32 +00:00
$ zola init my_site
2019-08-13 17:56:57 +00:00
$ zola init
2017-09-27 14:37:17 +00:00
```
2019-08-13 17:56:57 +00:00
If the `my_site` folder already exists, Zola will only populate it if it does not contain non-hidden files (dotfiles are ignored). If no `my_site` argument is passed, Zola will try to populate the current directory.
You can initialize a git repository and a Zola site directly from within a new folder:
```bash
$ git init
$ zola init
```
2017-09-27 14:37:17 +00:00
## build
2019-01-05 10:04:12 +00:00
This will build the whole site in the `public` directory after deleting it.
2017-09-27 14:37:17 +00:00
```bash
2018-10-18 21:09:32 +00:00
$ zola build
2017-09-27 14:37:17 +00:00
```
2017-10-05 01:56:13 +00:00
You can override the config `base_url` by passing a new URL to the `base-url` flag.
```bash
2018-10-18 21:09:32 +00:00
$ zola build --base-url $DEPLOY_URL
2017-10-05 01:56:13 +00:00
```
2018-08-05 08:29:53 +00:00
This is useful for example when you want to deploy previews of a site to a dynamic URL, such as Netlify
2017-10-19 11:48:50 +00:00
deploy previews.
2018-10-10 21:21:58 +00:00
You can override the default output directory 'public' by passing a other value to the `output-dir` flag.
2018-03-16 18:11:08 +00:00
2017-12-29 18:25:06 +00:00
```bash
2018-10-18 21:09:32 +00:00
$ zola build --output-dir $DOCUMENT_ROOT
2017-12-29 18:25:06 +00:00
```
2018-03-16 18:11:08 +00:00
You can also point to another config file than `config.toml` like so - the position of the `config` option is important:
```bash
2018-10-18 21:09:32 +00:00
$ zola --config config.staging.toml build
2018-03-16 18:11:08 +00:00
```
2019-08-24 20:23:08 +00:00
By defaults, drafts are not loaded. If you wish to include them, pass the `--drafts` flag.
2017-09-27 14:37:17 +00:00
## serve
This will build and serve the site using a local server. You can also specify
the interface/port combination to use if you want something different than the default (`127.0.0.1:1111`).
2018-08-05 08:29:53 +00:00
You can also specify different addresses for the interface and base_url using `-u` /`--base-url`, for example
2018-10-18 21:09:32 +00:00
if you are running zola in a Docker container.
2018-02-02 16:18:07 +00:00
2019-07-04 21:42:37 +00:00
Use the `--open` flag to automatically open the locally hosted instance in your
web browser.
2018-11-01 22:36:47 +00:00
In the event you don't want zola to run a local webserver, you can use the `--watch-only` flag.
2019-01-07 18:24:08 +00:00
Before starting, it will delete the public directory to ensure it starts from a clean slate.
2017-09-27 14:37:17 +00:00
```bash
2018-10-18 21:09:32 +00:00
$ zola serve
$ zola serve --port 2000
$ zola serve --interface 0.0.0.0
$ zola serve --interface 0.0.0.0 --port 2000
$ zola serve --interface 0.0.0.0 --base-url 127.0.0.1
$ zola serve --interface 0.0.0.0 --port 2000 --output-dir www/public
2018-11-01 22:36:47 +00:00
$ zola serve --watch-only
2019-07-04 21:42:37 +00:00
$ zola serve --open
2017-09-27 14:37:17 +00:00
```
The serve command will watch all your content and will provide live reload, without
hard refresh if possible.
2017-10-03 15:21:18 +00:00
2018-10-18 21:09:32 +00:00
Zola does a best-effort to live reload but some changes cannot be handled automatically. If you
fail to see your change or get a weird error, try to restart `zola serve` .
2018-03-16 18:11:08 +00:00
You can also point to another config file than `config.toml` like so - the position of the `config` option is important:
```bash
2018-10-18 21:09:32 +00:00
$ zola --config config.staging.toml serve
2018-03-16 18:11:08 +00:00
```
2018-09-22 14:05:07 +00:00
2019-08-24 20:23:08 +00:00
By defaults, drafts are not loaded. If you wish to include them, pass the `--drafts` flag.
2019-05-27 12:05:07 +00:00
### check
The check subcommand will try to build all pages just like the build command would, but without writing any of the
2019-06-26 14:50:29 +00:00
results to disk. Additionally, it will also check all external links present in Markdown files by trying to fetch
them (links present in the template files will not be checked).
2019-05-27 12:05:07 +00:00
2019-08-24 20:23:08 +00:00
By defaults, drafts are not loaded. If you wish to include them, pass the `--drafts` flag.
2018-09-22 14:05:07 +00:00
## Colored output
Any of the three commands will emit colored output if your terminal supports it.
*Note*: coloring is automatically disabled when the output is redirected to a pipe or a file (ie. when the standard output is not a TTY).
You can disable this behavior by exporting one of the two following environment variables:
- `NO_COLOR` (the value does not matter)
- `CLICOLOR=0`
Should you want to force the use of colors, you can set the following environment variable:
- `CLICOLOR_FORCE=1`