Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/janiltonmaciel/statiks
Fast, zero-configuration, static HTTP filer server.
https://github.com/janiltonmaciel/statiks
cli file-server golang server static-server
Last synced: about 1 month ago
JSON representation
Fast, zero-configuration, static HTTP filer server.
- Host: GitHub
- URL: https://github.com/janiltonmaciel/statiks
- Owner: janiltonmaciel
- License: mit
- Created: 2018-06-26T23:42:33.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-10-06T20:27:09.000Z (about 4 years ago)
- Last Synced: 2024-08-03T19:10:00.301Z (5 months ago)
- Topics: cli, file-server, golang, server, static-server
- Language: Go
- Homepage:
- Size: 168 KB
- Stars: 11
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go-extra - statiks - configuration, static HTTP filer server.|9|1|0|2018-06-26T23:42:33Z|2020-10-06T20:27:09Z| (Utilities / Fail injection)
README
# Statiks
Fast, zero-configuration, static HTTP filer server.
Like Python's `SimpleHTTPServer` but scalable.[![GitHub Releases](https://img.shields.io/github/release/janiltonmaciel/statiks.svg)](https://github.com/janiltonmaciel/statiks/releases)
[![GoDoc](https://godoc.org/github.com/janiltonmaciel/statiks?status.svg)](https://pkg.go.dev/github.com/janiltonmaciel/statiks?tab=overview)
[![Go Report Card](https://goreportcard.com/badge/github.com/janiltonmaciel/statiks)](https://goreportcard.com/report/github.com/janiltonmaciel/statiks)
[![Build Status](https://travis-ci.org/janiltonmaciel/statiks.svg?branch=master)](https://travis-ci.org/janiltonmaciel/statiks)
[![codecov](https://codecov.io/gh/janiltonmaciel/statiks/branch/master/graph/badge.svg)](https://codecov.io/gh/janiltonmaciel/statiks)
[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go)## 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
- **darwin (macOS)** [amd64](https://github.com/janiltonmaciel/statiks/releases/download/v1.7.0/statiks_v1.7.0_darwin_amd64.tar.gz)
- **linux** [amd64](https://github.com/janiltonmaciel/statiks/releases/download/v1.7.0/statiks_v1.7.0_linux_amd64.tar.gz)
- **windows** [amd64](https://github.com/janiltonmaciel/statiks/releases/download/v1.7.0/statiks_v1.7.0_windows_amd64.zip)#### Via Homebrew (macOS)
```bash
brew tap janiltonmaciel/homebrew-tap
brew install statiks
```#### Via Docker
The official [janilton/statiks](https://hub.docker.com/r/janilton/statiks) image is available on Docker Hub.
```bash
docker container run -p 9080:9080 -v .:/var/www --rm janilton/statiks
```> Volume dir: /var/www
> Expose port: 9080
## Use
```bash
statiks [options]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)
```> `` defaults to `.` (relative path to the current directory)
## Examples
* start server at http://0.0.0.0:9000 serving "." current directory
```bash
statiks -port 9000
```* start server at http://0.0.0.0:9080 serving "/home" with CORS
```bash
statiks --cors /home
```* start server at http://192.168.1.100:9080 serving "/tmp" with gzip compression
```bash
statiks --host 192.168.1.100 --compression /tmp
```* start server at https://0.0.0.0:9080 serving "." with HTTPS
```bash
statiks --ssl --cert cert.pem --key key.pem
```* start server at http://0.0.0.0:9080 serving "/tmp" with delay response 100ms
```bash
statiks --add-delay 100 /tmp
```## Credits
* Check - [go-check/check](https://github.com/go-check/check) (testing)
* Cli - [urfave/cli](https://github.com/urfave/cli)
* Cors - [rs/cors](https://github.com/rs/cors)
* Httpexpect - [gavv/httpexpect](https://github.com/gavv/httpexpect) (testing)
* Negroni - [urfave/negroni](https://github.com/urfave/negroni)