Public Repository

Last pushed: 2 months ago
Short Description
The Algernon Web Server
Full Description

Algernon is a server that supports Lua, Markdown, HTTP/2, QUIC, Redis, BoltDB and several other technologies.

Development server

Running the development server:

docker run -v `pwd`/serve:/srv/algernon -v `pwd`/config:/etc/algernon --rm --publish 3000:3000 xyproto/algernon:dev

Production server

Running the production server (cached, not for files that may appear and disappear):

docker run -v `pwd`/serve:/srv/algernon -v `pwd`/config:/etc/algernon --rm --publish 80:80 --publish 443:443 xyproto/algernon:prod

Interactive Lua prompt

Running Algernon interactively (can type in Lua commands):

docker run -v `pwd`/serve:/srv/algernon -v `pwd`/config:/etc/algernon -it --rm --publish 4000:4000 xyproto/algernon:interactive



refers to a configuration directory in the current directory. It may contain cert.pem and key.pem for the production server, for serving HTTP/2+HTTPS.


refers to the directory where the files to be served are kept. You may have to create a directory with the same name as the name of the host within the serve/ directory.

Note that the auto-refresh feature may not work within a docker container, depending on how the underlying filesystem is mounted within the container. It uses the fsnotify mechanism.

There is a collection of samples for Algernon available here:

Docker Pull Command