Sign inSign up

xyproto/algernon

By xyproto

•Updated 4 months ago

The Algernon Web Server in a 17MB Docker image

Image
9

9.5K

xyproto/algernon repository overview

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

https://algernon.roboticoverlords.org/⁠

⁠Latest
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.

⁠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

This is the same as algernon:latest.

⁠Only a Lua REPL, not serving anything
docker run -it --rm xyproto/algernon:lua
⁠Directories
`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⁠.

Tag summary

Content type

Image

Digest

sha256:0fc967dd8…

Size

16.6 MB

Last updated

4 months ago

docker pull xyproto/algernon