feat: add single-file reference server

This commit is contained in:
randogoth 2026-09-26 10:44:21 +03:00
parent 9a31607648
commit 69ba092179
2 changed files with 773 additions and 0 deletions

View file

@ -40,6 +40,19 @@ There is no forward secrecy on the recipient side: a seized recipient key decryp
Version 1 excludes attachments, group messaging, federation, anonymous routing, multi-device synchronisation and key revocation.
## Reference server
[smolmaild.py](smolmaild.py) is a complete server in one file. It declares its own dependencies inline, so there is nothing to install:
```
uv run smolmaild.py keygen
uv run smolmaild.py serve
```
`keygen` writes the server's static key to `server.key` and prints its public key in base32. Publish that public key through a trusted channel — clients pin it, and a mismatch aborts the handshake.
`serve` listens on `127.0.0.1:1961` by default and stores mail in `mail.db`. Use `--host 0.0.0.0` to accept remote connections, and `--invite-token` to close registration. `--help` lists the size, quota, retention and rate limits.
## Specification
[SPEC.md](SPEC.md) — wire format, operations, trust model and conformance.