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