The Algernon Web Server in a 17MB Docker image
9.5K
Algernon is a server that supports Lua, Markdown, HTTP/2, QUIC, Redis, PostgreSQL, BoltDB and several other technologies and systems.
https://algernon.roboticoverlords.org/
docker run -v `pwd`/serve:/srv/algernon -v `pwd`/config:/etc/algernon -it --rm --publish 4000:4000 xyproto/algernon
This also presents a Lua REPL.
Running the development server:
docker run -v `pwd`/serve:/srv/algernon -v `pwd`/config:/etc/algernon --rm --publish 3000:3000 xyproto/algernon:dev
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
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
This is the same as algernon:latest.
docker run -it --rm xyproto/algernon:lua
`pwd`/config
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.
`pwd`/serve
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: samplepack.zip.
Content type
Image
Digest
sha256:0fc967dd8…
Size
16.6 MB
Last updated
4 months ago
docker pull xyproto/algernon