What's New
- Static Config Editor - manage entrypoints, cert resolvers, providers, and plugins directly from the UI. Three restart methods: socket proxy, direct socket, poison pill. Raw YAML editor (Monaco) available as a fallback. The install script configures everything automatically. See Static Config and Enable Static Config.
- Cert resolver "none" - set cert resolver to
nonefor external cert management. TM writestls: {}with nocertResolver. (#30) - Plugin management - add, edit, and remove plugins from the Plugins tab when static config is mounted and writable. Provider template editor with pre-filled templates for all 12 provider types.
- Route map overhaul - dagre layout engine for automatic node positioning (#27), click-to-inspect popup, hover highlighting for all node types, mobile pan and pinch-zoom, filter by protocol/provider/entry point.
- Active / Inactive route filter - quickly surface disabled routes from the Routes tab.
- Keyboard shortcuts -
Shift+?opens the panel. Navigate tabs, create routes/middlewares, open settings. - Install script improvements - auto-configures static config and restart method; handles systemd-to-systemd Traefik setups.
Bug Fixes
- Cert resolver defaulting to
cloudflare- blank ornonenow correctly writestls: {}with no resolver; TCP routes fixed too - Target/IP N/A for file-provider routes - falls back to Traefik API service map for tools like TraefikKobling (#28)
- Remember me not persisting
- FOUC on page load - preferences applied before first paint
- Login page theme - correct theme applied before paint
- Plugin middleware Go template crash -
{{ }}syntax no longer crashes Traefik's file provider - Certificates tab expiry shows "Invalid" on mobile
- Enabling a tab requires page refresh
- Self-route entrypoint - auto-fix button for invalid entrypoints; defaults to first port-443 entrypoint instead of hardcoded
websecure - Route edit - stuck entrypoints - unknown entrypoint chips now visible and removable
Security
XSS, CSRF bypass with invalid API keys, OIDC nonce verification, SSRF logging, Remember Me inactivity timeout, API key hashing switched from bcrypt to SHA-256.
Performance
- Filter inputs use cached element array instead of full DOM traversal
- Services render loop O(n²) eliminated
Dependencies
All Python dependencies updated to latest stable:
| Package | v0.12.x | v1.0.0 |
|---|---|---|
| Flask | 3.0.0 | 3.1.3 |
| cryptography | 42.0.5 | 47.0.0 |
| bcrypt | 4.1.2 | 5.0.0 |
| requests | 2.31.0 | 2.33.1 |
| ruamel.yaml | 0.18.5 | 0.19.1 |
| flask-limiter | 3.8.0 | 4.1.1 |
Upgrading from v0.12.x
No breaking changes. Pull and restart:
docker compose pull && docker compose up -dStatic Config Editor is optional and off by default. See Enable Static Config or re-run the install script.
Full docs: traefik-manager.xyzlab.dev