GMID(8)

NAME
gmid - Gemini server

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.

gmid rereads the configuration file when it receives SIGHUP and reopens log files when it receives SIGUSR1.

The options are as follows:

-c config
    Specifies the configuration file. The default is /etc/gmid.conf.

-D macro=value
    Define macro to be set to value on the command line. Overrides the definition of macro in the config file if present.

-f  Do not daemonize. Stay and log in the foreground.

-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 time, dump the configuration in addition to verify it.

-P pidfile
    Write daemon's pid to the given location. pidfile will also act as lock: if another process is holding a lock on that file, gmid will refuse to start.

-V, --version
    Print the version and exit.

-v  Verbose mode.

EXAMPLES
To run gmid a configuration file and a 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

SEE ALSO
gemexp(1), gg(1), gmid.conf(5)

ACKNOWLEDGEMENTS
gmid uses the “Flexible and Economical” UTF-8 decoder written by Bjoern Hoehrmann.

AUTHORS
-nosplit The gmid program was written by Omar Polo <op@omarpolo.com>.

CAVEATS

•   All the root directories are opened during the daemon configuration; if a root directory is deleted and then re-created, gmid won't be able to serve files inside that directory until a reload. This restriction only applies to the root directories and not their content.

•   a %2F sequence is indistinguishable from a literal slash: this is not RFC3986-compliant.

•   a %00 sequence is treated as invalid character and thus rejected.