Serve is escript to quickly start an HTTP server, similar to quick-start solutions available in other languages:
$ php -S localhost:8080
$ ruby -run -e httpd . -p 8080
$ python3 -m http.server 8080
With Serve, you can quickly start an HTTP server:
$ serve /var/www/html
[info] Serving /var/www/html with Cowboy 2.13.0 at http://127.0.0.1:4444
To install from Hex, run:
$ mix escript.install hex serve
To build and install it locally run:
$ mix install
it's a alias for:
$ mix do deps.get, escript.build, escript.install
Note: For convenience, consider adding
~/.mix/escripts
directory to your$PATH
environment variable. If you are using asdf Whenever you install a new escript withmix escript.install
you need toasdf reshim elixir
in order to create shims for it.
If you want to uninstall Serve simply run:
$ mix escript.uninstall serve
You can pass options directly to serve
-p
,--port
- Specify the port to listen on (default:4444
).-o
,--open
- Open the browser automatically.-n
,--no-index
- Disable directory listing.-v
,--version
- Shows Serve version.-h
,--help
- Shows Serve usage information.
$ serve --port 3000
Serve also supports environment variables for all options. Simply use env with MIX_SERVE_
prefix.
$ MIX_SERVE_PORT=3000 serve
You can also add exports to yours profile file, for example:
export MIX_SERVE_PORT=8000
export MIX_SERVE_OPEN=true
export MIX_SERVE_NO_INDEX=true
Serve accepts one argument: the directory to be served. If no directory is specified, the current working directory is used.
$ pwd
/var/www/html/my_website
$ serve
[info] Serving /var/www/html/my_website with Cowboy 2.13.0 at http://localhost:4444
$ mix docs
Generating docs...
View "html" docs at "doc/index.html"
View "epub" docs at "doc/serve.epub"
$ serve s doc
[info] Serving /home/quex/workspace/serve/doc with Cowboy 2.13.0 at http://localhost:4444
- dark mode
- directory index
Although Serve uses the robust Cowboy HTTP server, it is not intended to be a production-ready web server. It only supports the HTTP protocol and listens on the loopback interface.