Need help with static-file-server?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

191 Stars 53 Forks MIT License 115 Commits 8 Opened issues


Tiny, simple static file server using environment variables for configuration

Services available


Need anything else?

Contributors list



Tiny, simple static file server using environment variables for configuration. Install from any of the following locations:

  • Docker Hub:
  • GitHub:


Environment Variables

Default values are shown with the associated environment variable.

# Enables resource access from any domain.

Enable debugging for troubleshooting. If set to 'true' this prints extra

information during execution. IMPORTANT NOTE: The configuration summary is

printed to stdout while logs generated during execution are printed to stderr.


Optional Hostname for binding. Leave black to accept any incoming HTTP request

on the prescribed port.


If assigned, must be a valid port number.


Automatically serve the index file for a given directory (default). If set to

'false', URLs ending with a '/' will return 'NOT FOUND'.


Folder with the content to serve.


URL path prefix. If 'my.file' is in the root of $FOLDER and $URL_PREFIX is

'/my/place' then file is retrieved with 'http://$HOST:$PORT/my/place/my.file'.


Paths to the TLS certificate and key. If one is set then both must be set. If

both set then files are served using HTTPS. If neither are set then files are

served using HTTP.


List of accepted HTTP referrers. Return 403 if HTTP header Referer does not

match prefixes provided in the list.



To accept missing referrer header, add a blank entry (start comma):



YAML Configuration File

YAML settings are individually overridden by the corresponding environment variable. The following is an example configuration file with defaults. Pass in the path to the configuration file using the command line option ('-c', '-config', '--config').

cors: false
debug: false
folder: /web
host: ""
port: 8080
referrers: []
show-listing: true
tls-cert: ""
tls-key: ""
url-prefix: ""

Example configuration with possible alternative values:

debug: true
folder: /var/www
port: 80
    - http://localhost


Without Docker

PORT=8888 FOLDER=. ./serve

Files can then be accessed by going to http://localhost:8888/my/file.txt

With Docker

docker run -d \
    -v /my/folder:/web \
    -p 8080:8080 \

This will serve the folder "/my/folder" over http://localhost:8080/my/file.txt

Any of the variables can also be modified:

docker run -d \
    -v /home/me/dev/source:/content/html \
    -v /home/me/dev/files:/content/more/files \
    -e FOLDER=/content \
    -p 8080:8080 \

Getting Help

./serve help
# OR
docker run -it halverneus/static-file-server:latest help

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.