services: traefik: image: traefik:v3 container_name: traefik restart: unless-stopped command: - --api.dashboard=true - --providers.docker=true - --providers.docker.exposedbydefault=false - --entrypoints.web.address=:80 - --entrypoints.web.http.redirections.entrypoint.to=websecure - --entrypoints.web.http.redirections.entrypoint.scheme=https - --entrypoints.websecure.address=:443 - --certificatesresolvers.le.acme.email=${ACME_EMAIL:-admin@example.com} - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json - --certificatesresolvers.le.acme.tlschallenge=true ports: - "${HTTP_PORT:-80}:80" - "${HTTPS_PORT:-443}:443" - "${DASHBOARD_PORT:-8180}:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ${DATA_PATH:-/srv/traefik}/letsencrypt:/letsencrypt labels: - traefik.enable=true - traefik.http.routers.dashboard.rule=Host(`${DASHBOARD_HOST:-traefik.example.com}`) - traefik.http.routers.dashboard.service=api@internal - traefik.http.routers.dashboard.entrypoints=websecure - traefik.http.routers.dashboard.tls.certresolver=le