From cf0fb5349d64b1319805b6f1ee4147f3f302ea42 Mon Sep 17 00:00:00 2001 From: Jose Quintana Date: Mon, 13 Jan 2020 23:30:17 +0100 Subject: [PATCH] docs: update new options usage --- README.md | 65 ++++++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index d5221c9..3bed023 100644 --- a/README.md +++ b/README.md @@ -9,30 +9,40 @@ - Built with [Rust](https://rust-lang.org) which is focused on [safety, speed, and concurrency](https://kornel.ski/rust-c-speed). - Memory safety and reduced overhead of CPU and RAM resources. - Blazing fast static files-serving thanks to [Rust Iron](https://github.com/iron/iron). -- Suitable for small [GNU/Linux Docker containers](https://hub.docker.com/r/joseluisq/static-web-server). It's a fully __1.8MB__ static binary thanks to [Rust and Musl libc](https://doc.rust-lang.org/edition-guide/rust-2018/platform-and-target-support/musl-support-for-fully-static-binaries.html). +- Suitable for small [GNU/Linux Docker containers](https://hub.docker.com/r/joseluisq/static-web-server). It's a fully __4,3M__ static binary thanks to [Rust and Musl libc](https://doc.rust-lang.org/edition-guide/rust-2018/platform-and-target-support/musl-support-for-fully-static-binaries.html) (`x86_64-unknown-linux-musl`). - Gzip compression by default. - Cache control headers included. - Configurable via environment variables or CLI arguments. - TLS support via [Rust Native TLS](https://docs.rs/native-tls/0.2.3/native_tls/) crate. - Lightweight logging support. +- MacOs (`x86_64-apple-darwin`) binary support thanks to [Rust Linux / Darwin Builder](https://github.com/joseluisq/rust-linux-darwin-builder). - [Scratch](https://hub.docker.com/_/scratch) and [latest Alpine Linux](https://hub.docker.com/_/alpine) Docker images available. ## Usage -Server is configured either via environment variables: +Server can be configured either via environment variables or command-line arguments. -- **SERVER_NAME**: Name for server. Default `my-static-server`. -- **SERVER_HOST**: Host address (E.g 127.0.0.1). Default `[::]`. -- **SERVER_PORT**: Host port. Default `80`. -- **SERVER_ROOT**: Root directory path of static files. Default `./public`. -- **SERVER_ASSETS**: Assets directory path for add cache headers functionality. Default `./assets` but relative to the root. -- **SERVER_ERROR_PAGE_404**: HTML file path for 404 errors. If path is not specified or simply don't exists then server will use a generic HTML error message. Default `./public/404.html`. -- **SERVER_ERROR_PAGE_50X**: HTML file path for 50x errors. If path is not specified or simply don't exists then server will use a generic HTML error message. Default `./public/50x.html`. +### Environment Variables -Or command line arguments listed with `cargo run -- -h`. +| Variable | Description | Default | +| --- | --- | --- | +| `SERVER_NAME` | Name for server. | Default `my-static-server`. | +| `SERVER_HOST` | Host address (E.g 127.0.0.1). | Default `[::]`. | +| `SERVER_PORT` | Host port. | Default `80`. | +| `SERVER_ROOT` | Root directory path of static files. | Default `./public`. | +| `SERVER_ASSETS` | Assets directory path for add cache headers functionality. | Default `./assets` but relative to the root. | +| `SERVER_ERROR_PAGE_404` | HTML file path for 404 errors. | If path is not specified or simply don't exists then server will use a generic HTML error message. Default `./public/404.html`. +| `SERVER_ERROR_PAGE_50X` | HTML file path for 50x errors. | If path is not specified or simply don't exists then server will use a generic HTML error message. Default `./public/50x.html` | +| `SERVER_TLS` | Enables TLS/SSL support. Make sure also to adjust current server port. | Default `false` | +| `SERVER_TLS_PKCS12` | A cryptographic identity [PKCS #12](https://docs.rs/native-tls/0.2.3/native_tls/struct.Identity.html#method.from_pkcs12) bundle file path containing a [X509 certificate](https://en.wikipedia.org/wiki/X.509) along with its corresponding private key and chain of certificates to a trusted root. | Default empty | +| `SERVER_TLS_PKCS12_PASSWD` | A specified password to decrypt the private key. | Default empty | + +### Command-line arguments + +CLI arguments listed with `static-web-server -h`. ``` -static-web-server 1.2.0 +static-web-server 1.4.0 A blazing fast static files-serving web server powered by Rust Iron USAGE: @@ -43,18 +53,27 @@ FLAGS: -V, --version Prints version information OPTIONS: - --assets Assets directory path for add cache headers functionality [env: SERVER_ASSETS=] - [default: ./assets] - --host Host address (E.g 127.0.0.1) [env: SERVER_HOST=] [default: [::]] - --name Name for server [env: SERVER_NAME=] [default: my-static-server] - --page404 HTML file path for 404 errors. If path is not specified or simply don't exists then - server will use a generic HTML error message. [env: SERVER_ERROR_PAGE_404=] [default: - ./public/404.html] - --page50x HTML file path for 50x errors. If path is not specified or simply don't exists then - server will use a generic HTML error message. [env: SERVER_ERROR_PAGE_50X=] [default: - ./public/50x.html] - --port Host port [env: SERVER_PORT=] [default: 80] - --root Root directory path of static files [env: SERVER_ROOT=] [default: ./public] + --assets + Assets directory path for add cache headers functionality [env: SERVER_ASSETS=] [default: ./assets] + + --host Host address (E.g 127.0.0.1) [env: SERVER_HOST=] [default: [::]] + --name Name for server [env: SERVER_NAME=] [default: my-static-server] + --page404 + HTML file path for 404 errors. If path is not specified or simply don't exists then server will use a + generic HTML error message [env: SERVER_ERROR_PAGE_404=] [default: ./public/404.html] + --page50x + HTML file path for 50x errors. If path is not specified or simply don't exists then server will use a + generic HTML error message [env: SERVER_ERROR_PAGE_50X=] [default: ./public/50x.html] + --port Host port [env: SERVER_PORT=] [default: 80] + --root + Root directory path of static files [env: SERVER_ROOT=] [default: ./public] + + --tls Enables TLS/SSL support [env: SERVER_TLS=] + --tls-pkcs12 + A cryptographic identity PKCS #12 bundle file path containing a X509 certificate along with its + corresponding private key and chain of certificates to a trusted root [env: SERVER_TLS_PKCS12=] [default: ] + --tls-pkcs12-passwd + A specified password to decrypt the private key [env: SERVER_TLS_PKCS12_PASSWD=] [default: ] ``` ## Docker stack -- libgit2 1.7.2