Mit Docker und Mailcow lässt sich ein eigener E-Mail-Server einrichten. Wichtig dabei sind die korrekten DNS-Einträge, bevor überhaupt mit dem Aufsetzen vom E-Mail-Server begonnen wird. Das Docker-Image von Mailcow installiert nginx als Web- und mariadb als Datenbankserver. Es ist durchaus ratsam, den E-Mail-Server getrennt zu betreiben. WordPress lässt sich zwar auch unter nginx und php-fpm installieren, harmonisiert jedoch nicht optimal damit. Im folgenden Beispiel installieren wir Mailcow mittels GitHub in Docker.
Folgende Einträge sind für die Domain example.com für einen funktionierenden Mailcow-Server IP: 123.45.678.900 notwendig. Mit Mailcow können durchaus mehrere Domains als E-Mail verwaltet werden.
mail.example.com A 123.45.678.900
autoconfig.example.com CNAME mail.example.com
autodiscover.example.com CNAME mail.example.com
example.com MX mail.example.com
_dmarc.example.com TXT v=DMARC1; p=reject; rua=mailto:mailauth-reports@example.com
example.com TXT v=spf1 mx -all
I. Docker installieren
Docker lässt sich mit wenigen Schritten in Debian installieren.
# apt install ca-certificates curl gnupg lsb-release # mkdir -p /etc/apt/keyrings # curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null # apt update # apt-get install docker-ce docker-ce-cli containerd.io # apt install docker-compose
II. Mailcow installieren (git)
Weise dem Server zu, Docker bei jedem Neustart zu laden und starte den Service:
# systemctl enable docker.service # systemctl start docker.service
Wechsle nun nach /opt
# cd /opt
und lade das Docker-Image herunter:
# git clone https://github.com/mailcow/mailcow-dockerized
Welchsel das Verzeichnis und generiere die generate_config.sh
# cd mailcow-dockerized/ # ./generate_config.sh
Baue schlussendliche das Docker-Image:
# docker-compose pull # docker-compose up -d
Mailcow starten
Nach erfolgreicher Installation wird Mailcow per Subdomain aufgerufen. In diesem Beispiel zeigt unser MX-Eintrag auf mail.example.com
Ändere unbedingt das Standard-Login vom User: admin und Passwort: moohoo ab. Zudem ist nach erfolgreicher Installation ein ARC/DKIM-Key zu setzen und zu importieren. Den soeben generierten Key fügen wir schlussendlich noch als TXT in die DNS-Einträge ein.
# openssl genrsa -out private.key 2048
Den Schlüssel findest du unter: (oder im aktuellen Verzeichnis, in welchem du dich befindest) /opt/mailcow-dockerized/private.key
Erstelle den DNS-Eintrag nach dem Muster:
dkim._domainkey.example.com TXT v=DKIM1 (...)