Move _build_chatmaild from deployers.py into util.py as build_chatmaild_sdist() with fcntl-based file locking so parallel deploys do not race on the sdist. The build is called once from run_cmd() before pyinfra starts; deployers.py now only calls get_chatmaild_sdist() to locate the pre-built archive. Add test_build_chatmaild_sdist and test_get_chatmaild_sdist_errors.
Chatmail relays for end-to-end encrypted email
Chatmail relay servers are interoperable Mail Transport Agents (MTAs) designed for:
-
Zero State: no private data or metadata collected, messages are auto-deleted, low disk usage
-
Instant/Realtime: sub-second message delivery, realtime P2P streaming, privacy-preserving Push Notifications for Apple, Google, and Huawei;
-
Security Enforcement: only strict TLS, DKIM and OpenPGP with minimized metadata accepted
-
Reliable Federation and Decentralization: No spam or IP reputation checks, federating depends on established IETF standards and protocols.
This repository contains everything needed to setup a ready-to-use chatmail relay on an ssh-reachable host. For getting started and more information please refer to the web version of this repositories' documentation at