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

IBM Effect at Confluent: Mass Layoffs and IBM's Business Conduct Guidelines (BCGs) Said to be Violated
For Confluent employees who survived the layoffs there will be "culture chock"
Estimates That IBM to Lay Off Close to 10,000 Workers in 2026 (Not Counting People Pushed Out)
There's still chatter about Confluent mass layoffs
Sophie Brun, Raphael Hertzog & Debian sexual conflicts of interest
Reprinted with permission from Daniel Pocock
 
What People Impacted by the Bluewashing Layoffs at IBM Confluent Say (While the Media Says Nothing at All, in Effect Burying the News)
Worse yet, the mainstream media spreads lies about it right now
IBM Has Turned Red Hat and Fedora Into Slop
This is IBM policy
IBM is Being Robbed, Companies and Jobs Are Destroyed
Companies taken over by IBM will be exploited and destroyed to keep a bubble inflated for a little while longer
In Confluent Layoffs, IBM Vapourises a Quarter of Its Workforce (IBM Buys Something That It Destroys Already)
In the past, such things were typically referred to as "media blackout"; now it's just "the norm".
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Wednesday, March 18, 2026
IRC logs for Wednesday, March 18, 2026
Links 19/03/2026: LLM Fatigue (It Doesn't Work as Advertised), "Small Web Feeds"
Links for the day
SLAPP Censorship - Part 15 Out of 200: Background and Particulars of Truth Regarding Techrights and Tux Machines
the basic facts (this has aged well, except the times/ages/numbers)
A Slopfarms Survey for Today (linuxteck.com, linuxsecurity.com, linuxjournal.com)
Not only did Google news link to a slopfarm; it linked to three run by the same team!
Links 18/03/2026: "Venture Capitalist Warns That It’s All About to Come Crashing Down" Due to Slop Bubble, "Birdwatching for Fun and no Profit"
Links for the day
IBM Red Hat is Still Promoting Restricted Boot Which Restricts Users' Control Over Their Computers
Red Hat under IBM is a total catastrophe
Arvind Says... Something Something "Hey Hi" (the State of Today's Media)
Look for news about IBM and most likely it'll boil down to some sound bites from an executive and nothing else
New Post Has Just Explained How IBM Gets Robbed by the People Who Fail IBM
Their plan for IBM is a personal plan
Slop-Spewing GAFAM LLM That Knows Nothing and Understands Nothing, It's a Stochastic Parrot That Cannot Even Figure Out Tux Machines is a Community That Started in Tennessee 22 Years Ago
RMS rightly calls those things "bullshit generators"
Cusdeb Makes New Presentation About Where GNU Hurd (Still a Possible Linux Replacement) Stands in 2026
coming from a generally RMS-friendly account
Gemini Links 18/03/2026: Librarians, Phone Anxiety, Growing 'Small' Net, and Slop Versus Software Engineering
Links for the day
Smug Threat by Garrett to Put My Family and I in Prison Doesn't Prove We Did Anything Wrong, It Only Proves He's Truly Desperate to Stop Further Publications That Embarrass Him
his reputation is poor in the United States
systemd Increasingly Microsoft Project, Controlled by Microsoft and Slopware
Cannot allow choice
What IBM Meant to Red Hat: "Proprietary Bundling, Restricted Source Access"
Anyone or anything that joins IBM likely shortens its lifespan
IBM Thrashing Confluent Upon Arrival, Based on Rumours
We deem it a bigger issue that investigative journalism perished, not that one must rely on hearsay online or mere "rumours"
Slop Is Plagiarism, Not (Vibe) Coding, and It's Not Automated, It Doesn't Save Money
Reject misnomers, explain what's actually happening
UPC is Still Illegal and Unconstitutional (Kangaroo Court for Patents, Manned by Corporate Staff), Federal Court of Justice of Germany Receives Belated Complaint About It
What is happening to Europe???
EPO Demonstration Happening Right Now, Later This Week Things Will Only Escalate Further
The SUEPO The Hague Committee wrote to staff this morning
Links 18/03/2026: Commodore's Hedley Davis Dies, Apple Not Good Enough, Cheeto "Floats Treason Charges for Iran War Coverage"
Links for the day
A Step Close to Shutting Down the European Patent Office (EPO)
Not going to work all month long
EPO Staff Demonstration Today
The demonstration will be live-streamed for those thousands of colleagues who don't live in Munich
Gemini Links 18/03/2026: Brazilian SYN Attacks and BGP
Links for the day
LibreLocal Also Coming to Jordan, Kenya, Mexico, New Zealand, and Spain
It helps raise awareness of Software Freedom
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Tuesday, March 17, 2026
IRC logs for Tuesday, March 17, 2026
Microsofters' SLAPP Censorship - Part 14 Out of 200: Men Who Strangle Women (and Worse) Trying to Force Us to Write Public Apologies to These Men
For those who never before saw a SLAPP, they basically make many demands
Instant Bluewashing at Confluent: Mass Layoffs Alleged at IBM
So the main question is, did IBM just fire 800 people?
"Vibe-forking" and Why It'll Ultimately Fail (Hype on Top of Hype)
Code made with LLMs sucks; converting solid, human-tested code into slop only complicates matters and increases risk
Updates About Richard Stallman's Free Software Foundation
After all those years (a decade) and in spite of phony scandals many people out there still respect him
LLM Slop With "Linux" in the Domain Names
This is becoming a pain and a problem also in the arts and in software engineering
The EFF Has a Bug, Fixing This Bug is Likely Not Possible Anymore
"the EFF's continued existence impairs the arrival of a replacement organization, one which will actually champion digital rights."
Links 17/03/2026: Microsoft Windows Broken by Samsung, Afghanistan-Pakistan War Escalation
Links for the day
Gemini Links 17/03/2026: Newcomers and False-Positive 'Slop'
Links for the day
Héctor Orón Martínez & Debian shadow candidate pressure on Sruthi Chandran
Reprinted with permission from Daniel Pocock
Links 17/03/2026: American Fentanylware (TikTok) Investors Implicated in Kickbacks, "Big Oil Knew It Was Wrecking Louisiana’s Coast"
Links for the day
For Third Time in a Week The Register MS Runs Google SPAM That Paints Google as an Ally of Women (Which is False, They're Womanisers)
What does that make The Register MS to women?
British Justice Minister Sarah Sackman Blasts Solicitors Regulation Authority (SRA)
The "legal industry" is due for "some reckoning"
GAFAM Deprecating Old Videos ("Content") by Removing the Support for Their Format for No Good Reason
"Security" is not a valid excuse
Credit/Debit Cards Have Long Been Called Plastics, Over Time They're Becoming More Like Pure Plastics
They cost less than a dollar to manufacture
The European Patent Office (EPO) Holds a Public Demonstration Tomorrow and It'll be Live-streamed
The EPO's workforce was meant to be capable of speaking many languages and have extensive experience in the sciences
People Who Attacked Techrights Also Attacked My Mother
Picking on old ladies because you don't like Free software advocates is never OK
Little Community Element Left in CentOS
CentOS, unlike Fedora, was meant to be long supported and solid
Social Control Media is Cancel Culture (Companies Like Facebook Also Punish/Ban Accounts for Mentioning "Linux" and Lobby for Anti-Linux Legislation)
The masters of Social Control Media decide what ideas can and cannot be expressed
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Monday, March 16, 2026
IRC logs for Monday, March 16, 2026