Files
wiki/Catalogue-Self-Hosted/apps/app-stalwart.md
T
2026-06-09 18:40:21 +02:00

4.5 KiB


title: Stalwart created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, email, rust, smtp, imap, jmap, auto-hebergement] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Email, https://github.com/stalwartlabs/mail-server]

📧 Stalwart

Serveur mail moderne tout-en-un écrit en Rust : SMTP, IMAP4, JMAP, CalDAV, CardDAV, anti-spam et gestion native en un seul binaire.

📋 Informations Générales

Champ Valeur
Site web stalw.art
GitHub stalwartlabs/mail-server
License AGPL-3.0
Langage Rust
Étoiles GitHub 13 086
Catégorie cat-email
Mainteneur Stalwart Labs GmbH

📝 Description

Stalwart Mail Server est un projet relativement récent (lancement public 2023) qui ambitionne de réécrire l'intégralité de la stack mail en Rust, dans un seul binaire performant et sécurisé.

Composants intégrés :

  • SMTP (réception + relais) avec support DSN, ETRN, SIZE extensions
  • IMAP4 rev2 et rev4 + JMAP (protocole moderne替代 IMAP, plus rapide)
  • CalDAV/CardDAV : calendrier et contacts
  • Anti-spam : SpamAssassin compilé, Rspamd-like scoring, DNSBL, greylisting, DMARC
  • Web admin native + webmail optionnel (Stalwart Webmail séparé)
  • Sieve : filtrage côté serveur
  • OAuth2 / OIDC : authentification moderne, support SSO

Forces :

  • Performance : jusqu'à plusieurs millions de messages/jour sur un seul nœud
  • Mémoire safe (Rust) → moins de failles de sécurité type use-after-free
  • Multi-protocoles modernes : JMAP en plus d'IMAP, c'est rare
  • Sauvegarde / restore natifs avec export/import complet
  • Config en TOML claire et versionnable

Faiblesses :

  • Maturité : plus jeune que Postfix+Dovecot (20+ ans d'age cumulé)
  • Écosystème de plugins plus limité
  • Documentation en cours d'enrichissement
  • Communauté plus petite que mailcow/mailu

🚀 Installation

Docker (recommandé)

# docker-compose.yml
version: '3.8'
services:
  stalwart:
    image: stalwartlabs/mail-server:latest
    container_name: stalwart
    restart: unless-stopped
    hostname: mail.example.com
    volumes:
      - ./data:/opt/stalwart-mail
    ports:
      - "25:25"    # SMTP
      - "587:587"  # Submission
      - "465:465"  # SMTPS
      - "993:993"  # IMAPS
      - "4190:4190" # Sieve
      - "8080:8080" # HTTP admin
    environment:
      - HOSTNAME=mail.example.com

Le container initialise tout et crée un fichier config.toml à éditer.

Binaire natif

# Téléchargement direct du binaire
curl -sSL https://github.com/stalwartlabs/mail-server/releases/latest/download/stalwart-mail-linux-x86_64.tar.gz | tar xzf -
./stalwart-mail --config /etc/stalwart/config.toml

⚙️ Configuration

  1. DNS : MX, SPF, DKIM (génération automatique via la CLI), DMARC
  2. Reverse DNS : obligatoire pour ne pas être classé spam
  3. Base de données : SQLite par défaut, recommandé PostgreSQL pour la production
  4. Stockage : filesystem par défaut (maildir), support blob storage S3
  5. TLS : auto-certificats Let's Encrypt via ACME natif
  6. Admin : compte créé au premier démarrage, mot de passe à changer

🔗 Alternatives

  • app-mailcow — Plus mature, Dockerisé, basé sur Postfix/Dovecot
  • app-mailu — Plus simple, multi-conteneurs
  • app-mox — Concurrent direct en Go, mono-binaire

🔒 Sécurité

  • Mémoire safe par construction (Rust), réduit drastiquement les CVE mémoire
  • OAuth2 / OIDC pour SSO avec Keycloak/Authentik
  • Anti-spam intégré (SpamAssassin embarqué, pas de service séparé)
  • Chiffrement at rest optionnel (Cryptomator-like)
  • Rate limiting et quotas par utilisateur
  • Logs structurés exportables vers Loki/Elasticsearch

📚 Ressources

Pages Liées