services: traefik: image: traefik:latest container_name: traefik restart: always command: - "--global.checknewversion=false" - "--log.level=INFO" - "--log.filepath=/logs/traefik.log" - "--accesslog=true" - "--accesslog.filepath=/logs/access.log" - "--entrypoints.web.address=:80" - "--entrypoints.web.forwardedheaders.trustedips=0.0.0.0/0" - "--entrypoints.websecure.address=:443" - "--entrypoints.websecure.forwardedheaders.trustedips=0.0.0.0/0" - "--api.dashboard=true" - "--providers.docker=true" - "--providers.docker.endpoint=unix:///var/run/docker.sock" - "--providers.docker.network=${EXTERNAL_NETWORK}" - "--providers.docker.exposedbydefault=false" - "--providers.docker.watch=true" - "--providers.file.filename=/etc/traefik/traefik_dynamic.yml" - "--providers.file.watch=true" labels: - "traefik.enable=true" - "traefik.http.routers.traefik-dashboard.rule=Host(`traefik.${DEV_URL}`)" - "traefik.http.routers.traefik-dashboard.entrypoints=web" - "traefik.http.routers.traefik-dashboard.service=api@internal" ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./traefik/traefik_dynamic.yml:/etc/traefik/traefik_dynamic.yml:ro - ./traefik/logs:/logs networks: - ${EXTERNAL_NETWORK} 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=web" - "traefik.http.routers.portainer.service=portainer" - "traefik.http.services.portainer.loadbalancer.server.port=9000" networks: - ${EXTERNAL_NETWORK} networks: traefiknet: name: ${EXTERNAL_NETWORK} external: true