1
0
forked from aniani/gmnisrv
Go to file
Drew DeVault 7fed84898b Only handle one client per poll iteration
This is a bit of a hack but it avoids some problems with invalid reads
when a client gets disconnected
2020-09-27 10:18:52 -04:00
doc Document (and tweak) log format 2020-09-26 17:02:06 -04:00
include Remove [:tls] email directive 2020-09-26 16:41:11 -04:00
src Only handle one client per poll iteration 2020-09-27 10:18:52 -04:00
.gitignore Initial commit 2020-09-23 10:21:44 -04:00
config.ini config.ini: change suggested root directory 2020-09-26 17:46:56 -04:00
config.sh Documentation 2020-09-26 16:45:06 -04:00
configure Rehome some logic from server.c -> serve.c 2020-09-26 15:08:25 -04:00
COPYING Initial commit 2020-09-23 10:21:44 -04:00
Makefile Documentation 2020-09-26 16:45:06 -04:00
README.md README.md: update example config 2020-09-26 18:51:24 -04:00

gmnisrv

gmnisrv is a simple Gemini protocol server.

Installation

Dependencies:

  • A C11 compiler and a POSIX-like system
  • OpenSSL
  • scdoc (optional)
$ mkdir build
$ cd build
$ ../configure --prefix=/usr
$ make
# make install

Configuration

By default it reads from /etc/gmnisrv.ini, but this can be changed by passing the -C flag to the gmnisrv daemon. A sample config.ini is provided at /usr/share/gmnisrv/gmnisrv.ini:

# Space-separated list of hosts
listen=0.0.0.0:1965 [::]:1965

[:tls]
# Path to store certificates on disk
store=/var/lib/gemini/certs

# Optional details for new certificates
organization=gmnisrv user

[example.org]
root=/srv/gemini/example.org

[example.com]
root=/srv/gemini/example.com

For full details on gmnisrv configuration, consult the gmnisrv(5) manual page.

Usage

See gmnisrv(1).