Skip to content

chr0nzz/traefik-manager

Repository files navigation

Traefik Manager

Traefik Manager

A clean, self-hosted web UI for managing your Traefik reverse proxy.

Add routes, manage middlewares, monitor services, and view TLS certificates - all without touching a YAML file by hand.

Docker Image License Version Docs Mobile App

Built for homelabbers who love Traefik but hate editing YAML at 2am.

Interface Gallery

Initial Setup Workflow
Step 1 – Temporary password
1. Temporary password
Step 2 – Welcome
2. Welcome
Step 3 – Connection & domains
3. Connection & domains
Step 4 – Optional tabs
4. Optional tabs
Step 5 – Set password
5. Set password
Dashboard

Dashboard Dashboard – compact stats

Dashboard – no widgets Dashboard – edit group Dashboard – edit route card

Routes
Routes overview
Overview
Route details
Details
Route edit
Edit
Add HTTP route
Add HTTP
Add TCP route
Add TCP
Add UDP route
Add UDP
Services

Services Service details

Middlewares
Middlewares
List
Edit middleware
Edit
Add middleware
Add
Plugins & Certificates

Plugins Plugin details Certificates

Docker Provider

Docker routes Docker route details

Route Map

Route Map Route Map – hover highlight

Logs

Logs

Settings
Settings – auth
Authentication
Settings – connections
Connections
Settings – routes
Routes Config
Settings – system
System
Settings – backups
Backups
Settings – UI
UI Preferences

Features

Routing & Middleware

  • Add, edit, delete, and enable/disable HTTP, TCP, and UDP routes - no YAML editing required
  • Create middlewares with built-in templates (Basic Auth, Forward Auth, Redirect, Strip Prefix)
  • Multi-config file support - mount several dynamic config files with CONFIG_DIR or CONFIG_PATHS; a dropdown selects which file each route or middleware is saved to; create new files on the fly when CONFIG_DIR is set
  • Timestamped backups before every change; one-click restore from Settings

Live Dashboard

  • Real-time stats: router counts, service health, entrypoints, Traefik version
  • Provider tabs: Docker, Kubernetes, Swarm, Nomad, ECS, Consul Catalog, Redis, etcd, Consul KV, ZooKeeper, HTTP Provider, File - all API-based, no extra mounts
  • Filter live services by protocol (HTTP/TCP/UDP) and provider (docker, file, kubernetes…)
  • List view toggle on Routes, Middlewares, and Services tabs - switch between card grid and compact table

Visualizations (optional, toggle in Settings)

  • Dashboard tab - routes grouped by category (Media, Monitoring, Infrastructure, etc.) with app icons sourced from selfh.st/icons, cached locally, and per-card editing (display name, icon override, group override)
  • Route Map tab - 4-column topology view (Entry Points - Routes - Middlewares - Services) with Bezier curve connections, hover-to-highlight, and route tooltips

System Monitoring (optional file mounts)

  • Certs - acme.json certificates with expiry tracking
  • Plugins - plugins from your static traefik.yml
  • Logs - live Traefik access log tail

Security

  • bcrypt passwords (cost 12), CSRF protection, session management with session fixation protection
  • Optional TOTP 2FA · 7-day remember me · configurable inactivity timeout
  • Auto-generated password on first start · CLI recovery with flask reset-password
  • Per-device API keys - up to 10 named keys (e.g. "My Phone"), each independently revocable via X-Api-Key header
  • Rate limiting on login and auth endpoints (Flask-Limiter)
  • Atomic config writes - crash-safe YAML saves via temp file + rename
  • Encrypted OTP secret - TOTP seed encrypted at rest with Fernet

Mobile App

traefik-manager-mobile is a React Native companion app for managing Traefik Manager from your phone. Requires Traefik Manager v0.6.0 or higher.

Repo github.com/chr0nzz/traefik-manager-mobile
Download Latest release
Auth Per-device API key - generate one in Settings → Authentication → App / Mobile API Keys

Features: browse routes, middlewares, and services · enable/disable routes · add and edit routes and middlewares (12 middleware templates) · backend scheme + pass host header controls · multi-config file picker · edit mode for bulk actions · system light/dark theme.


Quick Start

services:
  traefik-manager:
    image: ghcr.io/chr0nzz/traefik-manager:latest
    container_name: traefik-manager
    restart: unless-stopped
    ports:
      - "5000:5000"
    environment:
      - COOKIE_SECURE=false
    volumes:
      - /path/to/traefik/dynamic.yml:/app/config/dynamic.yml
      - /path/to/traefik-manager/config:/app/config
      - /path/to/traefik-manager/backups:/app/backups
docker compose up -d

Open http://your-server:5000 - the setup wizard will guide you through the rest.


Deployment

Runtime  Guide
🐳 Docker Docker Compose setup, networking, behind Traefik
🦭 Podman Rootless, Quadlet/systemd, SELinux labels
🐧 Linux  Native Python + systemd, no container required

Documentation

Full documentation at traefik-manager.xyzlab.dev

Get Started Deployment guides for Docker, Podman, and Linux
Configuration manager.yml reference
Environment Variables CONFIG_DIR, CONFIG_PATHS, auth, domains, and more
Security API keys, sessions, CSRF, rate limits, and hardening
API Reference REST API for integrations and the mobile app
Mobile App Android companion app setup and features
Reset Password CLI reset, TOTP recovery, manual reset
UI Examples Screenshots and walkthroughs
Provider Tabs Docker, Kubernetes, Swarm, Nomad, ECS, and more

Tech Stack

Layer Technology
Backend Python 3.11 · Flask · Gunicorn
Config ruamel.yaml (preserves comments)
Auth bcrypt · pyotp (TOTP) · Flask sessions · CSRF · Flask-Limiter · Fernet
Frontend Vanilla JS · Tailwind CSS · Phosphor Icons
Container Docker · Alpine Linux

Contributing

Pull requests are welcome. For larger changes please open an issue first.

Star History

Star History Chart

License

GPL-3.0