networks: external-net: name: ${EXTERNAL_NETWORK:-traefiknet} external: true services: traefik: image: traefik:latest container_name: traefik restart: always environment: TRAEFIK_GLOBAL_CHECKNEWVERSION: false TRAEFIK_LOG_LEVEL: INFO TRAEFIK_LOG_FILEPATH: /logs/traefik.log TRAEFIK_ACCESSLOG: true TRAEFIK_ACCESSLOG_FILEPATH: /logs/access.log TRAEFIK_ENTRYPOINTS_WEB_ADDRESS: ":80" TRAEFIK_ENTRYPOINTS_WEB_FORWARDEDHEADERS_TRUSTEDIPS: "0.0.0.0/0" TRAEFIK_ENTRYPOINTS_WEBSECURE_ADDRESS: ":443" TRAEFIK_ENTRYPOINTS_WEBSECURE_FORWARDEDHEADERS_TRUSTEDIPS: "0.0.0.0/0" TRAEFIK_API_DASHBOARD: true TRAEFIK_PROVIDERS_DOCKER: true TRAEFIK_PROVIDERS_DOCKER_ENDPOINT: "unix:///var/run/docker.sock" TRAEFIK_PROVIDERS_DOCKER_NETWORK: "${EXTERNAL_NETWORK:-traefiknet}" TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT: false TRAEFIK_PROVIDERS_DOCKER_WATCH: true TRAEFIK_PROVIDERS_FILE_FILENAME: "/etc/traefik/traefik_dynamic.yml" TRAEFIK_PROVIDERS_FILE_WATCH: true labels: - "traefik.enable=true" - "traefik.http.routers.traefik-dashboard.rule=Host(`traefik.${DEV_URL}`)" - "traefik.http.routers.traefik-dashboard.entrypoints=websecure" - "traefik.http.routers.traefik-dashboard.service=api@internal" - "traefik.http.routers.traefik-dashboard.tls=true" ports: - "80:80" - "443:443" volumes: - ./traefik/certs:/certs:ro - ./traefik/logs:/logs - ./traefik/traefik_dynamic.yml:/etc/traefik/traefik_dynamic.yml:ro - /var/run/docker.sock:/var/run/docker.sock:ro networks: - external-net portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - ./portainer:/data labels: - "traefik.enable=true" - "traefik.http.routers.portainer.rule=Host(`portainer.${DEV_URL}`)" - "traefik.http.routers.portainer.entrypoints=websecure" - "traefik.http.routers.portainer.service=portainer" - "traefik.http.routers.portainer.tls=true" - "traefik.http.services.portainer.loadbalancer.server.port=9000" networks: - external-net