Mailcow - vollständiger Mailserver in einem Docker-Stack

Mailcow - vollständiger Mailserver in einem Docker-Stack

Mailcow ist ein vollständiger, produktionsreifer Mailserver-Stack mit Web-Admin-Oberfläche, Spam-Filter, DKIM und allem, was für den eigenen E-Mail-Betrieb benötigt wird.

Was ist Mailcow?

Mailcow bündelt Postfix, Dovecot, Rspamd, ClamAV, SOGo Webmail und eine eigene Admin-Oberfläche in einem koordinierten Docker Compose-Stack. Die Installation ist im Vergleich zur manuellen Konfiguration eines Mailservers erheblich vereinfacht – ein einziges Setup-Script generiert die benötigten Konfigurationsdateien. Mailcow eignet sich für alle, die E-Mail vollständig selbst kontrollieren wollen: eigene Domain, eigene Postfächer, kein Datenschutzproblem mit Drittanbietern. Der Stack ist aktiv gepflegt und erhält regelmäßige Updates.

Voraussetzungen

  • Docker 20.10+ / Docker Compose
  • Dedizierter Server oder VPS mit mindestens 2 GB RAM (4 GB empfohlen)
  • Eigene Domain mit korrekten MX-, SPF-, DKIM- und DMARC-DNS-Einträgen
  • Öffentliche IPv4-Adresse; Port 25 muss nicht geblockt sein

Compose-Beispiel

# Mailcow wird nicht über eine einzelne Compose-Datei konfiguriert,
# sondern über das offizielle Setup-Script eingespielt.
# Die generierte docker-compose.yml enthält alle Services.

services:
  # Auszug – vollständige Datei wird vom Setup-Script generiert
  postfix-mailcow:
    image: mailcow/postfix:latest
    container_name: mailcowdockerized-postfix-mailcow-1
    restart: unless-stopped

  dovecot-mailcow:
    image: mailcow/dovecot:latest
    container_name: mailcowdockerized-dovecot-mailcow-1
    restart: unless-stopped

Hinweise

  • Das offizielle Setup-Script (mailcow-setup.sh) ausführen – es generiert die mailcow.conf und alle Compose-Dateien automatisch.
  • DNS korrekt konfigurieren: PTR-Record (Reverse DNS) auf dem Server muss auf den Hostnamen zeigen, sonst lehnen Empfänger E-Mails ab.
  • ClamAV benötigt allein ~1 GB RAM – für ressourcenarme Server kann es im Stack deaktiviert werden.
  • Updates per ./update.sh einspielen; Mailcow bringt ein integriertes Update-Script mit, das Container schrittweise neu baut.