You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Jeromy Streets 55e5221816
Merge pull request #21 from halverneus/chore/go1.11.5
5 years ago
bin/serve Added command-line utility packages and integrated. 6 years ago
cli Added unit tests for referrer selection. Updated referrer conditional to handle empty list of referrers. 6 years ago
config Added unit tests to referer config option and fixed bug where YAML options would be ignored. 6 years ago
handle Added unit testing to referrer handler. Moved private function to bottom. Added function comments and removed commented-out code. 6 years ago
.dockerignore Creating multi-arch building container and consolidated version to Dockerfiles. 6 years ago
.gitignore Refactored and added unit tests for configuration 6 years ago
Dockerfile Upgraded compiler to Go 1.11.5 and rolled version to 1.6.1. 5 years ago
Dockerfile.all Upgraded compiler to Go 1.11.5 and rolled version to 1.6.1. 5 years ago
LICENSE Initial commit 7 years ago
README.md Minor README.md clean-up. 5 years ago
go.mod Updated dependencies and version number. Modified Dockerfile to place dependencies in a separate layer to speed development. 6 years ago
go.sum Updated dependencies and version number. Modified Dockerfile to place dependencies in a separate layer to speed development. 6 years ago

README.md

static-file-server

Introduction

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

Configuration

Environment Variables

Default values are shown with the associated environment variable.

# Enable debugging for troubleshooting. If set to 'true' this prints extra
# information during execution.
DEBUG=false

# Optional Hostname for binding. Leave black to accept any incoming HTTP request
# on the prescribed port.
HOST=

# If assigned, must be a valid port number.
PORT=8080

# Automatically serve the index file for a given directory (default). If set to
# 'false', URLs ending with a '/' will return 'NOT FOUND'.
SHOW_LISTING=true

# Folder with the content to serve.
FOLDER=/web

# 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'.
URL_PREFIX=

# 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.
TLS_CERT=
TLS_KEY=

# List of accepted HTTP referrers. Return 403 if HTTP header `Referer` does not
# match prefixes provided in the list.
# Examples:
#   'REFERRERS=http://localhost,https://...,https://another.name'
#   To accept missing referrer header, add a blank entry (start comma):
#   'REFERRERS=,http://localhost,https://another.name'
REFERRERS=

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').

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
referrers:
    - http://localhost
    - https://mydomain.com

Deployment

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 \
    halverneus/static-file-server:latest

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 \
    halverneus/static-file-server:latest

Getting Help

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