Go to file
Abhinav Sarkar 28a534d74d Intial commit 2018-07-21 09:12:42 +05:30
src Intial commit 2018-07-21 09:12:42 +05:30
.gitignore Intial commit 2018-07-21 09:12:42 +05:30
Dockerfile Intial commit 2018-07-21 09:12:42 +05:30
LICENSE Intial commit 2018-07-21 09:12:42 +05:30
README.md Intial commit 2018-07-21 09:12:42 +05:30
Setup.hs Intial commit 2018-07-21 09:12:42 +05:30
hastatic.cabal Intial commit 2018-07-21 09:12:42 +05:30
package.yaml Intial commit 2018-07-21 09:12:42 +05:30
stack.yaml Intial commit 2018-07-21 09:12:42 +05:30

README.md

hastatic

hastatic is a tiny static web server for Docker.

Features

  • A tiny web server, just 3MB in size.
  • Statically compiled binary with no dependencies.
  • Built for Docker.
  • Supports custom 404 file.
  • Supports custom index files for URLs ending with "/".
  • Adds caching headers automatically.
  • Does not support HTTPS. It is expected that you run it behind a reverse-proxy server with HTTPS support, like nginx.

Usage

Create a Dockerfile for your website, deriving from abhin4v/hastatic:

FROM abhin4v/hastatic:latest

COPY mywebsite /opt/mywebsite
WORKDIR /opt/mywebsite
CMD ["/usr/bin/hastatic"]

Build and run:

$ docker build -t mywebsite .
$ docker run -p 8080:3000 mywebsite # run with default configs
$ docker run -e PORT=2000 -e NF_FILE=404.html -e IDX_FILE=index.html -p 8080:2000 mywebsite

Configuration

The Docker image supports these environment variable for configuration:

  • PORT: the port to run the web server on, default: 3000
  • NF_FILE: name of the custom 404 file, default: 404.html
  • IDX_FILE: name of the custom index files, default: index.html

Internals

hastatic is written in Haskell, just 30 lines of it. It uses the excellent Warp server underneath.