1 .\" Copyright (c) 2021, 2022, 2023 Omar Polo <op@omarpolo.com>
3 .\" Permission to use, copy, modify, and distribute this software for any
4 .\" purpose with or without fee is hereby granted, provided that the above
5 .\" copyright notice and this permission notice appear in all copies.
7 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 .Nd simple and secure Gemini server
25 .Op Fl D Ar macro Ns = Ns Ar value
30 is a simple and minimal gemini server that can serve static files,
31 talk to FastCGI applications and act as a gemini reverse proxy.
34 rereads the configuration file when it receives
37 The options are as follows:
40 Specifies the configuration file.
43 .It Fl D Ar macro Ns = Ns Ar value
49 Overrides the definition of
51 in the config file if present.
53 Stays and logs on the foreground.
55 Print the usage and exit.
57 Check that the configuration is valid, but don't start the server.
58 If specified two or more time, dump the configuration in addition to
61 Write daemon's pid to the given location.
63 will also act as lock: if another process is holding a lock on that
67 .It Fl V , Fl -version
68 Print the version and exit.
73 Messages and requests are logged by
77 facility or printed on
80 Requests are logged with the
83 Each request log entry has the following fields, separated by
88 Client IP address and the source port number, separated by a colon
102 a configuration file and a X.509 certificate must be provided.
103 A self-signed certificate, which are commonly used in the Geminispace,
104 can be generated using for e.g.\&
106 .Bd -literal -offset indent
107 # openssl req \-x509 \-newkey rsa:4096 \-nodes \e
108 \-keyout /etc/ssl/private/example.com.key \e
109 \-out /etc/ssl/example.com.pem \e
110 \-days 365 \-subj "/CN=example.com"
111 # chmod 600 /etc/ssl/example.com.crt
112 # chmod 600 /etc/ssl/private/example.com.key
118 .Bd -literal -offset indent
119 # gmid -c /etc/gmid.conf
126 .Dq Flexible and Economical
127 UTF-8 decoder written by
128 .An Bjoern Hoehrmann .
133 program was written by
134 .An Omar Polo Aq Mt op@omarpolo.com .
138 All the root directories are opened during the daemon configuration;
139 if a root directory is deleted and then re-created,
141 won't be able to serve files inside that directory until a reload.
142 This restriction only applies to the root directories and not their
145 a %2F sequence is indistinguishable from a literal slash: this is not
148 a %00 sequence is treated as invalid character and thus rejected.