# vi: ft=yaml version: "3.7" networks: traefik: external: true configs: services: external: true name: "{{ services.config_name }}" services: traefik: image: traefik:3.0 networks: - traefik ports: - 443:443 - 80:80 - 444:444 deploy: placement: constraints: - node.role == manager labels: - traefik.enable=true - traefik.http.routers.dashboard.entrypoints=localsecure - traefik.http.routers.dashboard.rule=Host(`traefik.pim.kunis.nl`) - traefik.http.routers.dashboard.service=api@internal - traefik.http.services.dummy-svc.loadbalancer.server.port=8080 - traefik.http.routers.dashboard.tls=true - traefik.http.routers.dashboard.tls.certresolver=letsencrypt - traefik.docker.network=traefik - traefik.http.routers.esrom.entrypoints=websecure - traefik.http.routers.esrom.service=esrom@file - traefik.http.routers.esrom.rule=Host(`geokunis2.nl`) - traefik.http.routers.esrom.tls=true - traefik.http.routers.esrom.tls.certresolver=letsencrypt - traefik.http.routers.nextcloud.entrypoints=websecure - traefik.http.routers.nextcloud.service=nextcloud@file - traefik.http.routers.nextcloud.rule=Host(`cloud.pim.kunis.nl`) - traefik.http.routers.nextcloud.tls=true - traefik.http.routers.nextcloud.tls.certresolver=letsencrypt - traefik.http.routers.uptime.entrypoints=localsecure - traefik.http.routers.uptime.rule=Host(`uptime.pim.kunis.nl`) - traefik.http.routers.uptime.service=uptime@file - traefik.http.routers.uptime.tls=true - traefik.http.routers.uptime.tls.certresolver=letsencrypt - traefik.http.routers.ntfy.entrypoints=websecure - traefik.http.routers.ntfy.rule=Host(`ntfy.pim.kunis.nl`) - traefik.http.routers.ntfy.service=ntfy@file - traefik.http.routers.ntfy.tls=true - traefik.http.routers.ntfy.tls.certresolver=letsencrypt - traefik.http.routers.apprise.entrypoints=localsecure - traefik.http.routers.apprise.rule=Host(`apprise.pim.kunis.nl`) - traefik.http.routers.apprise.service=apprise@file - traefik.http.routers.apprise.tls=true - traefik.http.routers.apprise.tls.certresolver=letsencrypt volumes: - type: bind source: /var/run/docker.sock target: /var/run/docker.sock - type: bind source: /mnt/data/traefik/acme.json target: /acme.json configs: - source: services target: /etc/traefik/services.yml command: - --providers.docker - --providers.docker.swarmmode - --providers.docker.watch - --providers.docker.exposedbydefault=false - --providers.file.filename=/etc/traefik/services.yml - --api - --api.insecure=false - --api.dashboard=true - --entrypoints.web.address=:80 - --entrypoints.web.http.redirections.entrypoint=true - --entrypoints.web.http.redirections.entrypoint.to=websecure - --entrypoints.web.http.redirections.entrypoint.scheme=https - --entrypoints.web.http.redirections.entrypoint.permanent=true - --entrypoints.websecure.address=:443 - --entrypoints.localsecure.address=:444 - --certificatesresolvers.letsencrypt.acme=true - --certificatesresolvers.letsencrypt.acme.email=pim@kunis.nl - --certificatesresolvers.letsencrypt.acme.httpchallenge=true - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web - --serversTransport.insecureSkipVerify=true