Bonum Certa Men Certa

How to Set Up a Gemini Server of Your Own, Even on a Simple Single-Board Computer

Gemini Turntable



Summary: Using Agate to start one's own Gemini capsule (self-hosted) is a lot simpler than one might be inclined to believe; this is a detailed HOWTO, hoping to encourage more people to join Gemini space, which is fast-growing and free of garbage

THE one thing that stunned me was how easy it was to set up a Gemini server. A lot simpler than setting up a Web server. The harder part is certificates, but that too is trivial once it's done a couple of times, potentially with errors at first.



Here's a quick recipe for setting up one's own instance and Gemini capsule.

First, create a new user's account. Gemini ought to have its own account, as it'll make things a lot simpler (backup, permissions etc.) and for the sake of this example we'll assume the user account is "gemini" (with home directory /home/gemini)

Then, in the user's top-level (home) directory:

mkdir gemini bin certs

This will set up directories for the capsule, the programs, and the certificates, respectively.

There's not so much left to do now.

Go to the directory gemini (e.g. cd ~/gemini/ or equivalent using a graphical file browser)

In that directory, create or place a file called index.gmi

It can be empty or contain something simple like Hello world! (just to make sure that the server is set up and works)

Now let's get the server software. Go to the bin directory (e.g. cd ~/bin/). For most practical purposes agate (Apache Licence) seems to be OK and it supports quite a few architectures. Unfortunately it's hosted on GitHub (Microsoft), with latest versions shown at the top of this page. If you are not sure what architecture to choose, run uname -a

The correct binary can be downloaded using a Web browser or a tool like wget/curl. That program is quite small and needs to be placed in bin in order to stay consistent with this manual.

Unpack and set 'executable' (x) permission for the file, e.g. using

gunzip [binary_file]
chmod +x [binary_file]


Depending on the name of the binary file in question.

For my ARM SBC it is gunzip agate.armv7-unknown-linux-gnueabihf.gz and chmod +x agate.armv7-unknown-linux-gnueabihf

All the pieces are now in place except the certificate and the service setup.

On a systemd-based operating system create a new file at /etc/systemd/system/agate.service

It should look something like this:

[Unit]
Description=agate
After=network.target



[Service] User=gemini Type=simple ExecStart=[your settings]

[Install] WantedBy=default.target


Wherein [your settings] ties together the program, the root directory for hosting (capsule), and the certificate.

In the case of Techrights on ARM, it's something as follows:

/home/gemini/bin/agate.armv7-unknown-linux-gnueabihf -s --content /home/gemini/gemini/ --key /home/gemini/certs/key.pem --cert /home/gemini/certs/cert.pem --hostname your hostname --lang en-GB

In our case, your hostname is gemini.techrights.org (how you set up your hostname may depend on how you manage domains and where). That hostname needs to point to your device's IP address.

All that's left now is certificate setup and service initiation.

Go to the certificates directory (e.g. cd ~/certs/) as this will likely involve the command line (unless you have some graphical tools that do the same).

A simple self-signed certificate ought to be sufficient:

openssl req -new -subj "/CN=your hostname" -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 365 -nodes -out cert.pem -keyout key.pem

That's for 1 year. It can be set to anything.

The command then leaves the two files required by the service/server, namely cert.pem and key.pem. These can be modified and regenerated at any time, so there's no need to worry if at any point they're wrongly generated or made for the 'wrong' domain.

To get it all started, assuming systemd:

sudo systemctl restart agate
sudo systemctl enable agate


Use a Gemini browser (or Web proxy) to then test access to the hostname over gemini:// (it will attempt to connect over port 1965, so make sure there's no firewall standing in the way at the level of the device or the network it is in). This is pretty much it, with the exception of variation for non-systemd systems. All that systemd does is, it starts the server using the suitable command and arguments, even after restarts. That command can instead be run manually, or set up for any init system of choice. The hardest part is setting up the domain, generating the key/certificate correctly, and then lowering the filters (if any) to allow access over port 1965.

We don't typically do HOWTO-type articles, but for this one we make an exception. If you get stuck, ask us in IRC for help. Gemini needs to grow and for faster growth we need to help one another.

Agate is quite small and simple. As of the time of writing, it does not support server-side CGI scripts (for something like in-capsule search), but Gemini ought to be kept light and simple anyway; we're not trying to just replicate the bloated Web.

Credit: Chris Were, for some initial notes and suggestions. gemini://chriswere.uk/

Recent Techrights' Posts

Netcraft's New Web Server Survey Shows Microsoft Down in Every Category
That Microsoft is still visible in
Slopwatch: Anti-Linux Garbage and Fake 'Articles' About GNU and Linux, Courtesy of Serial Sloppers and Slopfarms
Today there is a frustrating amount of FUD online that wasn't published by humans but instead generated by LLMs
From Strangling Women to SLAPPing Journalists (Microsoft in a Nutshell)
We won't ever capitulate to Microsofters who strangle women
 
What the LLM Scrapers Are Doing to Tux Machines
So far today it looks like we'll have served about 1.5 million requests at midnight. That's more than 50,000 per hour or 1,000 per minute.
Links 27/02/2025: Google Clown Computing Layoffs and Slack Goes Down as Usual
Links for the day
Links 27/02/2025: The Engagement Rehab and Another New Zine
Links for the day
Links 27/02/2025: Microsoft Trying Ads as Sales Fall, Preserving Data From Social Control Media a Real Problem
Links for the day
Hiding Crimes Against Women (i.e. Reputation Laundering) by Misusing Inapplicable Privacy Laws From Another Continent
As it turns out, "privacy" does not cover hiding illegal activities and if public information exists to prove these illegal activities, then it's perfectly OK to share it
Zurich CEO suicide, Martin Senn proximity to Adrian and Diana von Bidder-Senn, Debian
Reprinted with permission from Daniel Pocock
Debian, CentOS, RHEL source code demise now linked, accelerated after invalid trademark judgment
Reprinted with permission from Daniel Pocock
Civil Society Should Demand Removal of People Who Sought Removal of Richard Stallman
Perhaps it's noteworthy that the FSF is now being attacked (again)
RTO for You, But Not for Me: How IBM's Managers Try to Disguise Layoffs as "Resignations" or "Retirements"
What ever happened to corporate ethics?
Links 27/02/2025: Conflict Updates, Hacks Caught Red-Handed Misusing Licence to Exercise Law to Submit LLM Slop to Courts
Links for the day
Gemini Links 27/02/2025: Fuzzy Frontiers and New Arrivals at Geminispace
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Wednesday, February 26, 2025
IRC logs for Wednesday, February 26, 2025
Always Doing This Site for Principles, Not Money
Pro bono
The Short Lifecycle of Twitter Outrage
The upside is that the "tempo" of social control media is so fast (to cause addiction or "engagement" as the pushers put it) that the persistence of lies in social control media is rather poor
Microsoft Devoured the Open Source Initiative (OSI), Now It's Just a Chain of Blunders
The Open Source Initiative (OSI) is against openness
Chronological Index of Techrights
The index was created after Alex Oliva expressed interest
IBM employee from Zurich, Switzerland arrested, jailed for tunnel mistake that may have arisen due to sign colours
Reprinted with permission from Daniel Pocock
The Free Software Foundation's Fund-raising Efforts Continue Unabated (and With Positive Results)
Perhaps the cherry on the cake is that Microsoft influence agents now try to attack the people who run the FSF, for merely have the 'wrong' views on political affairs
Links 26/02/2025: Microsoft's "AI Value" Bubble is Blowing Up, Starbucks in Trouble as Well
Links for the day
Rumour About IBM Layoffs in the UK
That was 2 hours ago
Links 26/02/2025: Science, Hardware, and Politics
Links for the day
Timeline of Microsoft's 2025 Crisis and Growing Panic
Microsoft already had 3 waves of layoffs this year (not even 2 months have passed)
Slopwatch: Another Offending 'Linux' Site Found (Fake Articles About "Linux"), Postgres/PostgreSQL/PSQL Targeted by FUD from LLMs
It's all slop, as one can suspect
IBM Consulting: Layoffs Already in Progress
"What are the Deep Blue Thought Leaders World becoming? A rubbish heap?"
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Tuesday, February 25, 2025
IRC logs for Tuesday, February 25, 2025
Links 25/02/2025: US Backs BRICS at UN, Ukraine's Defence Enters 4th Year
Links for the day
Gemini Links 25/02/2025: Marginalia and LOWWIRE
Links for the day
Credit Suisse collapse obfuscated Parreaux, Thiébaud & Partners scandal
Reprinted with permission from Daniel Pocock
New Richard Stallman Interview Published by Free University of Bozen-Bolzano a Day After His Talk There
We're not seeing any difficult or controversial questions
The Musk Slipped, Countries Need Digital Independence
What's happening in Germany this month might result in quicker adoption of Free software
Government Sites That Use Centralised CAs Are Still Remotely Controlled by MElon and GAFAM at the Oval Office
Even governments outside the US
Eternal Vigilance
I too received more death threats than I can recall over the years
Spanish Version of the Free Software Foundation's Book "Introduction to the Command Line"
The "GNU Press Shop [is] temporarily closed"
Dr. Andy Farnell Publishes Second Part of Series About Freedom Fighters (It Started With Richard Stallman)
A few minutes ago Dr. Farnell published the second part
Things That Were Presumed Public Enemy #1 (or Foremost Threat)
The world's most powerful military is now governed by clowns who don't know what the heck they're doing
Microsoft is Admitting That It Has No Viable Business Model, Starting to Experiment
Microsoft's proprietary spyware with ads cannot really compete with Calligra and LibreOffice
Asking Journalists to Pay for Merely Reporting Violent Abuse Against Women (and Telling Them to Kill Themselves)
As regular readers are likely aware by now, for material we published years ago some likely broke man without a proper job (except in a company made up or invented by him) wants money
Bluewashing: IBM Replaces Red Hat With IBM (Bobby Leibrock) at the Top
Based on his education, Bobby is just some suit; he thinks of money, not tech
Links 25/02/2025: Mass Layoffs at Starbucks, Kaspersky Banned on Australian Government Systems
Links for the day
Links 25/02/2025: Strawberry Lemonade, Introducing Fiss, and YouTube Acting Aggressive
Links for the day
UK: Twitter Falls to Lowest Traffic Levels in 5 Years (Start of Lockdowns), Down From More Than 37% to Only 6.5%
Months ago Twitter (aka "X") was blasted by the British government for inciting right-wing violence
Judgment translated to English in FINMA & Debian trademark fiasco
Reprinted with permission from Daniel Pocock
The Brigading (in Social Control Media) Did Not Silence the Creator of GNU/Linux
there are no impending talks at the moment
Confirmed: IBM Layoffs Will Strike Consulting Quite Hard
the flagging of staff is a way to signal to them it's time to go or get the boot
Sami Tikkanen Explains What Happened to Computer Science Education in Finland and Elsewhere
The 'broligarchs', a collective which typically created anything of their own, do not want the general population to possess skills that let it be anything other than passive consumers
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Monday, February 24, 2025
IRC logs for Monday, February 24, 2025