An open API service indexing awesome lists of open source software.

https://github.com/chr0nzz/traefik-manager

A clean, self-hosted web UI for managing your Traefik reverse proxy.
https://github.com/chr0nzz/traefik-manager

alpine-linux bcrypt crsf csrf-protection docker fernet flask flask-limiter flask-session gunicorn phosphor-icons python3 ruamel-yaml tailwind-css totp traefik traefik-management traefik-web-ui vanilla-js

Last synced: 6 days ago
JSON representation

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

Awesome Lists containing this project

README

          

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](https://img.shields.io/badge/ghcr.io-chr0nzz%2Ftraefik--manager-blue?logo=docker&logoColor=white)](https://github.com/chr0nzz/traefik-manager/pkgs/container/traefik-manager)
[![License](https://img.shields.io/badge/license-GPL--3.0-blue)](LICENSE)
[![Version](https://img.shields.io/github/v/release/chr0nzz/traefik-manager)](https://github.com/chr0nzz/traefik-manager/releases)
[![Docs](https://img.shields.io/badge/docs-github.io-blue)](https://traefik-manager.xyzlab.dev/)
[![Mobile App](https://img.shields.io/badge/mobile-traefik--manager--mobile-green?logo=android&logoColor=white)](https://github.com/chr0nzz/traefik-manager-mobile)



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](https://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](https://github.com/chr0nzz/traefik-manager-mobile) |
| Download | [Latest release](https://github.com/chr0nzz/traefik-manager-mobile/releases/latest) |
| Beta | [Sign up to beta test on Google Play](https://forms.gle/csituqc92sreNooZ8) |
| 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

**One-liner installer** - installs Traefik + Traefik Manager together, or Traefik Manager on its own via Docker or a native Linux service:

```bash
curl -fsSL https://get-traefik.xyzlab.dev | bash
```

**Manual Docker Compose:**

```yaml
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
```

```bash
docker compose up -d
```

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

---

## Deployment

| Runtime  | Guide |
| -----------| --------------------------------------------------------------------------------------------------------------------------------|
| ⚡ Installer | [One-liner: full stack, TM-only Docker, TM-only Linux service](https://traefik-manager.xyzlab.dev/traefik-stack.html) |
| 🐳 Docker | [Docker Compose setup, networking, behind Traefik](https://traefik-manager.xyzlab.dev/docker.html) |
| 🦭 Podman | [Rootless, Quadlet/systemd, SELinux labels](https://traefik-manager.xyzlab.dev/podman.html) |
| 🐧 Linux | [Native Python + systemd, no container required](https://traefik-manager.xyzlab.dev/linux.html) |
| 🟠 Unraid | [Community Applications template, networking, multi-config](https://traefik-manager.xyzlab.dev/unraid.html) |

---

## Documentation

Full documentation at **[traefik-manager.xyzlab.dev](https://traefik-manager.xyzlab.dev/)**

| | |
| ---------------------------------------------------------------------------| -------------------------------------------------------|
| [Get Started](https://traefik-manager.xyzlab.dev/guide.html) | Deployment guides for Docker, Podman, and Linux |
| [Traefik Stack](https://traefik-manager.xyzlab.dev/traefik-stack.html) | One-liner installer guide |
| [Configuration](https://traefik-manager.xyzlab.dev/manager-yml.html) | `manager.yml` reference |
| [Environment Variables](https://traefik-manager.xyzlab.dev/env-vars.html) | `CONFIG_DIR`, `CONFIG_PATHS`, auth, domains, and more |
| [Security](https://traefik-manager.xyzlab.dev/security.html) | API keys, sessions, CSRF, rate limits, and hardening |
| [API Reference](https://traefik-manager.xyzlab.dev/api.html) | REST API for integrations and the mobile app |
| [Mobile App](https://traefik-manager.xyzlab.dev/mobile.html) | Android companion app setup and features |
| [Reset Password](https://traefik-manager.xyzlab.dev/reset-password.html) | CLI reset, TOTP recovery, manual reset |
| [UI Examples](https://traefik-manager.xyzlab.dev/ui-examples.html) | Screenshots and walkthroughs |
| [Provider Tabs](https://traefik-manager.xyzlab.dev/tab-docker.html) | 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](LICENSE)