feat: port pneumatube to Rust on fumi-core

This commit is contained in:
randogoth 2026-10-05 11:25:11 +03:00
parent 5dda6567af
commit 65d52bd0e9
37 changed files with 4232 additions and 1912 deletions

View file

@ -7,25 +7,27 @@
#
# Requires PNEUMATUBE_SMOLMAIL_DOMAIN and PNEUMATUBE_SMTP_RELAY_HOST set in
# the environment or a .env file. The gateway's own smolmail account must
# already be registered against that server before pneumatube can run — the
# same bootstrap as any smolmail client, using the mounted sibling checkout
# and ./data as --key/--db:
# already be registered against that server before pneumatube can run —
# the same bootstrap as any smolmail client, using the fumi CLI that ships
# inside the image and ./data as --key/--db:
#
# docker compose run --rm pneumatube \
# uv run /smolmail/smolmail.py --key /data/gateway.key --db /data/gateway.db keygen
# fumi --key /data/gateway.key --db /data/gateway.db keygen
# docker compose run --rm pneumatube \
# uv run /smolmail/smolmail.py --key /data/gateway.key --db /data/gateway.db trust <host> <server-key>
# fumi --key /data/gateway.key --db /data/gateway.db trust <host> <server-key>
# docker compose run --rm pneumatube \
# uv run /smolmail/smolmail.py --key /data/gateway.key --db /data/gateway.db register <user>@<host>
# fumi --key /data/gateway.key --db /data/gateway.db register <user>@<host>
services:
pneumatube:
build: .
# The build context is the parent directory, because Cargo path-depends
# on the sibling fumi checkout (../fumi/core) for the smolmail protocol.
build:
context: ..
dockerfile: pneumatube/Dockerfile
volumes:
- ../smolmail:/smolmail:ro
- ./data:/data
environment:
PNEUMATUBE_SMOLMAIL_REPO: /smolmail
PNEUMATUBE_SMOLMAIL_KEY: /data/gateway.key
PNEUMATUBE_SMOLMAIL_DB: /data/gateway.db
PNEUMATUBE_SMOLMAIL_DOMAIN: ${PNEUMATUBE_SMOLMAIL_DOMAIN:?set the smolmail server address}