From 6d3ffd8f4eaabc94b764429390f9e2f1d61040c9 Mon Sep 17 00:00:00 2001 From: holger krekel Date: Fri, 13 Oct 2023 17:45:54 +0200 Subject: [PATCH] add plan as discussed with alex and nami --- README.md | 15 ++++++++++++++- plan.txt | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 plan.txt diff --git a/README.md b/README.md index 08321939..6ca6d3f3 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,6 @@ then run with pyinfra command line tool: ## Structure (wip) - ``` # package doveauth tool and deploy chatmail server to a envvar-specified ssh-reachable host @@ -38,6 +37,20 @@ doveauth doveauth.py doveauth.lua test_doveauth.py + +# lmtp server to block (outgoing) unencrypted messages +filtermail + README.md + pyproject.toml + .... + + +# scripts for setup/development/deployment + +scripts/ + init.sh # create venv/other perequires + deploy.sh # run pyinfra based deploy of everything + ``` ## Dovecot/Postfix configuration diff --git a/plan.txt b/plan.txt new file mode 100644 index 00000000..a1527357 --- /dev/null +++ b/plan.txt @@ -0,0 +1,39 @@ +# Chat-mail server development (up until Oct 18th) + +## Dovecot goals/steps + +1. create-user-on-login ("doveauth") + - repackage so that "doveauth" does not come from a hard-coded path + - persistence of accounts + +2. per-user quota (adaptive) + +3. automatic expiry of messages older than M days + +4. automatic expiry of users that haven't logged in for N days + + +## Postfix goals/steps + +1. block all outgoing mails with our own LMTP program + +2. only allow (outgoing) mails if secure-join or autocrypt-pgp-encrypted format + (probably via an lmtp service) + +3. basic outgoing send rate/limits (depending on "account-rating") + + +## online tests (first with plain python/pytest) + +- write tests for dovecot login (exists) +- write tests for postfix logins +- write A<>B send/receive tests + + +## Delta Chat + +1. qr code that defines access to a chatmail instance (like mailadm but without http etc.) + +2. support for creating username/password and verifying login works + +