services: traefik: image: traefik:v3.0 container_name: traefik restart: unless-stopped command: - --providers.docker=true - --providers.docker.exposedbydefault=false - --providers.docker.network=proxy - --entrypoints.web.address=:80 - --entrypoints.websecure.address=:443 # Redirection HTTP -> HTTPS - --entrypoints.web.http.redirections.entryPoint.to=websecure - --entrypoints.web.http.redirections.entryPoint.scheme=https # Let's Encrypt (HTTP-01) - --certificatesresolvers.le.acme.email=cedric@goutailler-olivier.com - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json - --certificatesresolvers.le.acme.httpchallenge=true - --certificatesresolvers.le.acme.httpchallenge.entrypoint=web - --entrypoints.ssh.address=:2222 # (Optionnel) Dashboard interne - --api.dashboard=true ports: - "80:80" - "443:443" - "2222:2222" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./traefik-letsencrypt:/letsencrypt networks: - proxy environment: - TZ=Europe/Paris labels: - traefik.enable=true - traefik.http.routers.traefik.rule=Host(`traefik.goutailler-olivier.com`) - traefik.http.routers.traefik.entrypoints=websecure - traefik.http.routers.traefik.tls.certresolver=le - traefik.http.routers.traefik.service=api@internal networks: # nextcloud-net: # driver: bridge proxy: external: true name: proxy