src | ||
.editorconfig | ||
.gitignore | ||
build.lisp | ||
geml.asd | ||
geml.ini | ||
LICENSE | ||
Makefile | ||
packages.lisp | ||
README.md |
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 "/etc/geml/geml.ini")
Standalone Executable
To get a geml-server
binary run:
./build.sh && ./bin/geml-server -h
Systemd
- geml.service