8.9 KiB
title: Mantræ created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, reverse-proxy, traefik, ui, dns, go, svelte] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://github.com/MizuchiLabs/mantrae]
🚦 Mantræ
Web UI pour gérer la configuration dynamique de Traefik (routers, services, middlewares) avec intégration DNS automatique Cloudflare / PowerDNS / Technitium / Pi-hole. Inspiré de Nginx Proxy Manager et Pangolin, 100 % Traefik-native.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | mizuchilabs.github.io/mantrae |
| GitHub | MizuchiLabs/mantrae |
| License | MIT |
| Langage | TypeScript (41.9 %), Svelte (34.3 %), Go (20.7 %) |
| Étoiles GitHub | 491 ⭐ |
| Dernière MAJ | 2026-04-14 (v0.8.9) |
| Catégorie | [[cat-reverse-proxy |
📝 Description
Mantræ (par MizuchiLabs, mainteneur @d34dscene) est un gestionnaire web de la configuration dynamique Traefik : il présente une UI propre (Svelte) pour créer routers, services, middlewares sans éditer de YAML, et intègre la gestion DNS automatique avec 4 providers (Cloudflare, PowerDNS, Technitium, Pi-hole) pour pousser les records en même temps que les routes.
⚠️ Note importante : Mantræ n'est pas un dashboard Traefik (il ne monitore pas l'état des routes). C'est un gestionnaire de configuration : Traefik se connecte à Mantræ pour fetcher sa dynamic config. La nuance est importante.
⚠️ Note de roadmap : depuis 2025, le développement a été transféré vers Tether (même équipe). Mantræ reste maintenu pour les correctifs mais les nouvelles features vont sur Tether.
Caractéristiques principales :
- ✅ Web UI Svelte moderne, dark/light mode, ergonomique
- ✅ Gestion routers : règles Host/Path/Headers, entrypoints, TLS
- ✅ Gestion middlewares : rate-limit, basicauth, headers, redirect, stripPrefix, etc.
- ✅ Gestion services : load balancer, weighted, mirroring
- ✅ DNS auto : Cloudflare, PowerDNS, Technitium, Pi-hole (push du record A/CNAME quand un nouveau router est créé)
- ✅ Agent
mantraed: déploie un agent sur chaque host Docker qui synchronise les labels des containers vers Mantræ (alternative aux labels Docker classiques) - ✅ Authentification intégrée : user/password + sessions
- ✅ API REST documentée (OpenAPI)
- ✅ Binaire Go standalone : installation simple, pas de runtime Node requis en production
Public cible : utilisateurs de Traefik qui veulent une UI web dédiée pour gérer leur config sans dépendre de Docker labels exclusivement. Particulièrement adapté pour des setups non-Docker (Traefik en binaire natif sur VM) où l'auto-discovery Docker n'est pas utilisable.
🚀 Installation
Option 1 : Docker Compose (recommandé)
# docker-compose.yml
version: '3.8'
services:
mantrae:
image: ghcr.io/mizuchilabs/mantrae:latest
container_name: mantrae
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/data # base SQLite + config
environment:
- TZ=Europe/Paris
networks:
- proxy
networks:
proxy:
external: true
Variante Traefik (exposer Mantræ derrière Traefik)
# docker-compose.yml (variante)
version: '3.8'
services:
mantrae:
image: ghcr.io/mizuchilabs/mantrae:latest
container_name: mantrae
restart: unless-stopped
volumes:
- ./data:/data
environment:
- TZ=Europe/Paris
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.mantrae.rule=Host(`traefik.example.com`)"
- "traefik.http.routers.mantrae.entrypoints=websecure"
- "traefik.http.routers.mantrae.tls.certresolver=letsencrypt"
- "traefik.http.services.mantrae.loadbalancer.server.port=8080"
- "traefik.http.routers.mantrae.middlewares=auth@docker"
networks:
- proxy
networks:
proxy:
external: true
Option 2 : Binaire natif (install script)
curl -fsSL https://raw.githubusercontent.com/mizuchilabs/mantrae/main/install.sh | sh
mantrae --version
mantrae # démarre le serveur
Configuration Traefik (statique) pour consommer Mantræ
# traefik.yml (statique)
providers:
http:
endpoint: "http://mantrae:8080/api/v1/traefik-config"
pollInterval: 10s
Variante : agent mantraed pour la découverte Docker
# Sur chaque host avec Docker
version: '3.8'
services:
mantraed:
image: ghcr.io/mizuchilabs/mantraed:latest
container_name: mantraed
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- MANTRAE_URL=https://traefik.example.com
- MANTRAE_API_KEY=your-api-key
⚙️ Configuration Initiale
- Lancer Mantræ et accéder à
http://YOUR_HOST:8080. - Créer le compte admin au premier démarrage.
- Configurer un provider DNS (optionnel mais typique) : Cloudflare API token ou PowerDNS API.
- Configurer Traefik pour pointer sur
http://mantrae:8080/api/v1/traefik-config. - Créer un router depuis l'UI : Host, port backend, middlewares, DNS auto (si configuré).
- Créer un service (load balancer si multi-backend) ou laisser Mantræ le déduire du router.
- Attacher des middlewares (rate-limit, headers, etc.).
- Tester : un curl sur le host configuré doit renvoyer le service backend.
💡 Reset password oublié :
mantrae reset --password newpassword
🔄 Alternatives
Open Source
- app-traefik — UI native de Traefik (lecture seule)
- app-nginx-proxy-manager — concurrent direct sur l'idée (UI complète Nginx)
- app-pangolin — UI orientée tunnels/ressources, intègre Traefik
- app-middleware-manager — concurrent direct (focus middlewares)
- GloboDNS (DNS) — pas un proxy manager
- Portainer (Docker) — orienté containers, pas proxy
Propriétaires (ce que Mantræ remplace)
- Cloudflare Workers + Dashboard
- AWS API Gateway (en partie)
- Cloudflare Access (UI auth)
- Kong Manager EE (édition enterprise)
- Traefik Enterprise (abandonné)
Comparaison rapide
| Critère | Mantræ | Middleware Manager | Nginx Proxy Manager | Pangolin |
|---|---|---|---|---|
| Reverse proxy | Traefik | Traefik | Nginx | Traefik (managé) |
| Routers/Services UI | ✅ | Partiel | ✅ (Hosts) | ✅ (Resources) |
| Middlewares UI | ✅ | ✅ (full) | Partiel | Limité |
| DNS auto | ✅ (4 providers) | ❌ | ❌ | Partiel |
| Agent Docker | ✅ (mantraed) | ❌ | ❌ | ❌ |
| Licence | MIT | MIT | MIT | Custom |
| Stabilité | ⚠️ (v0.8, dev → Tether) | ✅ (v4.5) | ✅ (v2.x) | ✅ |
Verdict : Mantræ pour qui veut DNS auto + UI Traefik native + agent Docker dans un seul outil. Middleware Manager pour qui veut la gestion de middlewares la plus complète. Nginx Proxy Manager pour la stabilité long terme sur Nginx. Pangolin pour la couche tunnels + auth au-dessus.
⚠️ À surveiller : la transition vers Tether est en cours. Pour un nouveau projet, vérifier l'état de Tether vs Mantræ avant de partir.
🔐 Sécurité
- Auth UI : user/password + sessions, obligatoire
- API key
mantraed: rotation possible depuis l'UI Mantræ - Bind sur localhost ou derrière reverse proxy HTTPS : ne pas exposer le port 8080 directement
- DNS provider tokens : scope minimum (Zone:DNS:Edit par exemple sur Cloudflare, pas Global API Key)
- Permissions
./data:chmod 700, backups réguliers (DB SQLite) - ⚠️ Mantræ écrit la config dynamique : un attaquant qui compromet l'UI peut rediriger tout le trafic → 2FA recommandé + restriction IP sur l'UI
- HTTPS obligatoire : l'UI contient des secrets (API keys DNS)
- Agent
mantraedenrosur le Docker socket : limiter la surface d'attaque
📚 Ressources
- Documentation Mantræ
- GitHub MizuchiLabs/mantrae
- Discussion : transition vers Tether
- Repo Tether (successeur)
- Reddit r/selfhosted: Traefik UI
- Sponsor @d34dscene sur Ko-fi
Pages Liées
- cat-reverse-proxy — Catégorie Reverse Proxy
- app-traefik — Le reverse proxy sous-jacent
- app-middleware-manager — Concurrent direct (HHF Technology)
- app-pangolin — Voisin (tunnels + auth)
- comparatif-reverse-proxy — Comparaison détaillée
- dns-automation — Concepts DNS-as-code