services: traefik: extends: file: ${TEMPLATES_PATH} service: default image: traefik:v3.6.6 container_name: traefik ports: - "80:80" - "443:443" - "8079:8080" networks: - ip4net environment: TRAEFIK_EMAIL: ${EMAIL} TRAEFIK_PUBLIC_DOMAIN: ${PUBLIC_DOMAIN} TRAEFIK_MAIN_SERVER_NODE_IP: ${MAIN_SERVER_NODE_IP} TRAEFIK_CROWDSEC_API_KEY: ${CROWDSEC_API_KEY} volumes: - "/var/log/traefik/:/var/log/traefik/" - "/var/run/docker.sock:/var/run/docker.sock:ro" - "${SERVICE_PATH}/traefik/letsencrypt:/letsencrypt" - "${SERVICE_PATH}/traefik/config:/etc/traefik" - "${SERVICE_PATH}/traefik/certs:/etc/certs" - "${SERVICE_PATH}/traefik/html/ban.html:/ban.html" - "${SERVICE_PATH}/traefik/html/captcha.html:/captcha.html" labels: # Traefik - "traefik.enable=true" - "traefik.http.routers.traefik.service=api@internal" - "traefik.http.routers.traefik.rule=Host(`traefik.${LOCAL_VPS_DOMAIN}`)" - "traefik.http.routers.traefik.entrypoints=https" - "traefik.http.routers.traefik.tls=true" traefik-agent: extends: file: ${TEMPLATES_PATH} service: default image: hhftechnology/traefik-log-dashboard-agent:2.4.1 container_name: traefik-log-dashboard-agent networks: - ip4net ports: - "8078:5000" volumes: - "/var/log/traefik/:/logs:ro" - "${SERVICE_PATH}/traefik/log-dashboard/positions:/data" environment: TRAEFIK_LOG_DASHBOARD_ACCESS_PATH: /logs/access.log TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN: ${TRAEFIK_DASHBOARD_TOKEN} TRAEFIK_LOG_DASHBOARD_SYSTEM_MONITORING: true TRAEFIK_LOG_DASHBOARD_LOG_FORMAT: json healthcheck: test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5000/api/logs/status", ] interval: 2m timeout: 10s retries: 3 start_period: 30s traefik-dashboard: extends: file: ${TEMPLATES_PATH} service: default image: hhftechnology/traefik-log-dashboard:2.4.1 container_name: traefik-log-dashboard networks: - ip4net ports: - "8077:3000" volumes: - "${SERVICE_PATH}/traefik/log-dashboard/dashboard:/app/data" - "${SERVICE_PATH}/traefik/log-dashboard/positions:/data" environment: AGENT_API_URL: http://traefik-agent:5000 AGENT_API_TOKEN: ${TRAEFIK_DASHBOARD_TOKEN} # Display Configuration NEXT_PUBLIC_SHOW_DEMO_PAGE: false depends_on: traefik-agent: condition: service_healthy labels: # traefik - "traefik.enable=true" - "traefik.http.routers.traefik-log-dashboard.rule=Host(`traefik-dashboard.${LOCAL_VPS_DOMAIN}`)" - "traefik.http.routers.traefik-log-dashboard.entrypoints=https" - "traefik.http.routers.traefik-log-dashboard.tls=true"