Skip to content

Repository files navigation

Traefik Log Dashboard

Comprehensive real-time analytics platform for Traefik reverse proxy logs

Docker Docker Stars Discord

Components

Component Description Image Size (linux/amd64)
Agent Lightweight Go service that parses Traefik logs and exposes metrics via REST API 15MB
Dashboard Vite web UI with real-time analytics, charts, and geographic visualization 151MB
CLI Terminal-based dashboard using Bubble Tea (optional) N/A

Traefik Dashboard mobile app.

appstore     googleplay

All apps are Pangolin and Basis auth supported.


dashboard client_dashboard traffic_dashboard system_dashboard overview_dashboard maps_dashboard logs_dashboard filter_dashboard

image.png

Quick Start

Get started in under 5 minutes with Docker Compose:

1. Create Project Structure

mkdir -p traefik-dashboard/data/{logs,positions,dashboard}
cd traefik-dashboard

2. Create docker-compose.yml

services:
  traefik-agent:
    image: hhftechnology/traefik-log-dashboard-agent:latest
    container_name: traefik-log-dashboard-agent
    restart: unless-stopped
    ports:
      - "5000:5000"
    volumes:
      - ./data/logs:/logs:ro
      - ./data/positions:/data
    environment:
      - TRAEFIK_LOG_DASHBOARD_ACCESS_PATH=/logs/access.log
      - TRAEFIK_LOG_DASHBOARD_ERROR_PATH=/logs/traefik.log
      - TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN=your_secure_token_here
      - 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
    networks:
      - pangolin

  traefik-dashboard:
    image: hhftechnology/traefik-log-dashboard:latest
    container_name: traefik-log-dashboard
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./data/dashboard:/app/data
      - ./data/positions:/data
    environment:
      # Agent Configuration - REPLACE WITH YOUR TOKEN
      - AGENT_API_URL=http://traefik-agent:5000
      - AGENT_API_TOKEN=d41d8cd98f00b204e9800998ecf8427e
      - AGENT_NAME=Default Agent
      
      # Node Environment
      - NODE_ENV=production
      - PORT=3000
      
      # Display Configuration
      - NEXT_PUBLIC_SHOW_DEMO_PAGE=true
      - NEXT_PUBLIC_MAX_LOGS_DISPLAY=500
    depends_on:
      traefik-agent:
        condition: service_healthy
    networks:
      - pangolin

networks:
  pangolin:
    external: true

3. Generate Secure Token

openssl rand -hex 32

Update both TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN and AGENT_API_TOKEN with this value.

4. Start Services

# Create network if it doesn't exist
docker network create traefik-network 2>/dev/null || true

# Start services
docker compose up -d

5. Access Dashboard

Open http://localhost:3000 in your browser.


Key Features

  • Multi-Agent Architecture - Manage multiple Traefik instances from a single dashboard
  • Interactive 3D Globe - Geographic visualization with smooth map transitions
  • Automatic GeoIP - IP geolocation works out of the box (no setup required)
  • Advanced Filtering - Include/exclude modes, geographic and custom filters
  • Background Alerting - Discord webhooks, daily summaries, threshold alerts
  • High Performance - Go-based agent, optimized log parsing, position tracking
  • Terminal Dashboard - Beautiful CLI with Bubble Tea (optional)

Environment Variables

Agent

Variable Description Default
TRAEFIK_LOG_DASHBOARD_ACCESS_PATH Path to access log file/directory /var/log/traefik/access.log
TRAEFIK_LOG_DASHBOARD_ERROR_PATH Path to error log file/directory /var/log/traefik/traefik.log
TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN Authentication token Required
TRAEFIK_LOG_DASHBOARD_SYSTEM_MONITORING Enable system monitoring true
TRAEFIK_LOG_DASHBOARD_LOG_FORMAT Log format (json or common) json
PORT Agent listen port 5000

Dashboard

Variable Description Default
AGENT_1_URL First environment agent URL Required (or DASHBOARD_AGENTS_JSON)
AGENT_1_TOKEN First environment agent token Optional
AGENT_1_NAME First environment agent name Agent 1
AGENT_2_URL, AGENT_3_URL, ... Additional environment agents Optional
DASHBOARD_AGENTS_ENV_ONLY Disable UI/API agent mutations false
DASHBOARD_REFRESH_INTERVAL_MS Refresh interval 5000
DASHBOARD_MAX_LOGS_DISPLAY Max logs retained in dashboard state 1000
DASHBOARD_TRAFFIC_TOP_ITEMS_LIMIT Top-N shown in Traffic lists 10
DASHBOARD_PARSER_TREND_WINDOW_MINUTES Parser sparkline trend window (15-30) 30
SHOW_DEMO_PAGE Show demo mode link true
GEOIP_LOOKUP_ENABLED Enable dashboard GeoIP lookup API true
GEOIP_PROVIDER_BASE_URL GeoIP provider base URL https://ipwho.is
GEOIP_PROVIDER_URLS Comma-separated GeoIP provider fallback list Uses GEOIP_PROVIDER_BASE_URL
GEOIP_LOCAL_DB_PATH Optional local MaxMind MMDB path "" (disabled)
GEOIP_UNKNOWN_CACHE_TTL_MS Cache TTL for unresolved lookups 300000

Legacy fallback (still supported): AGENT_API_URL, AGENT_API_TOKEN, AGENT_NAME.

GeoIP mode: The dashboard uses a hybrid resolver chain:

  1. Optional local MMDB (GEOIP_LOCAL_DB_PATH)
  2. HTTP provider fallback (GEOIP_PROVIDER_URLS / GEOIP_PROVIDER_BASE_URL)

Example production GeoIP configuration:

services:
  traefik-dashboard:
    volumes:
      - ./data/geoip:/geoip:ro
    environment:
      - GEOIP_LOCAL_DB_PATH=/geoip/GeoLite2-City.mmdb
      - GEOIP_PROVIDER_URLS=https://ipwho.is,https://ip-api.com/json
      - GEOIP_UNKNOWN_CACHE_TTL_MS=300000

Documentation

Full documentation available at: https://traefik-log-dashboard.hhf.technology

Or run locally:

cd docs && npm install && npm run dev

Community & Support


License

This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE - see the LICENSE file for details.


Made with ❤️ for the Traefik community

⭐ Star this repo if you find it helpful!

GitHub | Discord | Documentation

About

A real-time dashboard for analyzing Traefik logs in UI with IP geolocation, status code analysis, and service metrics. Built with React (Shadcn UI) and Node.js.

Topics

Resources

Stars

790 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages