j4n 40051f7ac3 feat: add Docker Compose support
Add container-based deployment as an alternative to bare-metal pyinfra.

- systemd inside container reusing the existing deployer infrastructure
- chatmail-init.sh runs `cmdeploy run --ssh-host @local` on first boot,
  so the container self-deploys using the same code path as bare-metal
- Config via MAIL_DOMAIN env var (simple) or mounted chatmail.ini (advanced)
- External TLS support via TLS_EXTERNAL_CERT_AND_KEY for reverse proxy setups
- Image version tracking in /etc/chatmail-image-version for upgrade detection
- .git/ excluded, but version file mocked so git revparse still works
- Health check verifies postfix, dovecot, and nginx are listening

Files added:
- docker/chatmail_relay.dockerfile: multi-stage build (build + runtime)
- docker/chatmail-init.sh: first-boot deployment script
- docker/chatmail-init.service: systemd unit for init script
- docker/entrypoint.sh: container entrypoint (starts systemd)
- docker/healthcheck.sh: container health check
- docker/docker-compose.yaml: main compose config
- docker/docker-compose.ci.yaml: CI override (uses GHCR image)
- docker/docker-compose.override.yaml.example: customization template
- docker/build.sh: helper script
- doc/source/docker.rst: documentation
- .dockerignore: build context filter
2026-03-17 15:45:03 +01:00
2026-03-17 15:45:03 +01:00
2026-03-17 15:45:03 +01:00
2026-03-17 15:45:03 +01:00
2026-03-17 15:45:03 +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%
Jinja 10%
Filebench WML 1.3%
Shell 1%
Forth 0.6%
Other 1.1%