Environment Variables
The server can be configured via the following environment variables.
Remember
- Environment variables are equivalent to their command-line arguments.
- Command-line arguments take precedence over their equivalent environment variables.
SERVER_HOST
The address of the host (e.g. 127.0.0.1). Default [::].
SERVER_PORT
The port of the host. Default 80.
SERVER_LISTEN_FD
Optional file descriptor number (e.g. 0) to inherit an already-opened TCP listener (instead of using SERVER_HOST and/or SERVER_PORT). Default empty (disabled).
SERVER_ROOT
Relative or absolute root directory path of static files. Default ./public.
SERVER_CONFIG_FILE
The Server configuration file path is in TOML format. See The TOML Configuration File.
SERVER_GRACE_PERIOD
Defines a grace period in seconds after a SIGTERM signal is caught which will delay the server before shutting it down gracefully. The maximum value is 255 seconds. The default value is 0 (no delay).
SERVER_LOG_LEVEL
Specify a logging level in lowercase. Possible values are error, warn, info, debug or trace. Default error.
SERVER_LOG_WITH_ANSI
Enable or disable ANSI escape codes for colors and other text formatting of the log output.
SERVER_LOG_REMOTE_ADDRESS
Log incoming request information along with its Remote Address (IP) if available using the info log level. Default false.
SERVER_LOG_X_REAL_IP
Log the X-Real-IP header if available using the info log level. Default false.
SERVER_LOG_FORWARDED_FOR
Log the X-Forwarded-For header if available using the info log level. Default false.
SERVER_TRUSTED_PROXIES
A comma separated list of IP addresses to accept the X-Forwarded-For header from. An empty string means trust all IPs. Default ""
SERVER_ERROR_PAGE_404
HTML file path for 404 errors. If the path is not specified or simply doesn't exist then the server will use a generic HTML error message. If a relative path is used then it will be resolved under the root directory. Default ./404.html.
SERVER_ERROR_PAGE_50X
HTML file path for 50x errors. If the path is not specified or simply doesn't exist then the server will use a generic HTML error message. If a relative path is used then it will be resolved under the root directory. Default ./50x.html
SERVER_FALLBACK_PAGE
A HTML file path (not relative to the root) used for GET requests when the requested path doesn't exist. The fallback page is served with a 200 status code, useful when using client routers. If the path doesn't exist then the feature is not activated.
SERVER_THREADS_MULTIPLIER
The number of worker threads multiplier will be multiplied by the number of system CPUs using the formula: worker threads = number of CPUs * n where n is the value that changes here. When the multiplier value is 0 or 1 then the number of CPUs is used. The number of worker threads result should be a number between 1 and 32,768 though it is advised to keep this value on the smaller side. Default one thread per core.
SERVER_MAX_BLOCKING_THREADS
Maximum number of blocking threads.
SERVER_HTTP2_TLS
Enable HTTP/2 with TLS support. Make sure also to adjust the current server port. Default false (disabled).
SERVER_HTTP2_TLS_CERT
Specify the file path to read the certificate. Default empty (disabled).
SERVER_HTTP2_TLS_KEY
Specify the file path to read the private key. Default empty (disabled).
SERVER_HTTPS_REDIRECT
Redirect all requests with scheme "http" to "https" for the current server instance. It depends on "http2" to be enabled.
SERVER_HTTPS_REDIRECT_HOST
Canonical hostname or IP of the HTTPS (HTTPS/2) server. It depends on "https-redirect" to be enabled. Default localhost.
SERVER_HTTPS_REDIRECT_FROM_PORT
HTTP host port where the redirect server will listen for requests to redirect them to HTTPS. It depends on "https-redirect" to be enabled. Default 80.
SERVER_HTTPS_REDIRECT_FROM_HOSTS
List of host names or IPs allowed to redirect from. HTTP requests must contain the HTTP 'Host' header and match against this list. It depends on "https-redirect" to be enabled. Default localhost.
SERVER_CORS_ALLOW_ORIGINS
Specify an optional CORS list of allowed origin hosts separated by commas. Host ports or protocols aren't being checked. Use an asterisk (*) to allow any host. Default empty (disabled).
SERVER_CORS_ALLOW_HEADERS
Specify an optional CORS list of allowed HTTP headers separated by commas. It requires SERVER_CORS_ALLOW_ORIGINS to be used along with. Default origin, content-type.
SERVER_CORS_EXPOSE_HEADERS
Specify an optional CORS list of exposed HTTP headers separated by commas. It requires SERVER_CORS_ALLOW_ORIGINS to be used along with. Default origin, content-type.
SERVER_COMPRESSION
Gzip, Deflate, Brotli or zlib compression on demand determined by the Accept-Encoding header and applied to text-based web file types only. See ad-hoc mime-type list. Default true (enabled).
SERVER_COMPRESSION_LEVEL
Supported values are fastest (fast compression but larger resulting files), best (smallest file size but potentially slow) and default (algorithm-specific balanced compression level). Default is default.
SERVER_COMPRESSION_STATIC
Look up the pre-compressed file variant (.gz, .br or .zst) on the disk of a requested file and serve it directly if available. Default false (disabled). The compression type is determined by the Accept-Encoding header.
SERVER_DIRECTORY_LISTING
Enable directory listing for all requests ending with the slash character (‘/’). Default false (disabled).
SERVER_DIRECTORY_LISTING_ORDER
Specify a default code number to order directory listing entries per Name, Last modified or Size attributes (columns). Code numbers supported: 0 (Name asc), 1 (Name desc), 2 (Last modified asc), 3 (Last modified desc), 4 (Size asc), 5 (Size desc). Default 6 (unordered).
SERVER_DIRECTORY_LISTING_FORMAT
Specify a content format for the directory listing entries. Formats supported: html or json. Default html.
SERVER_DIRECTORY_LISTING_DOWNLOAD
Specify list of enabled format(s) for directory download. Format supported: targz. Default to empty list (disabled).
SERVER_SECURITY_HEADERS
Enable security headers by default when the HTTP/2 feature is activated. Headers included: Strict-Transport-Security: max-age=63072000; includeSubDomains; preload (2 years max-age), X-Frame-Options: DENY and Content-Security-Policy: frame-ancestors 'self'. Default false (disabled).
SERVER_CACHE_CONTROL_HEADERS
Enable cache control headers for incoming requests based on a set of file types. The file type list can be found in src/control_headers.rs file. Default true (enabled).
SERVER_BASIC_AUTH
It provides The "Basic" HTTP Authentication Scheme using credentials as user-id:password pairs, encoded using Base64. Password must be encoded using the BCrypt password-hashing function. Default empty (disabled).
SERVER_REDIRECT_TRAILING_SLASH
Check for a trailing slash in the requested directory URI and redirect permanent (308) to the same path with a trailing slash suffix if it is missing. Default true (enabled).
SERVER_IGNORE_HIDDEN_FILES
Ignore hidden files/directories (dotfiles), preventing them from being served and being included in auto HTML index pages (directory listing).
SERVER_DISABLE_SYMLINKS
Prevent following files or directories if any path name component is a symbolic link.
SERVER_USE_RELATIVE_ROOT
When enabled, the root directory canonicalization at startup is skipped. This allows symlinked root directories to be resolved at request time rather than at startup, making it possible to swap symlink targets at runtime without restarting the server. See Use Relative Root for details and security considerations. Default false.
SERVER_HEALTH
Activate the health endpoint.
SERVER_ACCEPT_MARKDOWN
Enable markdown content negotiation. When a client sends Accept: text/markdown header, the server will serve markdown files (.md or .html.md) if available. See Markdown Content Negotiation for details. Default false.
SERVER_TEXT_CHARSET
Declare a default charset parameter on text/* responses that don't already carry one. See Default Charset for Text Responses for details. Default utf-8; set to an empty value to disable.
SERVER_INDEX_FILES
List of files that will be used as an index for requests ending with the slash character (‘/’). Files are checked in the specified order. Default index.html.
SERVER_MAINTENANCE_MODE
Enable the server's maintenance mode functionality.
SERVER_MAINTENANCE_MODE_STATUS
Provide a custom HTTP status code when entering into maintenance mode. Default 503.
SERVER_MAINTENANCE_MODE_FILE
Provide a custom maintenance mode HTML file. If not provided then a generic message will be displayed.
SERVER_METRICS
Activate the Prometheus metrics endpoint. See Metrics for details.
Windows
The following options and commands are Windows platform-specific.
SERVER_WINDOWS_SERVICE
Run the web server in a Windows Service context. See more details.