--- version: "3.7" networks: default: name: ${APP_NETWORK} services: traefik: image: ${APP_IMAGE:-traefik}:${APP_VERSION:-v2.6.1} restart: always networks: default: environment: #command: # Core config - TRAEFIK_API=true - TRAEFIK_API_DASHBOARD=true - TRAEFIK_API_DEBUG=true - TRAEFIK_API_INSECURE=true - TRAEFIK_PILOT_DASHBOARD=false # Logging - TRAEFIK_LOG_LEVEL=INFO - TRAEFIK_ACCESSLOG=false - TRAEFIK_ACCESSLOG_FILEPATH=/data/access.log # Docker configuration - TRAEFIK_PROVIDERS_DOCKER=true - TRAEFIK_PROVIDERS_DOCKER_WATCH=true - TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT=false - TRAEFIK_PROVIDERS_DOCKER_NETWORK=$APP_NETWORK - TRAEFIK_PROVIDERS_DOCKER_ENDPOINT=unix:///var/run/docker.sock - TRAEFIK_PROVIDERS_DOCKER_SWARMMODE=false # File provider #- TRAEFIK_PROVIDERS.FILE.DIRECTORY=/etc/traefik/configs # Entrypoints - TRAEFIK_ENTRYPOINTS_front-http_ADDRESS=:80 # <== Defining an entrypoint for port :80 named front volumes: - ./config:/etc/traefik - ./data:/data - ./logs:/logs - /var/run/docker.sock:/var/run/docker.sock labels: #### Labels define the behavior and rules of the traefik proxy for this container #### - "traefik.enable=true" # <== Enable traefik on itself to view dashboard and assign subdomain to view it - "traefik.http.routers.dashboard.rule=Host(`${APP_DOMAIN}`)" # <== Setting the domain for the dashboard #- "traefik.http.routers.dashboard.service=api@internal" # <== Enabling the api to be a service to access - "traefik.http.routers.dashboard.service=dashboard" # <== Enabling the api to be a service to access - "traefik.http.routers.dashboard.entrypoints=$TRAEFIK_ENTRYPOINTS" #- "traefik.http.routers.dashboard.tls=true" #- "traefik.http.routers.dashboard.tls.certresolver=tls_barbu_it_net" - "traefik.http.services.dashboard.loadbalancer.server.port=8080"