From 2f11025445147a3188687cb3611c00dedd0be7ff Mon Sep 17 00:00:00 2001 From: christian Date: Sun, 19 May 2024 16:13:45 +0200 Subject: [PATCH] mailcow --- mailcow/docker-compose.override.yml | 65 +++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 mailcow/docker-compose.override.yml diff --git a/mailcow/docker-compose.override.yml b/mailcow/docker-compose.override.yml new file mode 100644 index 0000000..1a846f7 --- /dev/null +++ b/mailcow/docker-compose.override.yml @@ -0,0 +1,65 @@ +version: '2.1' + +services: + nginx-mailcow: + networks: + web: + labels: +# - traefik.enable=true + # Erstellt einen Router namens "moo" für den Container und richtet eine Regel ein, um den Container mit einer bestimmten Regel zu verknüpfen, + # in diesem Fall eine Host-Regel mit unserer MAILCOW_HOSTNAME-Variable. +# - traefik.http.routers.moo.rule=Host(`${MAILCOW_HOSTNAME}`) + # Aktiviert tls über den zuvor erstellten Router. +# - traefik.http.routers.moo.tls=true + # Gibt an, welche Art von Cert-Resolver wir verwenden werden, in diesem Fall le (Lets Encrypt). +# - traefik.http.routers.moo.tls.certresolver=le + # Erzeugt einen Dienst namens "moo" für den Container und gibt an, welchen internen Port des Containers + # Traefik die eingehenden Daten weiterleiten soll. +# - traefik.http.services.moo.loadbalancer.server.port=${HTTP_PORT} + # Gibt an, welchen Eingangspunkt (externer Port) traefik für diesen Container abhören soll. + # Websecure ist Port 443, siehe die Datei traefik.toml wie oben. +# - traefik.http.routers.moo.entrypoints=websecure + # Stellen Sie sicher, dass traefik das Web-Netzwerk verwendet, nicht das mailcowdockerized_mailcow-network +# - traefik.docker.network=traefik_web +# CH neue Zeilen: das oben habe ich nicht kapiert, also mal das ausprobiert was bei gitea geklappt hat + - traefik.enable=true + - traefik.http.middlewares.moo-redirect-websecure.redirectscheme.scheme=https + - traefik.http.routers.moo-web.rule=Host(`${MAILCOW_HOSTNAME}`) + - traefik.http.routers.moo-web.entrypoints=web + - traefik.http.routers.moo-web.middlewares=moo-redirect-websecure + - traefik.http.routers.moo-websecure.entrypoints=websecure + - traefik.http.routers.moo-websecure.rule=Host(`${MAILCOW_HOSTNAME}`) + - traefik.tags= traefik-public + - traefik.docker.network=traefik-public + - traefik.http.routers.moo-websecure.tls=true + - traefik.http.routers.moo-websecure.tls.certresolver=myresolver + - traefik.http.services.moo-global.loadbalancer.server.port=${HTTP_PORT} + + certdumper: + image: ghcr.io/kereis/traefik-certs-dumper + command: --restart-containers ${COMPOSE_PROJECT_NAME}-postfix-mailcow-1,${COMPOSE_PROJECT_NAME}-nginx-mailcow-1,${COMPOSE_PROJECT_NAME}-dovecot-mailcow-1 + network_mode: none + volumes: + # Binden Sie das Volume, das Traefiks `acme.json' Datei enthält, ein + - acme:/traefik:ro + # SSL-Ordner von mailcow einhängen + - ./data/assets/ssl/:/output:rw + # Binden Sie den Docker Socket ein, damit traefik-certs-dumper die Container neu starten kann + - /var/run/docker.sock:/var/run/docker.sock:ro + restart: always + environment: + # Ändern Sie dies nur, wenn Sie eine andere Domain für mailcows Web-Frontend verwenden als in der Standard-Konfiguration + - DOMAIN=${MAILCOW_HOSTNAME} + +networks: + web: + external: true + # Name des externen Netzwerks + name: traefik-public + +volumes: + acme: + external: true + # Name des externen Docker Volumes, welches Traefiks `acme.json' Datei enthält + name: global_letsencrypt +