Skip to content

hhftechnology/traefik-log-dashboard

Repository files navigation

Traefik Log Dashboard

Comprehensive real-time analytics platform for Traefik reverse proxy logs

Docker Docker Stars Discord


dashboard client_dashboard traffic_dashboard system_dashboard overview_dashboard maps_dashboard logs_dashboard filter_dashboard

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)

Components

Component Description
Agent Lightweight Go service that parses Traefik logs and exposes metrics via REST API
Dashboard Next.js 15 web UI with real-time analytics, charts, and geographic visualization
CLI Terminal-based dashboard using 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_API_URL URL to agent API Required
AGENT_API_TOKEN Authentication token (must match agent) Required
AGENT_NAME Display name for the agent Environment Agent
NEXT_PUBLIC_SHOW_DEMO_PAGE Show demo mode link true
NEXT_PUBLIC_MAX_LOGS_DISPLAY Max logs in table 500

Note: GeoIP is automatically handled by the dashboard using geolite2-redist. No configuration needed.


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