Gemini - The protocol not the AI


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 --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 [Service] User=gemini Type=simple ExecStart=/var/gemini/bin/agate --content /var/gemini/content/ --certs /var/gemini/certs --hostname --lang en-GB [Install]

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.


A minimalist blog by Philip Wittamore