Playing with a Gemini server today. I'm not entirely convinced, but in the interest of research, here goes:
First I opened port 1965 on the server
ufw allow 1965
I created the user gemini on the server and created the folders bin, certs, and gemini in /var/gemini
I downloaded the x86_64 linux binary from github and moved it to /var/gemini/bin.
In /var/gemini/content I creatd the text file index.gmi with just "hello world" in it.
Then I did a first run of Gemini
/var/gemini/bin/agate --content /var/gemini/content/ --certs /var/gemini/certs --hostname wittamore.com --lang en-GB
Agate Auto created it's required certificates, and using the gemini browser Amfora I saw the "hello world!" text.
So I added a systemd file to manage the execution of Agate:
[Unit]
Description=agate
After=network.target
[Service]
User=gemini
Type=simple
ExecStart=/var/gemini/bin/agate --content /var/gemini/content/ --certs /var/gemini/certs --hostname wittamore.com --lang en-GB
[Install]
WantedBy=default.target
And lauched it
systemctl enable agate.service
systemctl start agate.service
Agate is a very simple Gemini server. It automatically creates self-signed certificates for TLS in the .der format, which makes it clumsy if you have letsencrypt certificates in .pem format available.
openssl rsa -outform der -in privkey.pem -out key.der
openssl x509 -outform der -in cert.pem -out cert.der
Unlike Gopher, none of the servers available appear to be mature yet, which is probably due to the relatively new protocol.
The Flounder site shows some interesting possibilities for Gemini.