Public | Automated Build

Last pushed: 2 years ago
Short Description
Shush is a simple HTTP server
Full Description


Shush is a simple HTTP server written in Haskell

You can build and run shush with or without docker.



Clone the repo and run

docker build -t shush .


You'll need to forward the port, and mount your html directory inside the container. By default, shush runs on port 9001, and reads files from /var/www/html

docker run -d -p 9001:9001 -v /YOUR/HTML/DIR:/var/www/html jmittert/shush


Simply run

stack test

Without Docker

Be sure to disable docker in stack.yaml. Change enable:true to enable:false in the docker section.


Requirements: stack
Stack will handle downloading the correct ghc and dependencies.

git clone
stack setup
stack build


Clone the repo and run

stack install

Shush will listen on port 9001 by default, and read from /var/www/html/index.html


stack test

I've tested the above to work against Mac OSX Yosemite, and Arch Linux

Example Config File

Place your config file in ~/.shush.conf or /etc/shush/shush.conf

# The version of HTTP to use (1.0 or 1.1)
http_version: 1.0

# The path to look for HTTP files
http_path: /var/www/html

Implemented Features

From here, to comply with HTTP 1.1, a server must:

  • [x] require the Host: header from HTTP 1.1 clients
  • [x] accept absolute URL's in a request
  • [ ] accept requests with chunked data
  • [ ] either support persistent connections, or include the "Connection: close" header with each response
  • [ ] use the "100 Continue" response appropriately
  • [x] include the Date: header in each response
  • [ ] handle requests with If-Modified-Since: or If-Unmodified-Since: headers
  • [x] support at least the GET and HEAD methods
  • [x] support HTTP 1.0 requests
Docker Pull Command
Source Repository