scripts | ||
site | ||
src | ||
tests | ||
.gitignore | ||
.npmignore | ||
circle.yml | ||
Dockerfile | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json | ||
tslint.json |
tstatic
The only static-file server you'll ever need!
Features:
- Logging -
winston
- Basic-Auth -
basic-auth
- Custom 404 page
- Optimum Compression -
compression
- Security checks / headers -
helmet
- Opbeat error-reporting - docs
- Whitelist IP Addresses -
express-ip-access-control
- Directory Listing -
serve-index
Usage
tstatic <dir> [options]
-h --help Show this screen.
--version Show version.
-p <port> --port=<port> Port to listen on.
-b <auth> --basic-auth=<auth> Enable basic-auth.
-i <ips> --ips=<ips> Allowed IP addresses.
-l --list-dir List Directory.
--opbeat Enable Opbeat.
-o --open Open in browser after start.
dir
is where your static files are.
404 errors will return with <dir>/.404.html
, with status code 404. If this file doesnt exist, the default error page will be shown.
Configuration
port
The port for the server to listen on. Currently supports plain HTTP only
basic-auth
Enable basic-auth for all paths. Currently only supports single credentals.
Format:-b username:password
ips
IP addresses that are allowed to connect to the server.
Format: -i 192.168.1.100,192.168.1.101
list-dir
Enables directory listing. Allow browseing
opbeat
Enable opbeat error reporting. --opbeat
only enables this, configuration is done using environment varables.
open
Open the server in the browser one started. It will open in your default browser, and use url http://0.0.0.0:<port>
.
Docker
Included in this repo is a Dockerfile
to use. The default setup requires being run from the project directory, and will serve /public
in the container on port 5000
. By default, this directory is empty, however can be overriden.
Below is an example docker-compose.yml
file you can use with it:
version: "2"
services:
tstatic:
image: "tstatic"
build:
context: .
dockerfile: Dockerfile
volumes:
- ./site/:/public
ports:
- "5000:5000"
Note: tstatic
isn't installed into the path, so run it using npm start --