diff --git a/gamma.yaml b/gamma.yaml new file mode 100644 index 0000000..70771c3 --- /dev/null +++ b/gamma.yaml @@ -0,0 +1,75 @@ +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