diff --git a/nodes/heimdall/core/README.md b/nodes/heimdall/core/README.md index 8ec882d..b0e5071 100644 --- a/nodes/heimdall/core/README.md +++ b/nodes/heimdall/core/README.md @@ -2,5 +2,6 @@ - docker socket proxy - traefik +- goaccess (analytics dashboard for Traefik logs) - redis - komodo diff --git a/nodes/heimdall/core/compose.yaml b/nodes/heimdall/core/compose.yaml index 7c58791..0c514fa 100644 --- a/nodes/heimdall/core/compose.yaml +++ b/nodes/heimdall/core/compose.yaml @@ -90,6 +90,45 @@ services: - "traefik.http.middlewares.traefik-redir.redirectregex.regex=^https?://proxy.castaldifamily.com/$$" - "traefik.http.middlewares.traefik-redir.redirectregex.replacement=https://proxy.castaldifamily.com/dashboard/" + goaccess: + image: nginx:alpine + container_name: goaccess + restart: unless-stopped + environment: + - TZ=America/New_York + volumes: + - /mnt/appdata/traefik/access-logs:/usr/share/nginx/html:ro + ports: + - "7890:80" + networks: + - proxy-net + labels: + - "traefik.enable=true" + - "traefik.docker.network=proxy-net" + - "traefik.http.routers.analytics.rule=Host(`analytics.castaldifamily.com`)" + - "traefik.http.routers.analytics.entrypoints=websecure" + - "traefik.http.routers.analytics.tls=true" + - "traefik.http.routers.analytics.tls.certresolver=cloudflare" + - "traefik.http.services.analytics.loadbalancer.server.port=80" + + goaccess-cron: + image: allinurl/goaccess:1.10 + container_name: goaccess-cron + restart: unless-stopped + environment: + - TZ=America/New_York + volumes: + - /mnt/appdata/traefik/access-logs:/opt/log + entrypoint: /bin/sh + # Regenerate report.html every 5 minutes + command: + - -c + - | + while true; do + goaccess /opt/log/access.log --output=/opt/log/report.html --log-format=COMBINED + sleep 300 + done + # --- MANAGEMENT --- komodo-db: image: mongo:8.2.6