Awesome Open Source
Awesome Open Source


Build Status

simple-httpd is aimed to be a simple replacement for using python -m SimpleHTTPServer to serve local files. Like SimpleHTTPServer, simple-httpd supports HTTP GET and HEAD requests and adheres to the HTTP/1.1 RFC 2616 guidelines.

The HTML output is a mix of the Python module layout and of an Apache directory listing layout.

If you're looking for a full featured or even just more capable web server, take a look at Caddy.


  • HTTP2 with Let's Encrypt integration for automatic TLS, if enabled.
  • Automatic self signed certificate generation and use, if enabled.
  • Multiple language support: English, Italian, Spanish, Irish. ISO 639-1 are given on the CLI.

Certificates are cached in ${HOME}/.autocert for reuse.


go get


make install

or, on BSD

gmake install


HTTP/1.1 on default port (8000)


HTTP/1.1 on the given port

simple-httpd -p 8181

HTTP/2 with Let's Encrypt on the default port

simple-httpd -l some.valid.domain

The port assignment is for the HTTP server. The TLS port will be 8081 and both will respond to requests.

simple-httpd -p 8080 -t some.valid.domain

Generate a self signed certificate and run the server

simple-httpd -g

Run server in Spanish

simple-httpd -l es

## Contributions

* File Issue with details of the problem, feature request, etc.
* Submit a pull request and include details of what problem or feature the code is solving or implementing.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (14,898
golang (3,803
http (923
http-server (196
letsencrypt (140
http2 (136