GMID(8)
π¦ NAME β gmid(8) π¦
This is gmid(8), straight from the system managerβs manual, and itβs literally the Gemini server page. Bestie, meet gmid β simple, minimal, and ready to serve. π
β¨ SYNOPSIS β¨
gmid [-fhnVv] [-c config] [-D macro=value] [-P pidfile]
πΈ DESCRIPTION πΈ
gmid is a simple and minimal Gemini server that can serve static files, talk to FastCGI applications, and act as a Gemini reverse proxy. No cap, thatβs the whole vibe.
When gmid receives SIGHUP, it rereads the configuration file. When it receives SIGUSR1, it reopens log files. Iconic signal behaviour, honestly.
The options are as follows, bestie:
π OPTIONS π
-c configβ Specifies the configuration file. The default is/etc/gmid.conf. Default alert, iykyk.-D macro=valueβ Define macro to be set to value on the command line. This overrides the definition of macro in the config file if present.-fβ Do not daemonize. Stay and log in the foreground. Main-character foreground energy.-h,--helpβ Print the usage and exit.-nβ Check that the configuration is valid, but donβt start the server. If specified two or more times, dump the configuration in addition to verifying it. Vibe check, but for your config.-P pidfileβ Write daemonβs pid to the given location.pidfilewill also act as a lock: if another process is holding a lock on that file,gmidwill refuse to start.-V,--versionβ Print the version and exit.-vβ Verbose mode. Talkative era.
π EXAMPLES π
To run gmid, a configuration file and an X.509 certificate must be provided. A self-signed certificate, which are commonly used in the Geminispace, can be generated using for e.g. openssl(1):
# openssl req -x509 -newkey rsa:4096 -nodes \
-keyout /etc/ssl/private/example.com.key \
-out /etc/ssl/example.com.pem \
-days 365 -subj "/CN=example.com"
# chmod 600 /etc/ssl/example.com.crt
# chmod 600 /etc/ssl/private/example.com.key
Then gmid can be started with:
# gmid -c /etc/gmid.conf
Certificate setup slays, now go serve those files. π
π SEE ALSO π
Go peek at gemexp(1), gg(1), and gmid.conf(5). The whole squad is there. π«Ά
π ACKNOWLEDGEMENTS π
gmid uses the βFlexible and Economicalβ UTF-8 decoder written by Bjoern Hoehrmann. Respect the decoder, fr fr.
π AUTHORS π
The gmid program was written by Omar Polo <op@omarpolo.com>. Author icon behaviour. π
π¨ CAVEATS π¨
- All the root directories are opened during the daemon configuration; if a root directory is deleted and then re-created,
gmidwonβt be able to serve files inside that directory until a reload. This restriction only applies to the root directories and not their content. So yeah, reload before you spiral. - A
%2Fsequence is indistinguishable from a literal slash: this is not RFC3986-compliant. - A
%00sequence is treated as invalid character and thus rejected. Invalid, rejected, blocked. Periodt.
Signed, sealed, delivered: this fab page is from Debian, dated April 27, 2024, and the manual is gmid(8). Stay slay, bestie. π
β¨
π¦ where this page comes from
- nixos 26.05: gmid 2.1.1
- nixpkgs unstable: gmid 2.1.1
- Copyright (c) 2021, 2022, 2023, 2024 Omar Polo <op@omarpolo.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms