Get started in under 5 minutes with Docker Compose:
mkdir -p traefik-dashboard/data/{logs,positions,dashboard}
cd traefik-dashboardservices:
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: trueopenssl rand -hex 32Update both TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN and AGENT_API_TOKEN with this value.
# Create network if it doesn't exist
docker network create traefik-network 2>/dev/null || true
# Start services
docker compose up -dOpen http://localhost:3000 in your browser.
- 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)
| 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) |
| 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 |
| 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.
Full documentation available at: https://traefik-log-dashboard.hhf.technology
Or run locally:
cd docs && npm install && npm run dev- Documentation: https://traefik-log-dashboard.hhf.technology
- Discord: Join our community
- GitHub Issues: Report bugs
- Docker Hub: Agent | Dashboard
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!