Gemini
Its been a while that I have wanted to set up my own geminiverse1 but being a master procrastinator, the plans were always put on hold. Until yesterday. My gemini space is up and running at gemini://simbly.me
on my Raspberry Pi which holds this static site as well. For now, the content just says Hello World!.
I chose to go with Satellite as my Gemini server. Initially tried setting it up with Stargazer as it was available in Arch repository but when the build took over 30 mins on my Pi, it put me off. I want the server to have as little footprint as possible. Both in terms of build and while running.
Setting up Satellite was easy. Make sure OpenSSL and Go is installed (should be available in repositories of every distro), pull the code and build it with the two commands make
and make install
and satellite is installed. Since it places the executable satellite in /usr/local/bin
and the configuration file satellite.toml
in /etc
, I had to do sudo make install
instead to allow it to write in those system folders.
Hereโs how my satellite.toml
configuration file looks like:
# Address to listen to requests (default: 0.0.0.0:1965)
listen = "0.0.0.0"
[tls]
# Directory to save certificates
directory = "/var/lib/gemini/certs"
# Multiple domains can be set with the [[domain]] section
[[domain]]
name = "simbly.me"
root = "/usr/share/nginx/gemini"
Once Satellite was configured, it was all about opening the port 1965 on my router to access my gemini space over gemini://simbly.me
. All it has right now is an index.gmi
file with the text โHello World!โ in there.

Use this proxy link if you donโt have a gemini browser.
Issues faced
There was a minor issue with the certificate not being accepted when I first tried to access my gemini space which was quickly resolved and a fix was pushed when I emailed the developer. I found the developer Gustavo Heinz on Fosstodon later when I was checking out his blog.
Running satellite manually works but it has to run standalone, with my user permissions and without manual intervention. I messed up when running it manually in the background with satellite &
as root so I changed the owner of the executable /usr/local/bin/satellite
to my pi user and wrote a systemd service satellite.service
in /etc/systemd/system
to manage it.
[Unit]
Description=Gemini Server
After=network.target
[Service]
Type=simple
User=<my pi user>
WorkingDirectory=/usr/local/bin
ExecStart=/usr/local/bin/satellite
Restart=on-failure
[Install]
WantedBy=default.target
Next steps
The plan is to mirror this http blog over at gemini but to avoid a world of pain by doing it all manually, I am checking out a gemini static site generator, gssg again by the same developer.
Day 59 - Join Me in #100DaysToOffload