Maintained by: Jean-Francois Arseneau
Where to get help: the Docker Community Forums, the Docker Community Slack, or Stack Overflow
Agate is a server for the Gemini network protocol, built with the Rust programming language. Agate has very few features, and can only serve static files. It uses async I/O, and should be quite efficient even when running on low-end hardware and serving many concurrent requests.
This Docker container wraps up https://github.com/mbrubeck/agate to deploy it in containers if you're into that, but probably makes it require more hardware.
Two volumes must be mounted for Agate to work, otherwise you will get errors. The first is a content
volume that will contain your GMI files, and the other is a keys
which must have cert.pem
and key.rsa
in it. See below to generate a self-signed certificate.
Once you have these two, replace the /path/to/your
with your own path when running:
docker run --name agate \
-p 1965:1965 \
--mount type=bind,source=/path/to/your/content,target=/var/agate/content \
--mount type=bind,source=/path/to/your/keys,target=/var/agate/keys \
thejf/agate
With OpenSSL, to generate a self-signed certificate:
openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem \
-days 3650 -nodes -subj "/CN=example.com"