services: # Traefik Log Dashboard Agent traefik-agent: image: hhftechnology/traefik-log-dashboard-agent:latest hostname: traefik-agent volumes: - /volume1/docker/traefik/logs:/logs:ro # Mount Traefik logs as read-only - /volume1/docker/traefik-agent/data/geoip:/geoip:ro # Optional: GeoIP databases - /volume1/docker/traefik-agent/data/positions:/data # Position tracking environment: # Log Paths - TRAEFIK_LOG_DASHBOARD_ACCESS_PATH=/logs/access.log - TRAEFIK_LOG_DASHBOARD_ERROR_PATH=/logs/access.log # Authentication - Generate a strong token! - TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN=${TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN} # System Monitoring - TRAEFIK_LOG_DASHBOARD_SYSTEM_MONITORING=true # GeoIP Configuration - TRAEFIK_LOG_DASHBOARD_GEOIP_ENABLED=true - TRAEFIK_LOG_DASHBOARD_GEOIP_CITY_DB=/geoip/GeoLite2-City.mmdb - TRAEFIK_LOG_DASHBOARD_GEOIP_COUNTRY_DB=/geoip/GeoLite2-Country.mmdb # Log Format - TRAEFIK_LOG_DASHBOARD_LOG_FORMAT=json # Server Port - PORT=5000 healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5000/api/logs/status"] interval: 30s timeout: 10s retries: 3 start_period: 10s networks: - traefik_backend deploy: mode: global # Traefik Log Dashboard - Next.js web UI traefik-dashboard: image: hhftechnology/traefik-log-dashboard:latest hostname: traefik-log-dashboard ports: - "3000:3000" environment: # Agent Configuration - AGENT_API_URL=http://traefik-agent:5000 - AGENT_API_TOKEN=${AGENT_API_TOKEN} # Node Environment - NODE_ENV=production - PORT=3000 # healthcheck: # test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000"] # interval: 30s # timeout: 10s # retries: 3 # start_period: 60s networks: - traefik_backend deploy: labels: - traefik.enable=true - traefik.http.routers.traffic.rule=Host(`traffic.bryanmail.net`) - traefik.http.routers.traffic.tls=true - traefik.http.routers.traffic.tls.certresolver=letsencrypt - traefik.http.routers.traffic.entrypoints=websecure - traefik.http.services.traffic.loadbalancer.server.port=3000 - traefik.http.services.traffic.loadbalancer.passHostHeader=false # - traefik.http.routers.whoami.middlewares=whoamiauth # - traefik.http.middlewares.whoamiauth.basicauth.users=test:$$2a$$12$$1sIFlNKcNrEApe2IScpFwukd7l1j/uvfxk0GeuqIk0BBcO9Mk2F2u - traefik.swarm.network=traefik_backend # - "traefik.http.middlewares.test-auth.forwardauth.trustForwardHeader=true" - traefik.http.routers.traffic.middlewares=crowdsec@file, forwardAuth-authentik@file networks: traefik_backend: external: true