11 Dec 2020
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 install and satellite is installed. Since it places the executable satellite in
/usr/local/bin and the configuration file
/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.
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
/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
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