Mailcow ist eine leistungsstarke und flexible Lösung für einen eigenen Mailserver, mit dem du deine E-Mails sicher und effizient verwalten kannst. Du kannst mehrere E-Mail-Domains und -Konten erstellen, Benutzer verwalten, E-Mails senden und empfangen sowie zusätzliche Funktionen wie Spam-Filterung und Verschlüsselung nutzen. Mit Mailcow hast du die volle Kontrolle über deine E-Mail-Kommunikation und kannst sie an deine individuellen Anforderungen anpassen. In dieser Anleitung erfährst du, wie du Mailcow innerhalb weniger Minuten mittels Docker und Traefik einrichten kannst.
Datum | Änderungen |
---|---|
15.04.2025 | Traefik aktualisiert, Kapitel 7 hinzugefügt, Kapitel 8 überabeitet, Bilder an aktuelle Version angepasst |
07.10.2024 | Kapitel 4.2. für Umsteiger angepasst |
06.10.2024 | Kapitel 4.2. auf Überarbeitet und auf Traefik v3 Anleitung angepasst. |
18.04.2024 | Kapitel 4.2 um Skript zur Umbenennung erweitert |
21.08.2023 | Anpassung und Fehlerkorrektur in der docker-compose.override.yml |
28.07.2023 | DNS Einträge vervollständigt |
27.07.2023 | 4.4 MTA-STS aktivieren neu verfasst + Traefik Konfiguration bereinigt |
01.06.2023 | Anpassung an die neue Traefik Anleitung |
05.04.2023 | Kapitel 5 angepasst |
30.10.2022 | Kapitel 1 angepasst. Hinweise zu Docker Compose v2 entfernt. Git Installation entfernt. |
11.08.2022 | Fehler bei Certbot behoben. Hilfen von Jonathan eingefügt. |
11.08.2022 | Verweis auf CrowdSec integriert, Traefik Anleitung Verweis angepasst, Docker Compose angepasst |
09.08.2022 | Anleitung auf Docker Compose v2 angepasst. Zusätzlich wurde noch MTA-STS in die Anleitung integriert. |
30.04.2021 | Anleitung funktioniert jetzt ohne Wildcard Zertifikate. Reihenfolge der Abschnitte wurde angepasst. |
19.05.2020 | Hinzugefügt: Kapitel DNS |
15.04.2020 | Hinzugefügt: Clam AV deaktivieren |
31.03.2020 | Hinzugefügt: docker-compose.override.yml, Test der Zertifikate |
29.03.2020 | Erste Version dieser Anleitung |
Ich habe mailcow ausprobiert, da es eine moderne GUI besitzt und sich viel leichter updaten lässt als mein bisheriger E-Mail Server. Die verlinkte Anleitung erfordert viele Schritte und das komplette System lässt sich sehr schlecht warten. Diese Nachteile hat man bei mailcow nicht.
Ein paar Eindrücke
0. Grundvoraussetzungen
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
1. Verzeichnis erstellen
Nun erstellen wir uns ein Verzeichnis für unseren späteren E-Mail Server
mkdir -p /opt/containers/mailcow
2. mailcow von git klonen
Nun klonen wir uns die neuste Version von mailcow.
git clone https://github.com/mailcow/mailcow-dockerized /opt/containers/mailcow
3. Konfigurationsdatei erstellen
Dazu müssen wir lediglich ein Skript starten.
cd /opt/containers/mailcow ./generate_config.sh
Hier gebt ihr ein:
- Mail server hostname (FQDN): mail.euredomain.de
- Timezone [Europe/Berlin]: mit Enter bestätigen oder anpassen und dann bestätigen
- Available Branches: mit “1” bestätigen
Bei mir sieht dies so aus:
4. Anpassungen für Traefik vornehmen
4.1 Docker Compose anpassen
Nun passen wir noch die Docker Compose Datei an Traefik an. Dazu öffnet ihr folgende Datei:
nano /opt/containers/mailcow/docker-compose.yml
Ihr scrollt nun bis zum Abschnitt “nginx-mailcow”. Dies befindet sich ca. in Zeile 396. Dort müsst ihr folgendes ändern:
Zeilen unter "nginx-mailcow" auskommentieren: #ports: #- "${HTTPS_BIND:-0.0.0.0}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}" #- "${HTTP_BIND:-0.0.0.0}:${HTTP_PORT:-80}:${HTTP_PORT:-80}"
4.2 docker-compose.override.yml erstellen
Nun erstellen wir eine neue Datei, in der wir alle unsere Anpassungen tätigen. Grundlage für diese Anpassungen bildet die offizielle Mailcow Dokumentation.
4.2.1 Ältere Installationen anpassen
Wenn wir mailcow frisch aufsetzten können wir direkt weiter zu 4.2.2 springen. Wenn wir aktuell die alte docker-compose.override.yml
nutzen und auf die neue Version umsteigen möchten, sind folgende Schritte notwendig:
1. Mailcow herunterfahren mit:
cd /opt/containers/mailcow docker compose down
2. Das Zertifikat manuell aus der Datei entfernen:
nano /opt/containers/traefik-crowdsec-stack/traefik/acme_letsencrypt.json
{ "http_resolver": { "Account": { "Email": "deine@email.de", "Registration": { "body": { "status": "valid", "contact": [ "mailto:deine@email.de" ] }, "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/1653677777" }, "PrivateKey": "ixxxxxxxxxxxxxxxxL4/mGSedh7MvirEfXls0vg5nNVzEQwgIsKLGGxxxxxxxxxxxxJ", "KeyType": "4096" }, "Certificates": [ { "domain": { "main": "andererdomain.de", "sans": [ "www.andererdomain.de" ] }, "certificate": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Store": "default" }, ############# Dieser Teil muss entfernt werden # { # "domain": { # "main": "mail.deinedomain.de", # "sans": [ # "autodiscover.deinedomain.de", # "autoconfig.deinedomain.de", # "mta-sts.deinedomain.de", # "imap.deinedomain.de", # "pop3.deinedomain.de", # "smtp.deinedomain.de" # ] # }, # "certificate": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # "key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # "Store": "default" # }, ############# Dieser Teil muss entfernt werden { "domain": { "main": "andererdomain.de", "sans": [ "www.andererdomain.de" ] }, "certificate": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Store": "default" } ] } }
3. Traefik neu starten.
cd /opt/containers/traefik-crowdsec-stack/ docker compose down && docker compose up -d
4. Mailcow wieder starten:
cd /opt/containers/mailcow docker compose up -d
4.2.2. docker-compose.override.yml
nano /opt/containers/mailcow/docker-compose.override.yml
networks: proxy: name: proxy external: true services: certdumper: image: ghcr.io/kereis/traefik-certs-dumper:latest restart: unless-stopped network_mode: none command: --restart-containers mailcowdockerized-postfix-mailcow-1,mailcowdockerized-dovecot-mailcow-1 volumes: - /opt/containers/traefik-crowdsec-stack/data/traefik/certs:/traefik:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data/assets/ssl:/output:rw environment: DOMAIN: ${MAILCOW_HOSTNAME} ACME_FILE_PATH: "/traefik/acme_letsencrypt.json" healthcheck: test: ["CMD", "/usr/bin/healthcheck"] interval: 30s timeout: 10s retries: 5 nginx-mailcow: networks: proxy: labels: traefik.docker.network: proxy traefik.enable: "true" traefik.http.services.nginx-mailcow.loadbalancer.server.port: "80" traefik.http.routers.nginx-mailcow-secure.entrypoints: websecure traefik.http.routers.nginx-mailcow-secure.rule: "Host(`mail.euredomain.de`) || Host(`autodiscover.euredomain.de`) || Host(`autoconfig.euredomain.de`) || Host(`mta-sts.euredomain.de`) || Host(`imap.euredomain.de`) || Host(`pop3.euredomain.de`) || Host(`smtp.euredomain.de`)" traefik.http.routers.nginx-mailcow-secure.service: nginx-mailcow traefik.http.routers.nginx-mailcow-secure.tls: "true" traefik.http.routers.nginx-mailcow-secure.tls.certresolver: http_resolver traefik.http.routers.nginx-mailcow-unsecure.entrypoints: web traefik.http.routers.nginx-mailcow-unsecure.rule: "Host(`mail.euredomain.de`) || Host(`autodiscover.euredomain.de`) || Host(`autoconfig.euredomain.de`) || Host(`mta-sts.euredomain.de`) || Host(`imap.euredomain.de`) || Host(`pop3.euredomain.de`) || Host(`smtp.euredomain.de`)"
Nun müssen wir noch die URLs anpassen. Dies könnt ihr von Hand machen oder mit folgendem Skript. Wichtig ist, dass ihr das Skript noch an eure Domain anpasst.
cd /opt/containers/mailcow sed -i "s/euredomain.de/<DeineDomain>/g" docker-compose.override.yml Beispiel: sed -i "s/euredomain.de/goneuland.de/g" docker-compose.override.yml
4.3 mailcow.conf anpassen
Hier müssen wir noch eine Änderung vornehmen, damit Mailcow keinen eigenen Zertifikate versucht zu erstellen.
nano /opt/containers/mailcow/mailcow.conf
bisher: # Skip running ACME (acme-mailcow, Let's Encrypt certs) - y/n SKIP_LETS_ENCRYPT=n ändert ihr zu: # Skip running ACME (acme-mailcow, Let's Encrypt certs) - y/n SKIP_LETS_ENCRYPT=y
4.4 MTA-STS aktivieren
MTA-STS (Mail Transfer Agent-Strict Transport Security), kurz als STS bezeichnet, stellt eine vergleichsweise innovative Lösung dar, um die Sicherheit beim Versenden und Empfangen von E-Mails zu verbessern. Mit der Ratifizierung als RFC-8461 kann es nun implementiert werden. Wie bei DANE, werden auch für STS relevante Informationen in das DNS eingefügt. Der wesentliche Unterschied besteht jedoch darin, dass STS nicht auf DNSSEC angewiesen ist. Da zahlreiche Hosting-Anbieter DNSSEC zurzeit nicht unterstützen, kann auch DANE nicht verwendet werden. Hier bietet STS (zumindest vorübergehend bis DNSSEC und DANE allgemein verfügbar sind) eine praktikable Alternative.
4.4.1 MTA-STS Policy
Zuerst muss eine Strategie erstellt werden. Als Beispiel könnte eine Teststrategie für die Domain euredomain.de so aussehen:
version: STSv1 mode: testing max_age: 86400 mx: mail.euredomain.de mx: *.euredomain.de
Die Strategie umfasst die STS-Version (version), hier gibt es zurzeit nur STSv1, den Modus, in dem die Strategie ausgeführt wird (mode: testing für Tests, mode: enforce für Produktion) und die Dauer, die ein Mailserver die Strategie zwischenspeichern darf (max_age in Sekunden). Zusätzlich gibt die Strategie alle Mailserver an, die TLS unbedingt benötigen und unterstützen. Diese können einzeln oder als Wildcard angegeben werden (mx).
Eine produktive Strategie für die Domain exampleweb.de könnte so aussehen:
version: STSv1 mode: enforce max_age: 15552000 mx: mail.euredomain.de mx: *.euredomain.de
Im Vergleich zur obigen Teststrategie ändern sich nur der Modus und die maximale Cache-Dauer (mode: enforce und max_age: 6 Monate, das sind 15552000 Sekunden).
Die Strategie wird dann als einfache Textdatei mit dem Namen mta-sts.txt gespeichert. Die Strategie muss dann auf einen Webserver übertragen werden, der über HTTPS erreichbar ist, HTTP allein reicht nicht aus.
Außerdem muss der Webserver unter dem Namen mta-sts.domain.de erreichbar sein. Für die Domain exampleweb.de muss der Webserver also unter der Domain mta-sts.exampleweb.de erreichbar sein. Die Strategie wird dann im Verzeichnis .well_known gespeichert:
MTA-STS (Strict Transport Security)
Die Strategie für exampleweb.de ist dann unter folgendem Link erreichbar: https://mta-sts.exampleweb.de/.well-known/mta-sts.txt. Die URL ist fest und kann nicht geändert werden. Erforderlich ist immer der Domainname der E-Mail-Adresse (exampleweb.de, gmail.com), dann das Präfix mta-sts und das Verzeichnis .well-known mit der Strategie mta-sts.txt. Hier sind einige Beispiele:
https://mta-sts.euredomain.de/.well-known/mta-sts.txt https://mta-sts.gmail.com/.well-known/mta-sts.txt https://mta-sts.web.de/.well-known/mta-sts.txt
Das Zertifikat für den Webserver muss auch von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt werden. Ein selbst signiertes Zertifikat funktioniert hier nicht. Kostenlose Zertifikate von Let’s Encrypt und Wildcard-Zertifikate sind jedoch akzeptabel.
Auf unserer Installation erstellen wir als erstes das Verzeichnis und dann die dazugehörige Datei:
mkdir -p /opt/containers/mailcow/data/web/.well-known/ nano /opt/containers/mailcow/data/web/.well-known/mta-sts.txt
Dort legen wir dann unsere Policy an:
version: STSv1 mode: enforce max_age: 15552000 mx: mail.euredomain.de mx: *.euredomain.de
folgendes müsst ihr anpassen:
- mail.euredomain.de –> eure Domain wie im Schritt 3
- *.euredomain.de –> dies auch entsprechend eurer Domain anpassen
5. Mailcow starten
Nun können wir mailcow zum ersten mal starten. Gebt dazu folgendes ein.
Wichtig ist, dass ihr den Befehl als Benutzer root ausführt.
cd /opt/containers/mailcow docker compose up
Wenn ihr keine Fehlermeldung bekommt, könnt ihr den Prozess wieder beenden und im Hintergrund starten:
docker compose up -d
Jetzt könnt ihr direkt bei Abschnitt 6 weitermachen.
5.1 Möglicher Fehler: Pool overlaps with other one on this address space
Ich habe bei mir obigen Fehler bekommen.
Wie ihr in der Docker Compose Datei gesehen habt, werden hier feste IP Bereiche (172.22.0/24) verwendet. Es kann jedoch sein, dass dieser Bereich derzeit schon von einem anderen Container verwendet wird.
Jetzt habt ihr zwei Möglichkeiten
- Alle IP Adressen in der Docker Compose anpassen
- Den Container neu starten, welcher den Bereich (172.22.0/24) blockiert.
Ich habe mich für die zweite Möglichkeit entschieden, da es sich schneller realisieren lässt. Um den “blockenden” Container zu finden, verwende ich das Tool Portainer (Installations-Anleitung dazu findet ihr hier).
Hier kann ich mir jetzt anzeigen lassen, welcher Container bereits diesen IP Bereich belegt.
Diesen Container beende ich nun und starte ihn neu, NACHDEM ich mailcow gestartet habe.
Nun starte ich zuerst mailcow und danach dann die eben beendeten Service.
cd /opt/containers/mailcow docker compose up -d
6. DNS Einstellungen
Alle DNS Einstellungen übernehme ich aus dem Empfehlungen von Mailcow. Diese könnt ihr hier nachlesen.
Bis diese Einstellungen wirken, kann es mehrere Stunden dauern !!!
6.1 Reverse DNS anpassen
Bei netcup könnt ihr den Reverse DNS Eintrag eures Servers sehr einfach anpassen. Dazu geht ihr Server Control Panel (SCP) und wählt dort euren Server aus. Unter dem Reiter “Netzwerk” könnt ihr nun den rDNS Eintrag anlegen.
Der rDNS Eintrag sollte identisch mit dem “MAILCOW_HOSTNAME” (Schritt 3) sein.
Diesen Eintrag könnt ihr euch hier anschauen:
nano /opt/containers/mailcow/.env
6.2 DNS Einstellungen
Diese Einstellungen hole ich auch aus der offiziellen Mailcow Anleitung.
Dazu geht ihr bei netcup ins CCP und wählt dort den Reiter “Domains” aus.
Nun wählt ihre eure Domain aus und klickt auf DNS.
Hier habe ich jetzt folgende Einträge hinzugefügt. Wahrscheinlich stehen schon einige Einträge wie “www” drin.
# Name Typ Wert mail A eure IP autodiscover CNAME mail.euredomain.de autoconfig CNAME mail.euredomain.de pop3 CNAME mail.euredomain.de imap CNAME mail.euredomain.de smtp CNAME mail.euredomain.de @ MX 0 mail.euredomain.de # SPF Konfiguration @ TXT v=spf1 mx a -all # DMARC Konfiguration _dmarc TXT v=DMARC1; p=reject; rua=mailto:eureE-Mail@domain.de #MTA-STS mta-sts CNAME mail.euredomain.de _mta-sts TXT v=STSv1; id=20220231031800Z _smtp._tls TXT v=TLSRPTv1; rua=mailto:eureE-Mail@domain.de # Dienste _autodiscover._tcp SRV 0 1 443 mail.euredomain.de. _caldavs._tcp SRV 0 1 443 mail.euredomain.de. _caldavs._tcp TXT path=/SOGo/dav/ _carddavs._tcp SRV 0 1 443 mail.euredomain.de. _carddavs._tcp TXT path=/SOGo/dav/ _imap._tcp SRV 0 1 143 mail.euredomain.de. _imaps._tcp SRV 0 1 993 mail.euredomain.de. _pop3._tcp SRV 0 1 110 mail.euredomain.de. _pop3s._tcp SRV 0 1 995 mail.euredomain.de. _sieve._tcp SRV 0 1 4190 mail.euredomain.de. _smtps._tcp SRV 0 1 465 mail.euredomain.de. _submission._tcp SRV 0 1 587 mail.euredomain.de.
Der Eintrag _mta-sts beinhaltet lediglich die STS-Version (v=STSv1) und eine ID für die Richtlinie, die als Zeitstempel dient (id=20181230231800Z). Der Zeitstempel kann so behalten oder an den aktuellen Tag angepasst werden.
Später in der Anleitung (Schritt 12) werden wir hier noch zwei Werte hinzufügen. Daher könnt ihr dieses Browserfenster offen lassen.
7. Firewall Einstellungen
Damit euer E-Mail Server später von extern zu erreichen ist, müsst ihr folgende Ports öffnen. Zuerst schauen wir uns an, ob die Ports durch Mailcow genutzt werden:
ss -tlpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'
Ausgabe:
LISTEN 0 4096 0.0.0.0:443 0.0.0.0:* users:(("docker-proxy",pid=134819,fd=7)) LISTEN 0 4096 0.0.0.0:465 0.0.0.0:* users:(("docker-proxy",pid=143334,fd=7)) LISTEN 0 4096 0.0.0.0:143 0.0.0.0:* users:(("docker-proxy",pid=143851,fd=7)) LISTEN 0 4096 0.0.0.0:25 0.0.0.0:* users:(("docker-proxy",pid=143327,fd=7)) LISTEN 0 4096 0.0.0.0:4190 0.0.0.0:* users:(("docker-proxy",pid=143872,fd=7)) LISTEN 0 4096 0.0.0.0:80 0.0.0.0:* users:(("docker-proxy",pid=134812,fd=7)) LISTEN 0 4096 0.0.0.0:110 0.0.0.0:* users:(("docker-proxy",pid=143844,fd=7)) LISTEN 0 4096 0.0.0.0:995 0.0.0.0:* users:(("docker-proxy",pid=143865,fd=7)) LISTEN 0 4096 0.0.0.0:993 0.0.0.0:* users:(("docker-proxy",pid=143858,fd=7)) LISTEN 0 4096 0.0.0.0:587 0.0.0.0:* users:(("docker-proxy",pid=143341,fd=7))
Hier eine Auflistung, welche Funktionen die einzelnen Ports haben:
Service Protocol Port Postfix SMTP TCP 25 Postfix SMTPS TCP 465 Postfix Submission TCP 587 Dovecot IMAP TCP 143 Dovecot IMAPS TCP 993 Dovecot POP3 TCP 110 Dovecot POP3S TCP 995 Dovecot ManageSieve TCP 4190 HTTP(S) TCP 80/443
Genauere Infos findet ihr direkt hier bei Mailcow.
Wir werden die Ports hier bei der ufw Firewall freigeben. Diese könnt ihr schnell mittels dieser Anleitung installieren. Nun die Freigaben:
ufw allow 25/tcp ufw allow 465/tcp ufw allow 587/tcp ufw allow 143/tcp ufw allow 993/tcp ufw allow 110/tcp ufw allow 995/tcp ufw allow 4190/tcp ufw allow 80/tcp ufw allow 443/tcp
Mit folgenden Befehl bekommt ihr eine Übersicht der ufw Regeln angezeigt. Dort solltet ihr nun diese Ports finden:
ufw status
Ausgabe
Status: active To Action From -- ------ ---- 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 25/tcp ALLOW Anywhere 465/tcp ALLOW Anywhere 587/tcp ALLOW Anywhere 143/tcp ALLOW Anywhere 993/tcp ALLOW Anywhere 110/tcp ALLOW Anywhere 995/tcp ALLOW Anywhere 4190/tcp ALLOW Anywhere 2214/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) 25/tcp (v6) ALLOW Anywhere (v6) 465/tcp (v6) ALLOW Anywhere (v6) 587/tcp (v6) ALLOW Anywhere (v6) 143/tcp (v6) ALLOW Anywhere (v6) 993/tcp (v6) ALLOW Anywhere (v6) 110/tcp (v6) ALLOW Anywhere (v6) 995/tcp (v6) ALLOW Anywhere (v6) 4190/tcp (v6) ALLOW Anywhere (v6)
8. Zertifikate überprüfen
Nun könnt ihr per Konsole überprüfen, ob die Zertifikate richtig geladen wurden. Dies ist wichtig, da ihr euch sonst später nicht mit Clients zu Mailcow verbinden könnt. Gebt dazu folgende Befehle ein:
# Connect via SMTP (587) echo "Q" | openssl s_client -starttls smtp -crlf -connect mx.euredomain.de:587 # Connect via IMAP (143) echo "Q" | openssl s_client -starttls imap -showcerts -connect mx.euredomain.de:143 Ausgabe verkürzt: CONNECTED(00000003) depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 verify return:1 depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 verify return:1 depth=0 CN = euredomain.de verify return:1 --- Certificate chain 0 s:CN = euredomain.de i:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 1 s:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 i:O = Digital Signature Trust Co., CN = DST Root CA X3
Bei den obigen Befehlen muss immer bei Domain das “mx” stehen bleiben!
Wenn ihr folgende Ausgabe sehen solltet, dann habt ihr kein offizielles Zertifikat und könnt euch später nicht mit eurem Server verbinden:
CONNECTED(00000003) depth=0 C = DE, ST = NRW, L = Willich, O = mailcow, OU = mailcow, CN = mail.euredomain.de verify error:num=18:self-signed certificate verify return:1 depth=0 C = DE, ST = NRW, L = Willich, O = mailcow, OU = mailcow, CN = mail.euredomain.de verify return:1
In diesem Fall solltet ihr bei Traefik gehen und schauen, ob Zertifikate erstellt wurden. Dies könnt ihr auch kontrollieren, indem ihr auf mail.euredomain.de geht. Im nächsten Schritt schaut ihr, ob die Übergabe der Zertifikate zwischen Traefik und Mailcow funktioniert. Dazu macht ihr folgendes:
cd /opt/containers/mailcow/ docker compose logs certdumper
Hier sollte nun folgendes stehen:
docker compose logs certdumper certdumper-1 | [2025-04-15T18:25:08+0000]: Got value of --restart-containers: mailcowdockerized-postfix-mailcow-1,mailcowdockerized-dovecot-mailcow-1. Splitting values. certdumper-1 | [2025-04-15T18:25:08+0000]: Values split! Got 'mailcowdockerized-postfix-mailcow-1 mailcowdockerized-dovecot-mailcow-1' certdumper-1 | [2025-04-15T18:25:08+0000]: --restart-services is empty. Won't attempt to restart services. certdumper-1 | [2025-04-15T18:25:08+0000]: Got value of DOMAIN: mail.euredomain.de. Splitting values. certdumper-1 | [2025-04-15T18:25:08+0000]: Values split! Got 'mail.euredomain.de' certdumper-1 | [2025-04-15T18:25:08+0000]: ACME file path: /traefik/acme_letsencrypt.json certdumper-1 | [2025-04-15T18:25:08+0000]: Clearing dumping directory certdumper-1 | [2025-04-15T18:25:08+0000]: Dumping certificates certdumper-1 | ╭─────────────────────────────────────────────────────────────────────────╮ certdumper-1 | │ │ certdumper-1 | │ Request for Donation. │ certdumper-1 | │ │ certdumper-1 | │ I need your help! │ certdumper-1 | │ Donations fund the maintenance and development of traefik-certs-dumper. │ certdumper-1 | │ Click on this link to donate: https://donate.ldez.dev │ certdumper-1 | │ │ certdumper-1 | ╰─────────────────────────────────────────────────────────────────────────╯ certdumper-1 | [2025-04-15T18:25:08+0000]: Certificates for domain 'mail.euredomain.de' don't exist. Omitting... certdumper-1 | [2025-04-15T18:25:49+0000]: Clearing dumping directory certdumper-1 | [2025-04-15T18:25:49+0000]: Dumping certificates certdumper-1 | [2025-04-15T18:25:49+0000]: Certificates for domain 'mail.euredomain.de' don't exist. Omitting... certdumper-1 | [2025-04-15T18:25:54+0000]: Clearing dumping directory certdumper-1 | [2025-04-15T18:25:54+0000]: Dumping certificates certdumper-1 | [2025-04-15T18:25:54+0000]: Certificate or key for 'mail.euredomain.de' differ, updating certdumper-1 | [2025-04-15T18:25:54+0000]: Trying to restart containers certdumper-1 | [2025-04-15T18:25:54+0000]: Looking up container with name mailcowdockerized-postfix-mailcow-1 certdumper-1 | [2025-04-15T18:25:54+0000]: Found 'aa4bc235be3edf1e14ba94357a428563cda7fbce5c2a09d94a2c304c6b0aa01b'. Restarting now... certdumper-1 | aa4bc235be3edf1e14ba94357a428563cda7fbce5c2a09d94a2c304c6b0aa01b certdumper-1 | [2025-04-15T18:25:56+0000]: Restarting container 'aa4bc235be3edf1e14ba94357a428563cda7fbce5c2a09d94a2c304c6b0aa01b' was successful certdumper-1 | [2025-04-15T18:25:56+0000]: Looking up container with name mailcowdockerized-dovecot-mailcow-1 certdumper-1 | [2025-04-15T18:25:56+0000]: Found '95e968d054694d80d59bfa9d84033c6ae4e18d60e1a6c53468d6d5bdfff1275a'. Restarting now... certdumper-1 | 95e968d054694d80d59bfa9d84033c6ae4e18d60e1a6c53468d6d5bdfff1275a certdumper-1 | [2025-04-15T18:25:59+0000]: Restarting container '95e968d054694d80d59bfa9d84033c6ae4e18d60e1a6c53468d6d5bdfff1275a' was successful certdumper-1 | [2025-04-15T18:25:59+0000]: Container restarting process done.
9. Mailcow konfigurieren
Nach dem Start solltet ihr auf folgende Webseite gehen: mail.euredomain.de/admin
Nun solltet ihr folgendes sehen:
Die Benutzerdaten sind:
- Benutzername: admin
- Passwort: moohoo
10. Administratorkennwort ändern
Dazu geht ihr auf “System –> Konfiguration”.
Hier könnt ihr nun mittels “Bearbeiten” euer Kennwort eingeben.
Hier gebt ihr dann euer neues Kennwort ein.
11. Eure Domain hinzufügen
Dazu klickt ihr auf “E-Mail” -> “Konfiguration”.
Hier klickt ihr auf “Domain hinzufügen”.
Hier gebt ihr nun eure Domain ein. Beispielsweise: euredomain.de
Gebt dort aber NICHT “mail.euredomain.de” ein!
Anschließend bestätigt ihr mit “Domain hinzufügen und SoGo neustarten”.
Nun sollte eure Domain angezeigt werden.
12. DKIM Schlüssel erzeugen
Uns fehlt nun noch der DKIM Eintrag auf unserem DNS Server. Dazu loggen wir uns mit unserem Administrator Account bei mailcow ein.
Nun klickt ihr auf “System –> Konfiguration”.
Hier klickt ihr “Einstellungen –> ARC/DKIM-Keys”
Nun solltet ihr direkt euren DKIM Key sehen:
Diesen gebt ihr nun in eurem DNS Server ein.
#Name Typ Wert dkim._domainkey TXT v=DKIM1;k=rsa;t.....
13. DNS Einstellungen testen
Bitte bedenkt, dass eure obigen Einstellungen einige Stunden (bis zu 48 Stunden!) dauern können, bis diese übernommen worden sind.
13.1 DNS Einstellungen testen mit mailcow
Mailcow bietet nun auch die Möglichkeit eure DNS Einstellungen zu testen. Dazu loggt ihr euch mit eurem Admin Account ein.
Anschließend klickt ihr auf “E-Mail” -> “Konfiguration”.
Hier seht ihr dann eure Domains. Nun klickt ihr auf DNS und solltet dann alle DNS Einstellungen sehen.
13.2 Testen mit mail-tester.com
Auf dieser Homepage bekommt ihr eine E-Mail Adresse angezeigt. Hier schickt ihr eine E-Mail hin und müsst einen Betreff / paar Zeilen Inhalt hinzufügen. Dies könnt ihr aber erst tun, wenn ihr weiter mit dieser Anleitung seid und schon Nutzer angelegt habt.
Mein Score
13.3 Testen mit verifier.port25.com
Dies ist ein weiterer Webdienst, welcher euren E-Mail Server testet. Dieser Dienst zeigt euch sehr viele technische Details an. Um den Dienst nutzen zu können, schickt ihr einfach von eurer neuen E-Mail Adresse eine leere E-Mail an :
check-auth@verifier.port25.com
13.4 Testen mit mxtoolbox.com
Die Webseite https://mxtoolbox.com liefert sehr viele Tests für euren Mail-Server. Diese könnt ihr einfach mal ausprobieren.
13.4 MTA-STS testen
Dazu gehst du auf folgende Webseite: https://www.checktls.com/TestReceiver
Hier gebt ihr nun eure Domain an und wählt dann noch den MTA-STS Test aus. Wichtig ist, dass es einige STUNDEN dauern kann, bis die DNS Einstellungen übernommen wurden von allen Servern.
Wenn alles geklappt hat, dann solltet ihr folgendes sehen:
14. E-Mail Benutzer anlegen
Nun legen wir einen ersten E-Mail Benutzer an. Dazu klickt ihr auf “Mailboxen” und dann “Mailbox hinzufügen”.
Nun könnt ihr einen Benutzer anlegen. Hier zum Beispiel “test”.
In der Übersicht sollten nun alle eure Benutzer zu sehen sein.
15. Webmail starten
Unter “Apps” -> “Webmail” könnt ihr euch nun euer Postfach anschauen.
Ihr solltet nun auf die Webseite ” https://mail.euredomain.de/SOGo” weitergeleitet werden. Hier meldet ihr euch nun an.
Danach könnt ihr direkt E-Mails schreiben, Kontakte pflegen sowie Kalender anlegen.
16. Mailcow zusätzlich mittels CrowdSec absichern
Bei CrowdSec handelt es sich um eine open source Software, welche euch zusätzlichen Schutz bringt. Wie ihr CrowdSec zusammen mit Mailcow einrichten könnt, erfahrt ihr hier.
17. Quellen
https://github.com/mailcow/mailcow-dockerized
https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/
https://mailcow.github.io/mailcow-dockerized-docs/firststeps-rp/
https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#how-to-use-your-own-certificate
https://hub.docker.com/r/jovobe/mailcow-traefik-acme-adapter
Hallo,
ich bekomme Mailcow auch nicht mehr zum Fliegen – könnte die folgende Meldung damit etwas zu tun haben?:
“certdumper-1 /traefik/tls_letsencrypt.json is not a file. Retrying…”
Grüße
Hallo,
habe hier eine Verständnisfrage:
durch die bereit bestehenden Einträge in ‘/etc/docker/daemon.json’ seitens der ‘Traefik V3 Installation’ bekomme ich nun bezüglich IPv6 folgende Warnmeldung bei der Mailcow-Installation:
Warning: You seem to have modified the /etc/docker/daemon.json configuration by yourself and not fully/correctly activated the native IPv6 NAT implementation.
You will need to merge your existing configuration manually or fix/delete the existing daemon.json configuration before trying the update process again.
Please merge the following content and restart the Docker daemon:
{“ipv6″:true,”fixed-cidr-v6″:”fd00:dead:beef:c0::/80″,”experimental”:true,”ip6tables”:true}
Ist dies zu ignorieren, weil es gibt ja bereits eine ‘fixed-cidr-v6″: “fd00:1:be:a:7000::/80’ für Traefik V3.
Hallo,
eine Frage, bei der hier sicher der oder die ein oder andere eine Lösung kennt bzw. mir einen Tipp geben kann. Wenn ich Mails an T-Online-Adressen von meinem Server sende, bekomme ich immer eine Meldund Delayed Mail. Den Hinweisen in der E-Mail nachgehend bekomme ich von T-Online den Hinweis, bzw. mehr oder weniger die Aufforderung, ein SMTP-Relay zu benutzen. Meine Mailcow läuft auf einem VPS. Gibt es hier eurerseits Ideen oder Hinweise, das umzusetzen oder wie ich hier reagieren kann?
Danke wie immer!!
Frank
Kann man einfach so updaten auf die neue Mailcow Version ?
Hallo,
seit der Version 2025-03a ist der admin-Login über /admin zu erreichen..
Hallo zusammen
ich möchte euch in Kürze aufzeigen, welche Möglichkeiten zur Fehlersuche es gibt – insbesondere da hier sehr Kommentatoren Probleme mit den Zertifikaten gemeldet haben.
Kurz zu meinem Setup. Ich habe schon einen Mailserver betrieben, den ich aus Altersgründen einmotten und durch eine modernere Lösung ersetzen wollte. Zudem betreiben ich bei meinem Hoster verschiedene Maschinen für die unterschiedlichen Anwendungen.
Damit kommen wir schon zu den Schritten für eine Fehlersuche:
Ihr betreibt einen Mailserver und wollt den ersetzen:
Fehler für den ACME Client in traefik werden in der traefik.log Datei gespeichert. Diese findet ihr unter ‘/var/log/traefik/traefik.log’. Die Meldung sind JSON formatiert.Ihr könnt zur besseren Lesbarkeit die Zeile mit dem Fehler kopieren und in einer weiteren shell mit diesem Kommando durch jq schicken (wenn das nicht installiert ist, auf eurem Linux das Paket jq installieren): “echo ‘<den kopierten Fehler pasten>’ | jq ‘.'”. Damit wird die Zeile in besser lesbares JSON ausgegeben.
Ihr vermutlich schon ein Zertifikat bei Let’s Encrypt. Auf dem Host, auf dem das Zertifikat erstellt wurde mittels ‘certbot certificates’ die bei Let’s Encrypt bekannten Zertifikate anzeigen lassen und mit ‘certbot delete’ das Zertifkat löschen, dass die Domäne(n) für den Mailserver enthält.
Ihr habt auch einen DNS Server für eure Domäne. Dort sind sehr wahrscheinlich die verschiedenen Subdomänen für euren bisherigen Mailserver existent. Das bedeutet, wenn ihr den Inhalt für die ‘docker-compose-override.yml’ aus der Anleitung übernehmt, kontrolliert in den Zeilen mit den Host Einträgen, ob dort der Subddomain Prefix desselbe wie in eurer DNS Config ist.
Wenn ihr das ‘sed’ Kommando ausführt, achtet darauf, dass ihr zuerst die Domäne mit dem Underscore / Unterstrich im Text ersetzt, da dass ‘sed’ Kommando für die Ersetzung der Domäne mit dem Punkt, den Punkt nicht maskiert. Das führt dazu, dass wenn dieses Kommando zuerst ausgeführt wird, der erste Treffer aus ‘domäne” fällt und damit aus domäne_ch-secure das hier wird: domäne.tld_tld-secure. Also erst die Domäne mit Unterstrich ausführen, oder den Punkt im ‘sed’ Kommando mit einem \ (Backshlash) maskieren.
Damit solltet ihr die allermeisten der Fehler finden, sofern ihr der Anleitung sorgfältig gefolgt seid.
Hi, bei mir misslingt die Installation leider bereits beim ersten Start:
Habt ihr nen Tipp, woran das liegen könnte?
Ich bin der Anleitung gefolgt und hab Traefik v3 und Crowdsec laufen.
Hi Zusammen,
habt ihr für eure weiteren Domains, die ihr in Mailcow einrichtet auch einen mts-sts gesetzt?
Hi Leute,
wie muss man die Kuh updaten, mit der mitgelieferten .sh?
Habe ein wenig angst mir das teil zu killen 😀
Zuerst möchte ich mich herzlich bedanken. Ich habe mit Eurer Anleitung sehr viel Zeit gespart.
Auf einem neuen VPS mit aktuellem Debian habe ich mit Hilfe Eurer Anleitung Traefik v3 und Crowdsec sowie Mailcow am Laufen. Mittlerweile mit mehreren Domains und einer Reihe Postfächern. Soweit ist alles Bestens.
Im Hostsystem läuft ein exim4 der auch an externe Konten Mail verschicken kann. Auf die Art sende ich bis jetzt Systemmails an meine web.de Adresse. Eigentlich sollen diese Mails aber auch in einem Postfach in der Mailcow landen. Das klappt aber noch nicht. Wie habt Ihr diese Aufgabe gelöst?
Da der Versand an extern und auch an eine zweite in der Mailcow konfigurierte Domain klappt und nur die “Hauptdomain” zickt, denke ich es liegt entweder an “dc_other_hostnames” in meiner update-exim4.conf.conf (da steht derzeit ‘meinehauptdomain.de’ oder auch an /etc/mailname (da steht mail.meinehauptdomain.de). Muss ich da jeweils was ändern? Zum Beispiel lokal.meinehauptdomain.de bzw. andererrechnername.meinehauptdomain.de?
MIttlerweile arbeitet Mailcow mit variablen
https://goneuland.de/mailcow-e-mail-komplettsytem-mit-antivirus-spam-filer-webmail-webfrontend-installieren-mittels-docker-und-traefik/?ihc_success_login=true#51_Moeglicher_Fehler_Pool_overlaps_with_other_one_on_this_address_space
daher wäre es möglich die IP addressen einfah über die Variable
IPV4_NETWORK
in der .env anzupassen
Standard ist 172.22.1}.0/24
man kann es auch einfach dann via IPV4_NETWORK auf 10.1.0
setzen dann wäre es das netz 10.1.0.0/24 alle Container IPs bleiben gleich
so würde beispielsweise
sogo-mailcow -> Standard ipv4_address: ${IPV4_NETWORK:-172.22.1}.248
dann über die variable die 10.1.0.248 bekommen
usw. (: heißt man muss nur die Variable anpassen und nicht alle IP’s
Hallo, ich denke ich habe alles soweit in Gang gebracht. Jetzt würde mich ingteressieren was die Schritte in Sachen traefik, mailcow, DNS, mts-sts usw. sind um eine bzw. mehrere E-Mail Domains sauber hinzuzufügen. Besten Dank für Eure Hilfe!
Hallo,
ich habe zweimal versucht, das Update für Traefik durchzuspielen. Das gelingt, alle anderen Stacks kommen zurück – Mailcow nicht.
Die docker-compose.override.yml hat keinen Fehler, das Fettnäpfchen euredomain_de und euredomain.de bin ich umgangen.
was mir auffällt, ist folgendes:
nginx-mailcow-1 | 2024/12/05 01:43:22 [emerg] 14#14: host not found in upstream “rspamd” in /etc/nginx/conf.d/includes/site-defaults.conf:111
nginx-mailcow-1 | nginx: configuration file /etc/nginx/nginx.conf test failed
Außerdem wirft der Certdumper genau denselben Fehler aus, wie ihn andere hier beschreiben:
[2024-12-05T01:42:59+0000]: Got value of –restart-containers: mailcowdockerized-postfix-mailcow-1,mailcowdockerized-dovecot-mailcow-1. Splitting values.
[2024-12-05T01:42:59+0000]: Values split! Got ‘mailcowdockerized-postfix-mailcow-1 mailcowdockerized-dovecot-mailcow-1’
[2024-12-05T01:42:59+0000]: –restart-services is empty. Won’t attempt to restart services.
[2024-12-05T01:42:59+0000]: Got value of DOMAIN: mail.yeehaw.de. Splitting values.
[2024-12-05T01:42:59+0000]: Values split! Got ‘mail.yeehaw.de’
[2024-12-05T01:42:59+0000]: ACME file path: /traefik/tls_letsencrypt.json
[2024-12-05T01:42:59+0000]: Clearing dumping directory
[2024-12-05T01:42:59+0000]: Dumping certificates
[2024-12-05T01:42:59+0000]: Certificates for domain ‘mail.yeehaw.de’ don’t exist. Omitting…
Zu guter letzt die override.yml selbst:
networks:
proxy:
name: proxy
external: true
services:
certdumper:
image: ghcr.io/kereis/traefik-certs-dumper:latest
restart: unless-stopped
network_mode: none
command: –restart-containers mailcowdockerized-postfix-mailcow-1,mailcowdockerized-dovecot-mailcow-1
volumes:
– /opt/containers/traefik-crowdsec-stack/data/traefik/certs:/traefik:ro
– /var/run/docker.sock:/var/run/docker.sock:ro
– ./data/assets/ssl:/output:rw
environment:
DOMAIN: ${MAILCOW_HOSTNAME}
ACME_FILE_PATH: “/traefik/tls_letsencrypt.json”
healthcheck:
test: [“CMD”, “/usr/bin/healthcheck”]
interval: 30s
timeout: 10s
retries: 5
nginx-mailcow:
networks:
proxy:
labels:
traefik.docker.network: proxy
traefik.enable: “true”
traefik.http.services.nginx-mailcow.loadbalancer.server.port: “80”
traefik.http.routers.nginx-mailcow-yeehaw_de-secure.entrypoints: websecure
traefik.http.routers.nginx-mailcow-yeehaw_de-secure.rule: “Host(
mail.yeehaw.de
) || Host(autodiscover.yeehaw.de
) || Host(autoconfig.yeehaw.de
) || Host(mta-sts.yeehaw.de
) || Host(imap.yeehaw.de
) || Host(pop3.yeehaw.de
) || Host(smtp.yeehaw.de
)”traefik.http.routers.nginx-mailcow-yeehaw_de-secure.service: nginx-mailcow
traefik.http.routers.nginx-mailcow-yeehaw_de-secure.tls: “true”
traefik.http.routers.nginx-mailcow-yeehaw_de-secure.tls.certresolver: tls_resolver
traefik.http.routers.nginx-mailcow-yeehaw_de-unsecure.entrypoints: web
traefik.http.routers.nginx-mailcow-yeehaw_de-unsecure.rule: “Host(
mail.yeehaw.de
) || Host(autodiscover.yeehaw.de
) || Host(autoconfig.yeehaw.de
) || Host(mta-sts.yeehaw.de
) || Host(imap.yeehaw.de
) || Host(pop3.yeehaw.de
) || Host(smtp.yeehaw.de
)”Ich habe einmal die Migration versucht, sprich eine bestehende Konfiguration migrieren wollen, dass hat dasselbe Ergebnis wie eine komplette Neuinstallation der Mailcow-Instanz. Bei der Migration habe ich auch darauf geachtet, das Zertifikat aus der ACME-Datei zu löschen, wie in der Anleitung zu Traefik V3 beschrieben.
Ich stoße hier an meine Grenze, bin für jede Hilfe dankbar.
Habe gestern mein traefik auf die neue Anleitung upgedatet und bekomme Mailcow seitdem nicht mehr zum Laufen.
Habe die override Yml entsprechend angepasst und bereits x-mal neu gemacht, aber ich bekomme immer wieder den gleichen Fehler
Guten Abend,
ich habe nochmal eine Frage zu den Zertifikaten. Augenscheinlich funktioniert mein Mailserver. Was mir allerdings zu denken gibt, dass ich bei der Überprüfung der Zertifikate folgende Fehler bekomme..
echo “Q” | openssl s_client -starttls imap -showcerts -connect mx.XXX.de:143
808BBCB9EC7F0000:error:10080002:BIO routines:BIO_lookup_ex:system lib:../crypto/bio/bio_addr.c:738:Name or service not known
connect:errno=2
echo “Q” | openssl s_client -starttls smtp -crlf -connect mx.mail.XXX.de:587
80BBB9890D7F0000:error:10080002:BIO routines:BIO_lookup_ex:system lib:../crypto/bio/bio_addr.c:738:Name or service not known
connect:errno=2
Leider komme ich mit meinen Recherchen im Netz nicht weiter. Vielleicht hat hier noch jemand einen Tipp, wo ich mich weiter belesen kann?
Danke
Hallo Zusammen,
ich erhalte ebenfalls kein Zertifikat. Habe Traefik nach der neuen Anleitung installiert und die funktioniert einwandfrei. Bei neuer Installation von Mailcom gemäss Anleitung vom 6.Oktober habe ich folgende Fragen und Fehler (sorry, bin Anfänger)
Fehler gemäss logs:
Fri Oct 11 19:48:48 CEST 2024 – SKIP_LETS_ENCRYPT=y, skipping Let’s Encrypt…
Sat Oct 12 10:21:51 CEST 2024 – SKIP_LETS_ENCRYPT=y, skipping Let’s Encrypt…
mailcowdockerized-certdumper-1:
[2024-10-12T08:21:19+0000]: ACME file path: /traefik/tls_letsencrypt.json
[2024-10-12T08:21:19+0000]: Clearing dumping director
[2024-10-12T08:21:19+0000]: Dumping certificates
[2024-10-12T08:21:19+0000]: Certificates for domain ‘mail.regi.ch’ don’t exist. Omitting…
würde mich interessieren, wo was falsch ist. Ich habe zwar alles kontrolliert gemäss Anleitung, aber evtl. habe ich etwas übersehen.
Hallo
psycho0verload, vielen Dank für deine neue Traefik-Anleitung.
Backup vom Server gemacht und deine Anleitung ausprobiert. Läuft einwandfrei.
Nun zu Mailcow, auch diese Anleitung mehrfach durchgearbeitet. Meine Mailcow bekommt einfach kein Zertifikat. In Traefik ist nichts zu finden. Hier schein noch ein Fehler drin zu sein.
Muss nun erst einmal wieder zurück auf die alte Version. Könntest du hier noch einmal prüfen? Vielen Dank im Voraus.
Ich hätte mich eben an der Optimierung der Config wie in Schritt 4.2 (Anpassung für neuere Traffic-Config) versucht, jedoch erhalte ich danach nur noch einen “404: Page not found.”
Verwende ich die “alte” docker-compose.override.yml, funktioniert es wieder.
Einen Fehler sehe ich auf den ersten Moment nicht.
Klappt diese Optimierung bei euch? Dann habe ich irgendwo einen Wurm drin…
Hi, ich habe heute festgestellt das traefik kein neues Zertifikat für mailcow erstellt hat. Hat jemand ne Ahnung woran das liegt und wie ich es fixen kann?
Hallo, ich will den Mailcow-Server im Heim-Netz hinter einer FritzBox betreiben und erhalte aktuell vom certdumper folgende Meldung:
certdumper-1 | [2024-08-03T19:43:31+0000]: Got value of –restart-containers: mailcowdockerized-postfix-mailcow-1,mailcowdockerized-dovecot-mailcow-1. Splitting values.
certdumper-1 | [2024-08-03T19:43:31+0000]: Values split! Got ‘mailcowdockerized-postfix-mailcow-1 mailcowdockerized-dovecot-mailcow-1’
certdumper-1 | [2024-08-03T19:43:31+0000]: –restart-services is empty. Won’t attempt to restart services.
certdumper-1 | [2024-08-03T19:43:31+0000]: Got value of DOMAIN: mail.meinedomain.de. Splitting values.
certdumper-1 | [2024-08-03T19:43:31+0000]: Values split! Got ‘mail.meinedomain.de’
certdumper-1 | [2024-08-03T19:43:31+0000]: ACME file path: /traefik/acme_letsencrypt.json
certdumper-1 | [2024-08-03T19:43:31+0000]: Clearing dumping directory
certdumper-1 | [2024-08-03T19:43:31+0000]: Dumping certificates
certdumper-1 | [2024-08-03T19:43:31+0000]: Certificates for domain ‘mail.meinedomain.de’ don’t exist. Omitting…
Kann mir hier jemand helfen?
Hallo,
mal eine Frage an euch Fachleute! Ich bin mit meinem Mailcow-Server von einem dedizierten Server auf einen VPS umgezogen inklusive Backup und Wiederherstellung dessen. Die DNS-Einträge habe i m. E. alle umgestellt. Ich kann nun gerade aber trotzdem keine Mails empfangen. Habt ihr vielleicht noch ein Stichwort für mich, wo ich schauen könnte?
Danke und liebe Grüße,
Frank
Hallo,
ich bekomme leider folgenden Fehler, und kann leider nicht die stelle ändern, wo ich es wahrscheinlich falsch konfiguriert habe…
habt ihr evtl. eine idee?
Lieben Dank!
Hallo,
Mich würde interessieren, wie man es in Traefik 2/3 so lösen könnte, dass jede zusätzliche Domain ein eigenes Zertifikat erhält und nicht das eigentliche Mailserver-Zertifikat eben mit den zusätzlichen Domains und deren Sub-Domains zugemüllt wird.
Ziel soll sein, nicht offenzulegen, welche zusätzliche Domains noch an dem Mailserver hängen.
Danke schonmal im Vorraus…
Hey @all, habe heute auf TRAEFIK 3.0.0 upgegraded und direkt Fehler bekommen das die Config für Mailcow nicht passt , sollte hier jemand über den selben Fehler stolpern:
error while adding rule Host: unexpected number of parameters; got 7, expected one of [1]
nano /opt/containers/mailcow/docker-compose.override.yml :
traefik.http.routers.nginx-mailcow-secure.rule: “Host(
mail.euredomain.de
) || Host(autodiscover.euredomain.de
) || Host(autoconfig.euredomain.de
) || Host(mta-sts.euredomain.de
) || Host(imap.euredomain.de
) || Host(pop3.euredomain.de
) || Host(smtp.euredomain.de
)und
traefik.http.routers.nginx-mailcow.rule: “Host(
mail.euredomain.de
) || Host(autodiscover.euredomain.de
) || Host(autoconfig.euredomain.de
) || Host(mta-sts.euredomain.de
) || Host(imap.euredomain.de
) || Host(pop3.euredomain.de
) || Host(smtp.euredomain.de
)”Erweiterung:
sollte jemand ipwhitelist benutzen dann muss das in IPAllowList geändert werden.
IPWhiteListIn v3, we renamed the
IPWhiteList
middleware toIPAllowList
without changing anything to the configuration.Hallo,
ich könnte Hilfe gebrauchen – mit der Anleitung komme ich soweit, dass die Container alle starten, aber keine Verbindung zur Datenbank und auch die override.yml mit ihren vielen Host Einträgen versteht Traefik nicht. Da kommt nur ein 404 zustande, wenn ich mehr als einen Eintrag (mail.xyz.com) da drin habe. Please help. Vielleicht verstehe ich auch den Kommentar zu 4.2 “noch anzupassen” nicht richtig. Wie soll die override.yml genau aussehen? Und warum wird keine Verbindung zur Datenbak aufgebaut? Danke und Grüße
Hallo,
ich bekomme nach dem letzten Update immer diese Fehlermeldung.
Habe schon alle Mailcow Container mehrmals gelöscht, auch unter /var/lib/docker/volume/
Bekomme einfach keinen Loginbildschirm.
Jemand ´n Rat oder ist eine Lösung dafür bekannt?
VG Hardy
Hello,
I like the post. And I will try it. I actually have a mailcow server that is working well right now, and I want to secure it with CroudSec.
My question is, why did you configure mailcow behind traefik? Does this add secutiry Will this configuration work with more than one mailcow domain, as I have 10 of them?
Moin zusammen. Ich spiele seit vielen Jahren mit der Idee einen eigenen Mailserver aufzusetzen, habe es aufgrund der Komplexität immer gelassen. Nachdem ich mit den Tutorials hier so gute Erfahrungen gemacht habe, möchte ich mich jetzt auch hier herantrauen. Zur Zeit benutze ich einen Business-Email-Account bei United-Domains zu meiner Domain.
Ich habe vorab einige Verständnisfragen:
Mein Ausbilder hat mal gesagt: Es gibt keine schlauen Fragen, es gibt nur schlaue Antworten. Ich hoffe, dass wird hier nicht so gesehen und ihr könnt mir weiterhelfen.
Vielen Dank schon mal im Voraus 😀
Moin, soweit so gut. Es ist alles installiert. Leider kann ich weder empfangen, noch senden. aktuell weiß ich nicht, wo ich nach schauen soll.
Die Ueberprüfung der Domain “mx.meinedomain.de” liefert einen Fehler. Anschließend habe ich die Fehlerkorrektur der Zertifikate durchgeführt. Leider ohne Erfolg. Der Certdumper zeigt folgendes,
Jemand eine Idee?
Moin, ich ziehe gerade meinen Server um und wollte Mailcow neu installieren, nun bleibe ich bei diesem Fehler hängen? Idee?
Danke für die tolle Anleitung.
Beim Start des Stacks scheint mir der Diskspace auszugehen.
Ich habe einen netcup vServer und angeblich sind erst 10Gb von 160Gb belegt.
Eigentlich sollte overlay ja noch 1,1Gb frei haben.
Jemand schonmal das Problem gelöst?
Danke für die Anleitung. Ich habe damit erfolgreich Mailcow auf mail.[domain].de installiert, und kann Mails an @[domain].de-Adressen empfangen. Ich besitze aber auch denselben Domainnamen mit zwei weiteren Endungen ([domain].com und [domain].info). über Domain hinzufügen im Adminbereich von Mailcow konnte ich diese auch hinzufügen, und nachdem ich entsprechende DNS-Records angelegt habe, kann ich auch für diese Domains Postfächer anlegen und Mails senden und empfangen.
Mein eigentliches Vorhaben war, das jedes Postfach über jede Domain Mails empfangen können soll. D.h. Mails an user “User1” sollen an dessen Postfach zugestellt werden, egal ob sie an user1@domain.de, user1@domain.com oder user1@domain.info adressiert sind.
Aktuell habe ich es so gelöst, dass ich das Postfach auf der .de-Domain anlege, und dann zwei Aliasse anlege, einen für .com und einen für .info. Dies aber händisch für jeden neuen User zu tun, scheint viel Arbeit zu sein. Gibt es einen Weg, dies besser zu lösen?
Hallo, ich bekomme diesen Fehler einfach nicht weg, wenn ich mailcow updaten/starten möchte:
“failed to create network mailcowdockerized_mailcow-network: Error response from daemon: Pool overlaps with other one on this address space”
Habe alle anderen Container gestoppt – ohne Erfolg. Docker neu gestartet – ohne Erfolg.
Jemand n Tipp für dieses Problem?
Wenn ich die IP ändern möchte, welche IP muss ich wo genau ändern?
VG Hardy
Warum bin ich nur so blöd und vergeude einen halben Tag mit Images ohne ARM-Support?
docker compose up lief so gut los und nach 7400 Sekunden war der Download fertig und der Docker Container wurde fleißig befüllt. – Doch dann:
Und dann diese vernichtenden Zeilen vom Mailcow Entwickler:
“@magnetic6, please read #879 (comment) and some of my earlier comments there. Summary: There is currently no reason to get an ARM64 cloud server instead of an Intel cloud server. Presently there is no price or performance advantage (and you shouldn’t depend on Oracle’s free tier to run production services), but I am certain there will be within approximately two years. Only once that is the case, and once one of the Mailcow core developers actually runs Mailcow on an ARM64 server themselves, will it start making sense to support Mailcow there.”
OK. – Die Mailcow Welt ist leider noch nicht ready für stromsparende CPUs. 😐
hier in der Anleitung bei der Anpassung der docker-compose.override.yml heißt es:
sollte da die Zeile mit dem HostRegexp nicht eigentlich genügen?
nach meinem Verständnis sind darin die Zeilen zuvor und danach doch schon enthalten?
Weshalb also noch einmal extra aufführen bzw. wenn diese relevant sind, warum überhaupt nochmal der HostRegexp?
Kann ich die Anleitung für das Borg-Backup so wie in der Mailcow-Doku hier so anwenden?
https://docs.mailcow.email/de/third_party/borgmatic/third_party-borgmatic/#container-neustarten
Hallo, ich habe das Problem mit den Zugriffsrechten hinbekommen, siehe mein Eintrag weiter unten bekomme aber den Fehler:
Hallo zusammen, die Anleitung ist wirklich gut. Leider klemmt es bei mir aktuell beim Ausstellen der passenden Zertifikate.
Ich erhalte IMMER folgende Fehlermeldung vom certdumper:
War es nicht so, dass man bei der traefik-Installation von Psycho0verload in den traefik-labels Zeile 2 und 3 auskommentiert, da der redirect von http auf https bereits in der traefik.yml erfolgt (vgl. https://goneuland.de/traefik-v2-reverse-proxy-mit-crowdsec-einrichten/#8_Aeltere_Anleitungen_anpassen)?
Oder müssen die beim Aufsetzen von Mailcow doch genauso stehen bleiben?
Hallo,
ich versuche mich mal wieder an einem der tollen Tutorials. Nach einigem Hin und Her konnte ich mich nun zum ersten Mal bei Mailcow anmelden. Leider lande ich nur auf einer weißen Seite unter der URL meine.domain.de/debug. Was habe ich falsch gemacht?
Viele Grüße
Frank
hat sich erledigt.. funktioniert erstmal
Hallo Zusammen,
Ich habe das Problem, das Crowdsec mich kurz nach erfolgreicher Anmeldung an SoGo sperrt. Begründung LePresidente/http-generic-403-bf, Kennt jemand eine Lösung zu dem Problem?
Hey zusammen,
google konnte mir irgendwie nicht helfen.
Ich habe das Problem, dass Outlook 2019 über activesync nach kurzer Zeit die Verbindung zu Mailcow verliert.
Nach Neustart von Oulook oder drücken auf Senden/Empfangen ist die Verbindung für eine kurze Zeit wieder aktiv bis die Anzeige wieder anzeigt dass es keine Verbindung gibt.
Ich habe alles wie hier in der tollen Anleitung gemacht ich kann leider auch nicht sagen ob das Problem neu ist oder schon länger besteht.
Es ist mir nur in letzer Zeit sehr aufgefallen.
Vielleicht hat jemand einen Tipp an welcher stelle ich schauen muss.
Gruß Dirk
Hallo Christian,
wie ich sehe, nutzt du auch Portainer. Jetzt mal eine Frage an dich, wenn du die Container außerhalb von Portainer startest, kannst du sie innerhalb von Portainer gar nicht weiter “bearbeiten”. Die Stacks sind doch alle immer mit “Limited” blockiert. Wie arbeitest du dann mit Portainer?
LG Frank
Auch hier wieder danke, echt toll was du machst! Leider funktionierts bei mir leider nie auf Anhieb, was vermutlich an mir liegt und mich etwas verwirrt 😉
Also bei starten mit “docker compose -f /opt/containers/mailcow/docker-compose.yml up”
bekomme ich diese Meldung:
mit vorangestellten sudo :
auch klar 🤔😶
Gruß dstar
Hi. Super Anleitung. Funktioniert wirklich sehr gut auch für einen Neuling auf dem Gebiet Docker/Mailcow/Traefik. Aktuell bin ich dabei eine weitere Domain in Mailcow zu erfassen. Dies geht auch ziemlich gut. Das eintzige was ich nicht schaffe ist Zertifikate für SMTP für die hinzugefügte Domain zu bekommen. Ich habe die neue Domain auch in die overide.yml aufgenommen und Mailcow Docker neu gestartet. Jedoch muss ich beim SMTP-Server (Thunderbird) immer die “Stammdomain” der ersten Mailcow-Installation angeben. Für die zweite Domain gibt es kein Zertifikat (gem. Thunderbird). Auch mail-tester-com (10/10) gibt an, dass die Stammdomain verwendet wird (Hostname). Ist es möglich, dass auch die zweite Domain voll unterstützt wird oder habe ich einfach etwas nicht verstanden….. Hängt dies allenfalls von der rDNS ab (die ist natürlich auf die Stammdomain). LG Donric
Hey bin neu hier und erstmal ein großen Dank. Ich habe alles soweit auch hinbekommen.
Leider scheitere ich daran, dass ich die Verbindung mit Imap über Nextcloud nicht hin bekomme und ich weiß nicht woran es liegen kann.
Thunderbird und Handy funktioniert soweit eigentlich.
Nur bei Nextcloud egal welche Einstellungen ich mache scheitere ich.
Auch wenn ich z.B. über die Telekom die Emails abrufen möchte wird es nichts mit einer Verbindung.
Auch Outlook habe ich Probleme hier habe ich auch was im Netz gefunden “alter Weg der Einrichtung”
Das ganze läuft auf einem VPS 500 G10s von NetCup mit Debian 11 Image. Die Domain ist über United Domains gehostet und DNS einträge sind gemacht.
Ich weiß es könnte mehr RAM sein aber das dürfe doch nicht das Problem sein soweit läuft alles stabil…
Vielleicht kann mit hier jemand weiterhelfen und wenn noch mehr Infos benötigt werden (was ich vermute) bitte einfach melden.
Danke schon mal im Voraus.
LG Dirk
Nachdem gestern ja 22.04.1 von Ubuntu rauskam die Frage: Hat schon jemand das Update von 20.04 gemacht und wie macht ihr das, damit alles geschmeidig läuft? Alle Container erst runter fahren, dann updaten oder on the fly?
WOW, wie “geil” ist das denn. Da geht man zur Arbeit und trifft sich dann noch mit Freunden im Biergarten und eine Lösung des Problems ist da. Funktioniert bei mir einwandfrei. Ach ja, falls es nicht klappt den Server rebooten hat bei mir geholfen. Vielen Dank für die Arbeit….!
Leider kein erfolgt. Alte Zertifikate gelöscht, ./upgrade gemacht und immer noch Warnung thunderbird….
Hi, ich hatte das so stehen: ACME_FILE_PATH: “/traefik/acme_letsencrypt.json” nun zu ACME_FILE_PATH: /traefik/acme_letsencrypt.json geändert. Im Firefox steht sichere Verbindung mit letscrypt. Thunderbird will immer das Zertifikat von willich mailcow laden. Gibt eine Zertifkatswarung. Gleiche Problem bei meinem neuen gekauften Server. Gleiche Fehlermeldung.