geml/README.md

53 lines
1.1 KiB
Markdown
Raw Normal View History

2023-08-01 13:34:38 +00:00
# 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
2023-08-01 13:43:09 +00:00
[`geml.ini`](./geml.ini) as an example.
2023-08-01 13:34:38 +00:00
```
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
```sh
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`
```lisp
(gemini.server:start-server)
; or with a custom settings file location
(gemini.server:start-server "/path/to/geml.ini")
```
2023-08-01 13:43:09 +00:00
### Standalone Executable
2023-08-01 13:34:38 +00:00
2023-08-01 13:43:09 +00:00
- [ ] save-lisp-and-die
### Systemd
- [ ] geml.service