jfarseneau / agate

Very simple server for the Gemini hypertext protocol, but in Docker form

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Quick reference

Maintained by: Jean-Francois Arseneau

Where to get help: the Docker Community Forums, the Docker Community Slack, or Stack Overflow

What is Agate?

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.

How to use this image

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

Generate a self-signed certificate

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"

About

Very simple server for the Gemini hypertext protocol, but in Docker form

License:The Unlicense


Languages

Language:Dockerfile 100.0%