services: traefik: image: traefik:v3.2.1 # Use the latest stable version restart: unless-stopped command: # Enable Docker Provider (listens to labels on other containers) - --providers.docker=true - --providers.docker.exposedbydefault=false # Entrypoints for web traffic (HTTP and HTTPS) - --entrypoints.web.address=:80 - --entrypoints.websecure.address=:443 - --entrypoints.websecure.http.tls.certresolver=myresolver - --certificatesresolvers.myresolver.acme.email=development@safetytest.eu - --certificatesresolvers.myresolver.acme.tlschallenge=true - --certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json # Optional: Redirect HTTP to HTTPS - --entrypoints.web.http.redirections.entrypoint.to=websecure - --entrypoints.web.http.redirections.entrypoint.scheme=https ports: - "80:80" - "443:443" # Optionally, a separate port for non-HTTP/S TCP traffic if needed # - "444:444" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./letsencrypt:/letsencrypt # Volume to store certificates networks: - proxy # Use a common network networks: proxy: external: true # Assumes you created this network beforehand