Docker / Mailcow / Nginx-Proxy / letsencrypt

  • Hallo Zusammen,


    ich würde gerne meiner aktuellen Docker-Installation (Config beigefügt) eine Mailcow hinzufügen.

    Die Mailcow liegt im selben Haupt-Verzeichnis wie alle weiteren Volumens im Unterordner „mailcow-dockerized“.


    Aktuell weiß ich nicht wie sich der bereits bestehende MariaDB-Container mit einer weiteren DB nutzen lässt und ich das Ganze auch hinter den jwilder/nginx-proxy schalte.


    Die Datei init.sql sieht wie folgt aus:


    Ob ich diese richtig eingebunden habe, da bin ich mir nicht sicher...


    Für Tipps und Vorschläge zu den unklaren Punkten und Vorschläge für Verbesserungen wäre ich dankbar.


    Die oben gezeigte Konfiguration läuft, auch wenn ich die Datenbanken manuell im Container MariaDB anlegen musste.


    Viele Grüße

  • Du versuchst, mailcow in deine bestehende docker-compose.yml hinzuzufügen? Das dürfte schwierig werden, mailcow besteht selbst aus diversen Containern, die durch ein eigene Compose-Datei verwaltet werden. Diese mit deiner zu mergen wird sicher gehen, ist aber Bastelarbeit und mMn nicht zu empfehlen. Starte mailcow doch einfach unabhängig davon.


    Schwieriger dürfte es werden, den NGINX-Proxy Container mit mailcow zu nutzen, da wären einige spezielle Anpassungen an der NGINX-Config nötig, s. https://mailcow.github.io/mail…docs/firststeps-rp/#nginx

  • Was spricht dagegen nen zweiten Container für die Mailkuh laufen zu lassen? So sind beide Systeme von einander getrennt - was meiner Meinung nach gerade für Mails Sinn macht.


    Ich hab auf nem VPS 500 z.B. Mailcow, Bitwarden und Pritunel laufen, alles in Docker Containern hinter nem nginx reverse proxy. Zertifikate kommen zentral über acme.sh von nem. VPS 200, könntest aber sicher auch noch auf der Kiste selbst laufen lassen, habs nur zentral gelöst, da ich ehrlich gesagt keine Ahnung hab wieviel RS und VPS ich weltweit bei irgendwelchen Anbietern habe - haha.


    Viel anpassen musst bei der Mailkuh eigentlich nicht, nur den Port vom ngnix Container in der Mailcow config ändern, da port 80 und 443 ja vom ngnix reverse proxy genutzt werden (http und https_bind https_port). Wenn du zertifikate zentral machen willst, musst let's encrypt auch noch in der config deaktivieren. Je nach Performance kannst noch weitere Dinge in der Config deaktivieren.


    die ngninx config für den reverse proxy kannst relativ schlank halten. Die Doku von mailcow ist eigentlich ziemlich gut.


    https://mailcow.github.io/mail…rized-docs/firststeps-rp/


    SOGo auf ne eigene Subdomain umbiegen kannst du gleich vergessen, höchstens via rewrite auf Domain.com/SOGo, ... sonst ist SOGo zu weit im System verzweigt.


    Wenn du Hilfe bei der config brauchst sag Bescheid, dann poste ich mal meine. Hab ab nächster Woche auch wieder mehr Zeit, sind gerade erst wieder aus China zurück 😊

  • Hallo Zusammen,


    danke für die zahlreichen Tipps.


    Ich habe versucht der Anleitung https://forum.netcup.de/administration-eines-server-vserver/vserver-server-kvm-server/p121991-docker-mailcow-nginx-reverse-proxy-wordpress zu folgen und die docker-compose.yml wie folgt angepasst:



    Nur ruft „jrcs/letsencrypt-nginx-proxy-companion“ keine Zertifikate ab und „jwilder/nginx-proxy“ reagiert nicht auf die ergänzten Zeilen:

    Code
    1. - VIRTUAL_HOST=${MAILCOW_HOSTNAME}
    2. - VIRTUAL_PORT=8080
    3. - VIRTUAL_PROTO=http
    4. - LETSENCRYPT_HOST=${MAILCOW_HOSTNAME}
    5. - LETSENCRYPT_EMAIL=mail@example.com

    Diese Befehle funktionieren in den weiteren .yml problemlos.


    Das Netzwerk „nginxproxy“ ist „jrcs/letsencrypt-nginx-proxy-companion“ und „jwilder/nginx-proxy“ ebenfalls zugewiesen.


    Hat jemand eine Idee woran das liegen könnte?


    Vielen Dank im Voraus.


    Viele Grüße



  • Hast du auf die jeweiligen Ports geachtet, dass dort keine Doppelbelegung ist? Ich komme bei der Kiste wo das ganze Docker Zeugs läuft auch immer durcheinander, .. .hätte mir nen besseres System ausdenken sollen als 8080, 8443, 8880, .... :D

  • Den Port dürfte nicht doppelt belegt sein. Aber folgende Meldung erscheint beim Proxy:

    Code
    1. nginx-proxy-le | 2020/02/05 15:22:12 Received event start for container abc
    2. nginx-proxy_1 | dockergen.1 | 2020/02/05 15:22:12 Received event start for container abc
    3. nginx-proxy_1 | dockergen.1 | 2020/02/05 15:22:13 Error inspecting container: ea95116aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf7bc33aa8056755c676da57d: No such container: ea95116aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf7bc33aa8056755c676da57d
    4. nginx-proxy_1 | dockergen.1 | 2020/02/05 15:22:13 Generated '/etc/nginx/conf.d/default.conf' from 26 containers