Awesome
Statiks
Fast, zero-configuration, static HTTP filer server.
Like Python's SimpleHTTPServer
but scalable.
Features
- HTTP and HTTPS (TLS/SSL)
- Support directory list
- Cache control and "Last-Modified"
- Delay response
- CORS support
- Content compression (gzip)
- Request logging
Installation
Via Binaries
Via Homebrew (macOS)
brew tap janiltonmaciel/homebrew-tap
brew install statiks
Via Docker
The official janilton/statiks image is available on Docker Hub.
docker container run -p 9080:9080 -v .:/var/www --rm janilton/statiks
Volume dir: /var/www
Expose port: 9080
Use
statiks [options] <path>
OPTIONS:
--host value, -h value host address to bind to (default: "0.0.0.0") [$HOST]
--port value, -p value port number (default: "9080") [$PORT]
--quiet, -q enable quiet mode, do not output each incoming request (default: false)
--add-delay value add delay to responses (in milliseconds) (default: 0)
--cache value set cache time (in seconds) for cache-control max-age header (default: 0)
--no-index disable directory listings (default: false)
--compression enable gzip compression (default: false)
--include-hidden enable hidden files as normal (default: false)
--cors enable CORS allowing all origins with all standard methods with any header and credentials. (default: false)
--ssl enable https (default: false)
--cert value path to the ssl cert file (default: "cert.pem")
--key value path to the ssl key file (default: "key.pem")
--help show help (default: false)
--version, -v print the version (default: false)
<path>
defaults to.
(relative path to the current directory)
Examples
- start server at http://0.0.0.0:9000 serving "." current directory
statiks -port 9000
- start server at http://0.0.0.0:9080 serving "/home" with CORS
statiks --cors /home
- start server at http://192.168.1.100:9080 serving "/tmp" with gzip compression
statiks --host 192.168.1.100 --compression /tmp
- start server at https://0.0.0.0:9080 serving "." with HTTPS
statiks --ssl --cert cert.pem --key key.pem
- start server at http://0.0.0.0:9080 serving "/tmp" with delay response 100ms
statiks --add-delay 100 /tmp
Credits
- Check - go-check/check (testing)
- Cli - urfave/cli
- Cors - rs/cors
- Httpexpect - gavv/httpexpect (testing)
- Negroni - urfave/negroni