The upcoming release of Debian, Bookworm, will be the first to include a gemini server in the official repository. Molly Brown is the gemini server that landed in the repository. Here i will give some guidelines on how to get it running.
Things you'll need to follow this:
The first and most obvious step is to install Molly Brown. Simply run the following to do so.
apt install molly-brown
Now we want to create a seperate user that runs molly brown:
useradd -M molly
Next we need a certificate for the gemini server. We will use a self signed one for this. In theory you could also use a certificate from Let's Encrypt, but since gemini is doing certificate verification based on "trust on first use(TOFU)", a certificate that is valid for more than 3 month is more practical in this case.
So lets create a folder where the certificate lives and the certificate.
mkdir -p /etc/molly-brown/certs openssl req -x509 \ -newkey rsa:4096 \ -keyout /etc/molly-brown/certs/gemini.key \ -out /etc/molly-brown/certs/gemini.crt \ -days 3650 \ -nodes -subj "/CN=<your-domain>" \ -addext "subjectAltName = DNS:<your-domain>"
For logs we also want a dedicated folder.
mkdir -p /var/log/molly-brown
We also need a folder where the content of the gemini server will live.
mkdir -p /var/gemini
Now its time to configure Molly Brown. Create a config file at /etc/molly-brown/molly.config and fill it with:
Port = 1965 Hostname = "<your-domain>" DocBase = "/var/gemini/" CertPath = "/etc/molly-brown/certs/gemini.crt" KeyPath = "/etc/molly-brown/certs/gemini.key" AccessLog = "/var/log/molly-brown/access.log" ErrorLog = "/var/log/molly-brown/error.log"
To ensure that the molly user can access all the just created directories and files we make it the owner of those.
chown -R molly /var/gemini chown -R molly /etc/molly-brown chown -R molly /var/log/molly-brown
Create systemd unit at `/etc/systemd/system/molly-brown.service` with content:
[Unit] Description=Molly Brown gemini server After=network.target [Service] Type=simple Restart=always User=molly ExecStart=molly-brown -c /etc/molly-brown/molly.conf [Install] WantedBy=multi-user.target
Create a index.gmi at /var/gemini and fill it with some text, or copy your existing gmi files to /var/gemini.
The last step then is to start molly brown. To do so simply run:
systemctl start molly-brown
If you want molly-brown to automatically start when your computer is booted run:
systemctl enable molly-brown
--- Molly Brown repository
---Back to the main page