services:
  nginx-mailcow:
    networks:
      traefik:
    labels:
      - traefik.enable=true
      - traefik.http.routers.moo.rule=Host(`${MAILCOW_HOSTNAME}`)
      - traefik.http.routers.moo.tls=true
      - traefik.http.routers.moo.tls.certresolver=le
      - traefik.http.routers.moo.entrypoints=websecure
      - traefik.http.services.moo.loadbalancer.server.port=8080
      - traefik.docker.network=traefik

  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
        - server-certificates:/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: unless-stopped
      environment:
        # Ändern Sie dies nur, wenn Sie eine andere Domain für mailcows Web-Frontend verwenden als in der Standard-Konfiguration
        - DOMAIN=${MAILCOW_HOSTNAME}

  rspamd-mailcow:
    environment:
      - MASTER=${MASTER:-y}
    labels:
      ofelia.enabled: "true"
      ofelia.job-exec.rspamd_dmarc_reporting_yesterday.schedule: "@every 24h"
      ofelia.job-exec.rspamd_dmarc_reporting_yesterday.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/bin/rspamadm dmarc_report $(date --date yesterday '+%Y%m%d') > /var/lib/rspamd/dmarc_reports_last_log 2>&1 || exit 0\""
  ofelia-mailcow:
    depends_on:
      - rspamd-mailcow

networks:
  traefik:
    external: true

volumes:
  server-certificates:
    external: true
