This morning I set up Solderpunk's GeGoBi on my personal server to
mirror my gopher content to gemini. It's a great complement to
Here are the details of my GeGoBi setup on Debian 10. I suspect
there might be others out there who want to do the same thing.
Note that I was logged in as root when I did everything in part I. Then
automatically in part II.
====================
You should have the following files in /opt/gegobi:
LICENSE
README.md
you'll need for the gemini server. I figured it was easiest to keep
these files in the /opt/gegobi directory because I don't need them for
anything else.
Enter the following command:
openssl req -new -x509 -newkey ec \
-pkeyopt ec_paramgen_curve:prime256v1 \
-days 1825 -nodes -out cert.pem -keyout key.pem
answering most of the questions, but it's probably best to enter your
Country Name (2 letter code) [AU]:CA
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:gopher.visiblink.ca
Email Address []:.
*I found this on Alex Schroeder's site (Thanks Alex!):
--base [BASE] Gopherhole base directory.
--cert [CERT] TLS certificate file.
--host HOST Hostname of Gemini server.
--key [KEY] TLS private key file.
--local Serve only on 127.0.0.1.
--port [PORT] TCP port to serve on.
--redirects [REDIRECTS]
File to read redirect definitions from.
--tilde [TILDE] Home subdirectory to map tilde URLs to.
My gopher content is in /var/gopher, so I ended up with this combination
of command-line switches, which works, as long as you're in /opt/gegobi
./gegobi.py --base /var/gopher --cert cert.pem --key key.pem --host gopher.visiblink.ca --port 1965
ufw allow 1965
verify that by visiting your gopher hole from a gemini proxy.
============================================================================
Systemd unit files -- which allow you to autostart GeGoBi -- don't
accept command-line switches, but you can still get them to work by
assigning them to variables in a config file.
This file will hold the command-line switches you figured out in Part I.
Alter it to meet your specific requirements.
Here are the contents of my .conf (you may need to change the base
ARG1=--base /var/gopher
ARG2=--cert /opt/gegobi/cert.pem
ARG3=--key /opt/gegobi/key.pem
ARG4=--host gopher.visiblink.ca
ARG5=--port 1965
Enter the following in the file:
[Unit]
Description=Run GeGoBi as a regular user
[Service]
Type=simple
User=your_username
Restart=always
EnvironmentFile=/opt/gegobi/.conf
ExecStart=/usr/bin/python3 /opt/gegobi/gegobi.py $ARG1 $ARG2 $ARG3 $ARG4 $ARG5
TimeoutStartSec=0
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
chown your_username:your_username /opt/gegobi/*
You might have to change the ownership of the hidden /opt/gegobi/.conf
file separately. I can't remember if the wildcard changed it or not.
First, reload the daemon service files:
Then you can start GeGoBi:
Finally, set GeGoBi to start up automatically with your server: