# docker-compose.yml services: traefik: container_name: traefik image: traefik:v3.7 command: - "--api=true" - "--tracing=true" - "--providers.docker=true" - "--providers.docker.exposedByDefault=false" - "--providers.file.directory=/etc/traefik/dynamic" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--entrypoints.minecraft.address=:25565/tcp" - "--entrypoints.websecure.http.tls=true" - "--log.level=INFO" - "--entrypoints.web.http.redirections.entrypoint.to=websecure" - "--entrypoints.web.http.redirections.entrypoint.scheme=https" - "--entrypoints.web.http.redirections.entrypoint.permanent=true" - "--entrypoints.websecure.asDefault=true" - "--entrypoints.websecure.http.tls.domains[0].main=alphamill.gr" - "--entrypoints.websecure.http.tls.domains[0].sans=*.alphamill.gr" - "--entrypoints.websecure.http.tls.domains[1].main=stvnliu.me" - "--entrypoints.websecure.http.tls.domains[1].sans=*.stvnliu.me" security_opt: - no-new-privileges:true ports: - "80:80" # Web HTTP services entrypoint - "443:443" # Web HTTPS services entrypoint - "25565:25565/tcp" # Minecraft service port volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./certs:/certs:ro - ./dynamic:/etc/traefik/dynamic:ro labels: - "traefik.enable=true" - "traefik.http.routers.dashboard.rule=Host(`traefik.stvnliu.me`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))" - "traefik.http.routers.dashboard.service=api@internal" - "traefik.http.routers.dashboard.middlewares=auth" - "traefik.http.middlewares.auth.basicauth.users=admin:$$apr1$$UTCvF4Ic$$.S6iKW534mXL70ndt3L/P1" networks: - proxy_net networks: auth_net: name: "auth-net" external: false driver: bridge proxy_net: name: "proxy-net" external: false driver: bridge