The serve command
The serve
command is useful when you want to preview your book. It also does hot reloading of the webpage whenever a file changes.
It achieves this by serving the books content over localhost:3000
(unless otherwise configured, see below) and runs a websocket server on localhost:3001
which triggers the reloads.
This preferred by many for writing books with mdbook because it allows for you to see the result of your work instantly after every file change.
Specify a directory
Like watch
, serve
can take a directory as argument to use instead of the
current working directory.
mdbook serve path/to/book
Server options
serve
has four options: the http port, the websocket port, the interface to serve on, and the public address of the server so that the browser may reach the websocket server.
For example: suppose you had 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:
mdbook server path/to/book -p 8000 -i 127.0.0.1 -a 192.168.1.100
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.
--open
When you use the --open
(-o
) option, mdbook will open the book in your
your default web browser after starting the server.
--dest-dir
The --dest-dir
(-d
) option allows you to change the output directory for your book.
note: the serve
command has not gotten a lot of testing yet, there could be some rough edges. If you discover a problem, please report it on Github