geml/README.md
2023-08-01 11:11:57 -06:00

1.1 KiB

geml

Gemini server written in Common Lisp

/etc/geml/geml.ini

geml requires cert and key to be configured before it will run. And will have nothing to serve until you configure at least one domain and root. See geml.ini as an example.

cert = /var/lib/geml/localhost.crt
key = /var/lib/geml/localhost.key

[my.gmi.capsule]
root = /srv/gmi

Generate Self-Signed SSL Certificate

  • include/write helper script for this
openssl req -x509 \
  -out localhost.crt \
  -keyout localhost.key \
  -newkey rsa:2048 \
  -nodes \
  -sha256 \
  -subj '/CN=localhost' \
  -extensions EXT \
  -config <(printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")

Usage

SBCL

Start sbcl with proper readline support: rlwrap sbcl

(ql:quickload "geml")
(gemini.server:start-server)
; or with a custom settings file location
(gemini.server:start-server "/path/to/geml.ini")

Standalone Executable

To get a geml-server binary run:

sbcl --non-interactive --load build.lisp

Systemd

  • geml.service