treafik/mailcow/docker-compose.override.yml

99 lines
4.2 KiB
YAML

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}
borgmatic-mailcow:
image: ghcr.io/borgmatic-collective/borgmatic
hostname: mailcow
restart: always
dns: ${IPV4_NETWORK:-172.22.1}.254
volumes:
- vmail-vol-1:/mnt/storage/vmail:ro
- crypt-vol-1:/mnt/storage/crypt:ro
- redis-vol-1:/mnt/storage/redis:ro
- rspamd-vol-1:/mnt/storage/rspamd:ro
- postfix-vol-1:/mnt/storage/postfix:ro
- mysql-socket-vol-1:/var/run/mysqld/
- borg-config-vol-1:/root/.config/borg
- borg-cache-vol-1:/root/.cache/borg
- ./data/conf/borgmatic/etc:/etc/borgmatic.d:Z
- ./data/conf/borgmatic/ssh:/root/.ssh:Z
#fehlende Volumes
#vmail-index-vol-1:
#mysql-vol-1:
#solr-vol-1:
#sogo-web-vol-1:
#sogo-userdata-backup-vol-1:
#clamd-db-vol-1:
environment:
- TZ=${TZ}
- BORG_PASSPHRASE=dasIstMeinRichtigesBackup20240526
networks:
mailcow-network:
aliases:
- borgmatic
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