L'infrastructure mail
La pile derrière synthe.se : DNSSEC, DANE, DKIM, des sauvegardes qui restaurent, surveillance en continu. La preuve derrière l'offre d'hébergement.
- Rôle
- Architecture, déploiement, exploitation
- Période
- 2026
- Stack
- Stalwart, Caddy, DNSSEC, DANE, OpenPGP, vykar, Hora

Le besoin
Je propose de l’hébergement, et mon propre courrier tourne sur l’infrastructure que je vends. En août 2026, j’ai quitté Proton pour un serveur que j’exploite moi-même, avec quatre exigences : la même sécurité, une bonne délivrabilité, le chiffrement au repos et un déploiement reproductible.
Le serveur gère aujourd’hui synthe.se et quelques autres domaines, et obtient 100 % au test e-mail d’internet.nl.
À l'usage
Le serveur reçoit, envoie et stocke le courrier de chaque domaine, accessible en IMAP, en JMAP et par webmail.
Authenticité : SPF strict, DMARC en mode rejet, et deux signatures DKIM par message, en Ed25519 et en RSA. Les clés changent tous les 90 jours, avec une semaine de recouvrement.
Transport : MTA-STS impose le chiffrement, et DANE publie l’empreinte de la clé du serveur dans le DNS, signé par DNSSEC. Un serveur expéditeur qui valide DNSSEC accepte alors uniquement ce certificat.
Confidentialité : sur un compte chiffré au repos, chaque message est chiffré avec la clé OpenPGP de son titulaire avant d’être écrit sur disque, juste après l’analyse antispam. WKD publie cette clé pour que les clients mail la trouvent automatiquement.
Architecture
L’ensemble tourne sur un serveur dédié sous Debian. Stalwart écoute directement sur les ports mail, avec son propre TLS. Une instance Caddy sert le reste : administration, configuration automatique des clients, politique MTA-STS, clés WKD, webmail, page de statut et ce site.
Caddy renouvelle les certificats en gardant la même clé privée, et chaque renouvellement est copié dans Stalwart : les enregistrements TLSA restent valides. Un second TLSA désigne une clé de secours conservée hors ligne, déjà connue des serveurs distants en cas de changement urgent.
Chaque nuit, Stalwart est suspendu environ une seconde, le temps de copier son stockage. vykar chiffre cette copie, la déduplique et l’envoie hors site.
Des scripts Bash numérotés déploient et vérifient l’ensemble depuis un poste de travail, et peuvent être relancés à volonté.
Décisions
Des binaires natifs pour le mail. En mode rootless, Docker masque l’adresse réelle des clients. SPF, les listes de blocage et les limites de débit en dépendent : Stalwart et Caddy tournent sous systemd.
Un seul MX. En cas de panne, les serveurs expéditeurs gardent le courrier en file et réessaient pendant plusieurs jours. Un MX de secours attire surtout les spammeurs, qui visent le serveur le moins protégé.
Un seul frontal web. Le 18 août 2026, Caddy a remplacé nginx et certbot : un seul système de certificats, une seule configuration, et HTTP/3 pour le site.
Chaque garantie surveillée. Deux instances Hora, dans deux réseaux, surveillent les ports, les certificats, les enregistrements DNS épinglés et les listes de blocage. Elles comparent le TLSA publié à la clé réelle toutes les 30 minutes et testent un aller-retour complet d’envoi et de réception.
Chaque incident ajoute une sonde. En septembre, après une mise à jour du moteur de conteneurs, un cycle de sauvegarde a sauté : la dernière copie avait 33 heures quand la surveillance l’a signalée. Une sonde lit désormais le journal de sauvegarde et confirme chaque cycle.
Aujourd'hui
Le serveur gère mon courrier, celui de synthe.se et le formulaire de contact du site. Chaque mise à jour prend un instantané, vérifie le nouveau binaire, le remplace et revient à la version précédente en cas d’échec.