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

Microsoft Insiders: If You Don't Take the Lousy Severance-Like Offer, They'll PIP You Out (Microsoft Signals to People Over 40 That They'd Better Vacate the Place)
Microsoft targets its most experienced (read: expensive) workers
"AI" 16 Times in One 'Article'. The Register MS Got Paid to Post This Spammy, Promotional Piece of Slop.
Pay closer attention to who pays and who gets paid
Links 27/04/2026: Chernobyl Disaster at 40, "Heartbreaking" Decline of Australia
Links for the day
Gemini Links 27/04/2026: Gopher Catchup, MNT Reform, and Injuries
Links for the day
Red Hat Circling Down the Slop Drain
IBM, governed by slop fanatics, is going to do a lot of damage
Slop is an Addiction, Its Users Find It Addictive
please do not tolerate people who slop
The Corrupt Lecture the Non-Corrupt - Part VII - Secrecy at the EPO (Regarding Cocaine and Nepotism) Has Undermined Trust in Management
If Europe's second-largest institution is run by the "Alicante Mafia", does this mean that other key European institutions are "Mafia"?
SLAPP Censorship - Part 59 Out of 200: Mentioning the Fact Alex Graveley Arrested and Charged for Strangulation in Texas is "Reckless" and "Malicious", According to His 'Hired Guns' in London
it was framed as "malicious"
Links 27/04/2026: Strikes, Corruption in Spain (Spanish PM Sanchez' Wife), and YouTuber Faces Jail Time
Links for the day
Gemini Links 27/04/2026: Gopher Catch-up, Year of Contentment, and Path to Freedom
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Sunday, April 26, 2026
IRC logs for Sunday, April 26, 2026
Journalistic Malpractice: Helping Microsoft Paint 'Voluntary' Layoffs (Before PIPs) as "Buyouts"
What does this tell us about today's media?
The Man IBMers Regard or Already See as Likely Successor of Krishna (or Next CEO of IBM) is a Slop Fanatic
How dangerously misguided
The Corrupt Lecture the Non-Corrupt - Part VI - Management of the European Patent Office (EPO) Covered Up Cocaine Use, Even Colleagues Not Informed
the self-described "fu--ing president"
SLAPP Censorship - Part 58 Out of 200: 5RB and Brett Wilson LLP Helped Garrett and Graveley Make Equivalent of GAFAM NDAs Superficially 'Enforceable' in the UK, Using Threats
laziness results in many hours and high lawyers' fees
Who Controls Fedora? IBM and GAFAM.
Don't for a moment believe that IBM understands GNU/Linux. We are quite certain nobody in IBM's Board of Directors uses it.
State of Slop About GNU/Linux
As the incentive to publish is reduced (competing with slop is no fun), the effort/money invested in stories goes down
Links 26/04/2026: Korean Inflation, GLP-1 Drugs Linked to Cognitive Impairment, Lithuania's Public Broadcaster LRT Besieged
Links for the day
Hopefully Smooth Sailing in OS Upgrade
There are some contingencies at hand
Links 25/04/2026: "Horrible Economics of AI Are Starting to Come Crashing Down", More Restrictions Placed on Social Control Media
Links for the day
Getting Aggressive Suggestive of Loss - Part IV - Shutting Down My Existence
Would anyone out there tolerate such messages sent from burner accounts?
Gemini Links 26/04/2026: Gemini Movie Database (or GeminiMDB) and Star Trek III
Links for the day
Weeks Before Linux Removed Over 100,000 Lines of Code Due to Slop 'Bug Reports' Microsoft Paid 'Linux' Foundation to Advance Slop in the Name of 'Security'
What can possible go wrong? Both for security and for stability.
Tracking Ages of People
To stay "safe" tell us your age
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Saturday, April 25, 2026
IRC logs for Saturday, April 25, 2026
"A single witness shall not rise up against a person regarding any wrongdoing or any sin that he commits; on the testimony of two or three witnesses a matter shall be confirmed." (Deuteronomy 19-21)
The spouse of Garrett repeatedly points out that Garrett can barely code or can only do so very poorly
Rust People Sabotage Stability for the Sake of a Falsely-Promised 'Security'
Set aside severe performance issues, poor handling of "edge cases", general bugs, lack of compatibility, and even crashes
SLAPP Censorship - Part 57 Out of 200: 5RB and Brett Wilson LLP Made the Garrett and Graveley Particulars of Claims a Lot Like Photocopies!
They seem very much irritated that I speak about this
Huge Strike at the European Patent Office (EPO) This Coming Friday (May 1st)
International Worker’s day
Links 25/04/2026: Nokia Wins Embargo in Kangaroo Court Where Judges Are Salaried Nokia Staff (UPC), Allison Pearson Defamation Case (UK) Succeeds, Smokey Robinson and "Puff Daddy" (US) Fail
Links for the day
Gemini Links 25/04/2026: Weekly Echoes, Gemtext Tables, and Using Offpunk
Links for the day
Corporate Media Did Not Specify What Microsoft Means by "Buyouts" (Layoffs), It May Be Hardly Different From Severance
Time will tell, but investigative journalism hardly exists anymore, so we won't hold our breath
The Corrupt Lecture the Non-Corrupt - Part V - "Diversity" and "Inclusion" at EPO Means Sleeping With Sister of "Cocaine Communication Manager" and Making Them Millionaires
Remember that top applicants or key stakeholders of the EPO are already complaining about a lack of quality
Links 25/04/2026: Fake GAFAM Valuations (Gripping the Market Based on False Accounting), "Evidence Isn't Just for Research", and "Putin Defends Mobile Internet Outages"
Links for the day
Dr. Andy Farnell on Why Calling Slop or Chaff "Hey Hi" (AI) Harm Us All, Except for "Ten or Twenty Rich Industrialists"
"words to avoid"
Internet Trolls Likely Trying to Distract From the Demise of IBM, Problems With Red Hat
there seems to be trolling online aimed at suppressing discussion
Debian Upgrade Coming Up (Soon)
Yesterday we contacted the datacentre staff about it
Getting Aggressive Suggestive of Loss - Part III - Threats From Burner Accounts Formally Treated as a Crime
Countries that cannot preserve freedom from self-censorship are countries where free press ultimately cannot prevail
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Friday, April 24, 2026
IRC logs for Friday, April 24, 2026
Gemini Links 25/04/2026: 3.4k+ Capsules, Microsoft Layoffs, Call for Nuclear Disarmament, "Internet is Sad and Lonely"
Links for the day