mdBook/book-example/src/cli/serve.md

51 lines
1.7 KiB
Markdown
Raw Normal View History

# The serve command
2018-08-03 05:52:54 +08:00
The serve command is used to preview a book by serving it over HTTP at
`localhost:3000` by default. Additionally it watches the book's directory
for changes, rebuilding the book and refreshing clients for each change.
A websocket connection is used to trigger the client-side refresh.
#### Specify a directory
2018-08-03 05:52:54 +08:00
The `serve` command can take a directory as an argument to use as the book's
root instead of the current working directory.
```bash
mdbook serve path/to/book
```
#### Server options
2018-08-03 05:52:54 +08:00
`serve` has four options: the HTTP port, the WebSocket port, the HTTP hostname
to listen on, and the hostname for the browser to connect to for WebSockets.
2018-08-03 05:52:54 +08:00
For example: suppose you have an nginx server for SSL termination which has a
public address of 192.168.1.100 on port 80 and proxied that to 127.0.0.1 on
port 8000. To run use the nginx proxy do:
```bash
2018-08-03 05:52:54 +08:00
mdbook serve path/to/book -p 8000 -n 127.0.0.1 --websocket-hostname 192.168.1.100
```
2018-08-03 05:52:54 +08:00
If you were to want live reloading for this you would need to proxy the
websocket calls through nginx as well from `192.168.1.100:<WS_PORT>` to
`127.0.0.1:<WS_PORT>`. The `-w` flag allows for the websocket port to be
configured.
2017-01-02 01:42:47 +08:00
#### --open
2018-08-03 05:52:54 +08:00
When you use the `--open` (`-o`) flag, mdbook will open the book in your
2017-01-02 01:42:47 +08:00
your default web browser after starting the server.
2017-01-17 08:11:39 +08:00
#### --dest-dir
2018-08-03 05:52:54 +08:00
The `--dest-dir` (`-d`) option allows you to change the output directory for
the book. If not specified it will default to the value of the
`build.build-dir` key in `book.toml`, or to `./book` relative to the book's
root directory.
2017-01-17 08:11:39 +08:00
-----
2018-08-03 05:52:54 +08:00
***Note:*** *The `serve` command is for testing, and is not intended
to be a complete HTTP server for a website.*