holger krekel 6e52bfe8c4 refactor: extract sdist build into util with lock-based idempotency
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.
2026-03-07 14:38:47 +01:00
2025-12-18 23:49:48 +00:00
2025-12-18 09:21:19 +01:00

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

https://chatmail.at/doc/relay

Description
Languages
Python 86.1%
Jinja 10%
Filebench WML 1.2%
Shell 0.9%
Forth 0.6%
Other 1.2%