version: "3.9" services: traefik: image: traefik:v2.11 container_name: traefik restart: unless-stopped command: # Enable Docker provider - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" # EntryPoints - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" # Let's Encrypt - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true" - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" - "--certificatesresolvers.letsencrypt.acme.email=you@example.com" - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json" # Dashboard - "--api.dashboard=true" ports: - "80:80" - "443:443" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./letsencrypt:/letsencrypt" labels: # Dashboard router - "traefik.enable=true" - "traefik.http.routers.traefik.rule=Host(`traefik.example.com`)" - "traefik.http.routers.traefik.entrypoints=websecure" - "traefik.http.routers.traefik.service=api@internal" - "traefik.http.routers.traefik.tls.certresolver=letsencrypt"