Questions people ask first
Is this only a Gemini server?
No. Gemini and Titan are the primary protocols, and the same content is rendered to static HTML for browsers. Gopher, Spartan, Nex and Finger are supported too, each off until you enable it.
Do I have to configure anything?
No. Run the binary. With an empty state directory it mints a certificate, writes a starter page, and serves it. Zero configuration is a supported configuration, not a degraded mode. There is a terminal wizard if you would rather be asked questions.
Why does my client warn about the certificate?
Because it is self-signed, which is normal and correct here. These protocols use trust on first use: your client remembers the certificate the first time and only warns again if it changes. There is no certificate authority involved.
Will my certificate change if I update, restore, or move?
No. It is minted once per hostname and never silently regenerated. If damaged key material is found, the server stops with an error rather than quietly making a new key: a new key is indistinguishable from an impersonation to anyone who pinned the old one.
Moving to a new hostname does mint a fresh identity for that name, deliberately. The old keypair is kept.
How do I add content?
Put .gmi files in the content directory. One file per page. Saving triggers a re-render of every enabled surface within seconds. That is the whole workflow: no build, no deploy.
Can I edit remotely?
Yes, over Titan from a client like Lagrange, once you configure a zone and authorise a client certificate. It is off until you set it up.
Can multiple people edit?
Multiple fingerprints can be authorised per zone, and the roster gives them names and capabilities. The server records when a key was enrolled, never who holds it. There are no user accounts.
Can an AI agent use it?
Yes, and that is a supported case rather than a tolerated one: reading, writing, and operating the server.
Does it need root?
No, and it should not have it. Every listener defaults to a port above 1024, so no capability is needed at all, and the shipped service unit sets an empty capability bounding set. Binding the traditional privileged ports is your choice to make, with a port forward or a capability you grant deliberately.
Can I run several sites?
One process serves many hostnames by name indication: add a host block each, and every hostname gets its own certificate.
Does it log my visitors' addresses?
Not by default. The request log carries the status and the path, and the peer field reads as a dash. Query strings are redacted by construction, since the input flow puts whatever a visitor typed into the query.
If you want addresses there are two opt-ins: a conventional access log, or a digest under a salt made fresh at every start: repeat visits correlate within one run of the process, and nothing survives a restart.
Where does my data live?
One state directory: identity, content, rendered output, configuration. Back that up and you have backed up everything, including the identity readers pin.
How do I upgrade?
Replace the binary, package or image. State lives outside the code and is not touched. A reload signal re-reads configuration and certificates without dropping connections; a bad configuration is rejected and the previous one keeps running.
Does it work behind a reverse proxy?
The HTTP surface does, and that is how the Cloudron package runs. The Gemini surface cannot be: Gemini is TLS-native but not HTTP, so the server must terminate its own TLS and needs the port passed through.
Is it production-ready?
It is pre-1.0 and unaudited. It passes the community conformance suite against a live deployment and has a real test and fuzz suite, but Agate and gmid have years of production use it does not.
Why is there no admin web interface?
Because an authenticated admin panel is a credential to leak, a session to hijack, and a default password waiting to be found. Content is edited through the filesystem or over an authenticated upload; observation happens through a certificate-gated status page. That is a deliberate refusal.
It is AI-written. Should I be worried?
Decide for yourself, which is why it is stated plainly rather than hidden. What is on offer instead of trust: every design decision recorded before the code, the research behind it published, a real test suite, fuzzed parsers, and documentation of the things it does badly.
Where do I report a bug or a vulnerability?
Bugs: the issue tracker. Vulnerabilities: not the issue tracker.