# vi: ft=yaml
version: "3.7"
networks:
traefik:
external: true
services:
image: traefik:3.0
- traefik
ports:
- 443:443
- 80:80
- 8080:8080
deploy:
placement:
constraints: [node.labels.traefik == true]
labels:
- traefik.enable=true
- traefik.http.routers.dashboard.rule=Host(`maestro.dmz`)
- traefik.http.routers.dashboard.service=api@internal
- traefik.http.services.dummy-svc.loadbalancer.server.port=8080
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
command:
- --providers.docker
- --providers.docker.swarmmode
- --providers.docker.watch
- --api
- --api.insecure=true
- --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
- --providers.docker.exposedbydefault=false
- --certificatesresolvers.letsencrypt.acme=true
- --certificatesresolvers.letsencrypt.acme.email=pim@kunis.nl
- --certificatesresolvers.letsencrypt.acme.httpchallenge=true
- --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web