💾 Archived View for carcosa.net › germinal captured on 2020-11-07 at 00:36:27. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2020-09-24)

➡️ Next capture (2023-04-26)

-=-=-=-=-=-=-

Germinal, a Gemini Protocol server

Germinal is a server for the Gemini Protocol written in Common Lisp.

Gemini Protocol

It is named after the early 20th century Yiddish-language anarchist newspaper Germinal. I wanted to name it after an anarchist publication to convey the idea of people sharing information and ideas with each other, in contrast to the way the web is used to push advertising from corporations to people. And it happened that Germinal shares some sounds with Gemini.

Germinal (journal)

Features

Current

Gophernicus

Planned

Maybe

Download

The source is available on my self-hosted git forge.

Germinal on git

Germinal 0.1 tarball

Germinal 0.2 tarball

Installation

This is still a bit of a hack, and if you don't have a working Common Lisp development environment, you will probably have trouble getting it running. The included `build.sh` will build a single executable, but unfortunately it depends on a shared library that will be somewhere in your ~/.cache folder...

You also need to generate a self-signed cert and key, or use a pair from LetsEncrypt, or similar. The path to the keys need to be specified in the config file, which by default is in /etc/gemini/config.toml. You can generate the cert like this:

openssl req -new > cert.csr
openssl rsa -in privkey.pem -out key.pem
openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001
cat key.pem>>cert.pem

Usage

Run `germinal`. It will listen on port 1965 on all interfaces, and serve content from `/var/gemini/`. It will only serve world-readable files, regardless of what user it is running as.