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.
All apps are Pangolin and Basis auth supported.
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
[](https://forum.hhf.technology/c/traefik-plugins-tools/traefik-log-dashboard)
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:
- Optional local MMDB (
GEOIP_LOCAL_DB_PATH)
- 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
License
This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE - see the LICENSE file for details.
评论