# tstatic [![CircleCI](https://img.shields.io/circleci/project/github/RealOrangeOne/tstatic.svg?style=flat-square)](https://circleci.com/gh/RealOrangeOne/tstatic/) [![npm](https://img.shields.io/npm/dm/tstatic.svg?style=flat-square)](https://www.npmjs.com/package/tstatic) [![npm](https://img.shields.io/npm/v/tstatic.svg?style=flat-square)](https://www.npmjs.com/package/tstatic) The only static-file server you'll ever need! ### Features: - Basic-Auth - [`basic-auth`](https://www.npmjs.com/package/basic-auth) - Custom 404 page - Optimum Compression - [`compression`](https://www.npmjs.com/package/compression) - Security checks / headers - [`helmet`](https://www.npmjs.com/package/helmet) - Whitelist IP Addresses - [`express-ip-access-control`](https://www.npmjs.com/package/express-ip-access-control) - Directory Listing - [`serve-index`](https://www.npmjs.com/package/serve-index) ### Usage ```bash tstatic [options] -h --help Show this screen. --version Show version. -p --port= Port to listen on. -b --basic-auth= Enable basic-auth. -i --ips= Allowed IP addresses. -l --list-dir List Directory. -o --open Open in browser after start. ``` `dir` is where your static files are. 404 errors will return with `/.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 ##### `open` Open the server in the browser one started. It will open in your default browser, and use url `http://0.0.0.0:`. ### Docker Included in this repo is a `Dockerfile` to use. The default setup requires being run from the project directory, and will serve `/var/www` in the container on port `5000`. By default, this directory is contains a simple index file, however can be overriden. Below is an example `docker-compose.yml` file you can use with it: ```yml version: "2" services: tstatic: image: "tstatic" build: context: . dockerfile: Dockerfile volumes: - ./site/:/var/www ports: - "5000:5000" ```