selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

chatmail relay logo

Self-host chatmail relay

1.13.0

End-to-end encrypted email relay with zero metadata

ReleaseOpen SourceMIT
Updatedlast week
LanguagePython
Setup difficultyAdvanced
Stars
494
CPU
1 CPU
RAM
1GB RAM
Storage
10GB storage
Ports
25 (SMTP), 80 (HTTP (acmetool for Let's Encrypt)), 143 (IMAP), 443 (HTTPS (multiplexes HTTPS, IMAP, SMTP via ALPN)), 465 (SUBMISSIONS), 587 (SUBMISSION), 993 (IMAPS), 3478 (STUN/TURN (UDP)), 8443 (HTTPS-ALT (internal nginx))
Requires
Acmetool, Dovecot, Filtermail, Iroh relay, Nginx, OpenDKIM, Postfix, TURN (chatmail-turn)
Docker
ghcr.io/chatmail/docker
Install with Docker Compose

What is chatmail relay?

chatmail relay is a self-hosted email server (MTA) built for end-to-end encrypted messaging with zero metadata retention. It deploys standard components — Postfix, Dovecot, filtermail, Nginx, acmetool, OpenDKIM, mtail, Iroh relay, and TURN — via automated cmdeploy scripts over SSH or an experimental Docker image. Messages are auto-deleted, delivery is sub-second with P2P streaming, and push notifications work for major mobile platforms. The relay enforces strict TLS, DKIM signing, and OpenPGP encryption with minimized metadata. It runs on minimal hardware (1 GB RAM, 1 CPU, 10 GB storage) on Debian 12. No spam filtering or IP reputation checks; federation relies on IETF standards. Experimental IP-only mode works without a domain using self-signed certificates.

chatmail relay alternatives

Should you self-host chatmail relay?

chatmail relay scores 52/100 on selfhost.directory (how scoring works) and ranks #49 of 106 in Email. It has 494 GitHub stars, +1 in the last 30 days.

It shipped 6 stable releases in the past year. The latest, 1.13.0, came out on 22 September 2026. New versions land roughly every 2 months.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Listmonk (80/100, 24 040 stars). It scores higher overall, so compare the two before you pick. See chatmail relay vs Listmonk side by side.

Features

  • Automated deployment via cmdeploy
  • Automatic address creation on first login
  • Configurable resource limits
  • DKIM signing and verification
  • Docker Compose deployment (experimental)Experimental, amd64-only, arm64 untested
  • End-to-end encryption enforcement
  • Instant realtime delivery
  • IP-only experimental modeExperimental, may change without notice
  • Migration tooling
  • P2P streaming via Iroh
  • Privacy-preserving push notifications
  • Reverse Proxy Support
  • Strict TLS enforcement
  • Zero metadata retention

chatmail relay README

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 connections with strict TLS are accepted; all messages must be correctly signed with DKIM and OpenPGP-encrypted with minimized metadata. There are experimental exceptions for no-DNS relays, which are allowed use self-signed TLS certificates and which do not need to DKIM-sign their messages. Unencrypted messages are allowed in neither case.

  • Reliable Federation and Decentralization: No spam or IP reputation checks, federating depends on established IETF standards and protocols.

How to install chatmail relay

Install chatmail relay with Docker Compose

Environment variables
MAIL_DOMAIN, ACME_EMAIL, TLS_EXTERNAL_CERT_AND_KEY

mkdir -p /srv/chatmail-relay && cd /srv/chatmail-relay wget https://raw.githubusercontent.com/chatmail/docker/main/docker-compose.yaml wget https://raw.githubusercontent.com/chatmail/docker/main/docker-compose.override.yaml.example -O docker-compose.override.yaml echo 'MAIL_DOMAIN=chat.example.org' > .env docker compose up -d

Experimental, amd64-only, requires kernel parameter tuning

How to configure chatmail relay

  • max_load_1m5Maximum 1-minute load average before rejecting new address creation
  • min_available_memory200MMinimum memory available without swapping before rejecting new address creation
  • min_free_disk_space1GMinimum free disk space on mailbox filesystem before rejecting new address creation
  • max_imap_connections10000Dovecot IMAP process limit
  • max_smtp_connections1000Postfix process limit on each submission and smtps port

chatmail relay releases & version history

FAQ

How are chatmail relays run? Can I run one myself?

Yes, they are designed to be cheap to run, self-funded by operators, automatically deployed via the chatmail relay repository, and run on low-end hardware like a Raspberry Pi.

How about interoperability with classic email servers?

Generally interoperates well, but some Big-Tech providers may block chatmail relays due to proprietary scanning or IP reputation systems; chatmail uses strong cryptography instead.

What is the difference between chatmail relays and classic email servers?

A chatmail relay is a minimal MTA setup with zero metadata collection, auto-deleted messages, sub-second delivery with P2P streaming, strict TLS/DKIM/OpenPGP enforcement, and no spam/IP reputation checks — federating via IETF standards.

More in Email

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…