services: traefik: image: traefik:v3.5 container_name: traefik restart: unless-stopped command: - "--api.insecure=false" - "--api.dashboard=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=proxy" - "--entryPoints.web.address=:80" - "--entryPoints.websecure.address=:443" - "--entryPoints.websecure.http.tls=true" - "--entryPoints.web.http.redirections.entryPoint.to=websecure" - "--entryPoints.web.http.redirections.entryPoint.scheme=https" - --serversTransport.insecureSkipVerify=true - "--providers.file.directory=/etc/traefik/dynamic/" - "--providers.file.watch=true" # Let's Encrypt - "--certificatesresolvers.le.acme.email=${EMAIL:-bobrovod@national.shitposting.agency}" - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json" - "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web" labels: - "traefik.enable=true" - "traefik.docker.network=traefik-proxy" ports: - "80:80" - "443:443" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./traefik/certs:/certs:ro - ./traefik/dynamic:/etc/traefik/dynamic:ro - ./traefik/letsencrypt:/letsencrypt networks: - traefik-proxy networks: traefik-proxy: external: true