--- title: Middleware Manager created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, reverse-proxy, traefik, middleware, ui, go, pangolin] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://github.com/hhftechnology/middleware-manager] --- # 🚦 Middleware Manager > **Web UI pour attacher, configurer et orchestrer les middlewares Traefik sans toucher au YAML**. Édition visuelle des middlewares, gestion de services custom, installation de plugins, mTLS. Compatible **Pangolin** et **Traefik standalone**. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [docs.pangolin.net/.../middlewaremanager](https://docs.pangolin.net/self-host/community-guides/middlewaremanager) | | **GitHub** | [hhftechnology/middleware-manager](https://github.com/hhftechnology/middleware-manager) | | **License** | MIT | | **Langage** | Go (64.3 %), TypeScript (35.2 %) | | **Étoiles GitHub** | 498 ⭐ | | **Dernière MAJ** | 2026-03-24 (v4.5.0) | | **Catégorie** | [[cat-reverse-proxy|Reverse Proxy]], UI, Traefik, Middleware | ## 📝 Description **Middleware Manager** (par HHF Technology, mêmes éditeurs que Traefik Log Dashboard) est un **microservice qui génère la configuration dynamique de Traefik** à partir d'une interface web. Il résout la douleur classique de Traefik : **les middlewares sont puissants mais syntaxiquement pénibles** à écrire en YAML/TOML/labels Docker. Middleware Manager offre une **UI avec formulaires** pour créer des middlewares (auth, rate-limit, headers, redirect, stripPrefix, etc.), les attacher à des ressources (routers, services), et **génère le dynamic config** consommé par Traefik. **Caractéristiques principales** : - ✅ **Découverte automatique** des ressources depuis **Pangolin** ou **Traefik** (API) - ✅ **Création de middlewares** : rate-limit, basicauth, headers, redirect, stripPrefix, retry, compress, ipWhiteList, etc. - ✅ **Templates de middlewares** réutilisables avec **priorités** configurables - ✅ **Custom services** : load balancer, weighted, mirroring, failover - ✅ **Plugin manager** : installer/retirer des plugins Traefik depuis l'UI (écrit dans le static config) - ✅ **mTLS** : activation et configuration via le plugin `mtlswhitelist` par ressource - ✅ **Explorer Traefik** : inspecter routers/services/middlewares en lecture - ✅ **Override sécurisé** : ne modifie pas les ressources existantes, ajoute des middlewares - ✅ **Compatible Traefik v2 et v3** **Public cible** : utilisateurs de **Traefik** qui veulent **une UI à la Nginx Proxy Manager** mais en restant sur Traefik. Particulièrement adapté à **Pangolin** (le couple est documenté officiellement) pour ajouter de la finesse sur les middlewares sans passer par les labels Docker manuels. ## 🚀 Installation ### Variante A : avec Pangolin (recommandé si vous utilisez Pangolin) ```yaml # docker-compose.yml version: '3.8' services: middleware-manager: image: hhftechnology/middleware-manager:latest container_name: middleware-manager restart: unless-stopped volumes: - ./data:/data # base SQLite - ./config/middleware-manager:/app/config # config interne - ./config/traefik:/etc/traefik # MÊME chemin que le static config Traefik environment: - ACTIVE_DATA_SOURCE=pangolin - PANGOLIN_API_URL=http://pangolin:3001/api/v1 - TRAEFIK_STATIC_CONFIG_PATH=/etc/traefik/traefik_config.yml - TRAEFIK_CONF_DIR=/conf - DB_PATH=/data/middleware.db - PORT=3456 ports: - "3456:3456" networks: - proxy networks: proxy: external: true ``` ### Variante B : avec Traefik standalone (sans Pangolin) ```yaml # docker-compose.yml version: '3.8' services: middleware-manager: image: hhftechnology/middleware-manager:latest container_name: middleware-manager restart: unless-stopped volumes: - ./data:/data - ./traefik_config/static:/etc/traefik - ./config:/app/config environment: - ACTIVE_DATA_SOURCE=traefik - TRAEFIK_API_URL=http://traefik:8080 - TRAEFIK_CONF_DIR=/conf - TRAEFIK_STATIC_CONFIG_PATH=/etc/traefik/traefik.yml - DB_PATH=/data/middleware.db - PORT=3456 ports: - "3456:3456" networks: - proxy networks: proxy: external: true ``` ### Variante Traefik (exposer l'UI derrière Traefik) ```yaml # ajout au bloc ci-dessus labels: - "traefik.enable=true" - "traefik.docker.network=proxy" - "traefik.http.routers.mm.rule=Host(`traefik-ui.example.com`)" - "traefik.http.routers.mm.entrypoints=websecure" - "traefik.http.routers.mm.tls.certresolver=letsencrypt" - "traefik.http.services.mm.loadbalancer.server.port=3456" - "traefik.http.routers.mm.middlewares=auth@docker" ``` ### Configuration Traefik (statique) pour autoriser Middleware Manager ```yaml # traefik.yml (statique) providers: http: endpoint: "http://middleware-manager:3456/api/v1/traefik-config" pollInterval: 5s ``` > ⚠️ **Important** : ce provider http **remplace** celui de Pangolin s'il existait. Il faut que `middleware-manager` soit en mesure de **lire et écrire** la config dynamique. ## ⚙️ Configuration Initiale 1. **Lancer le conteneur** et vérifier la connexion à l'API Traefik/Pangolin (logs). 2. **Accéder à l'UI** : `http://YOUR_HOST:3456` (ou `https://traefik-ui.example.com`). 3. **Créer un compte admin** depuis l'UI (1er démarrage). 4. **Importer les middlewares existants** (découverte automatique, ou créer depuis zéro). 5. **Créer un middleware** : menu "Middlewares" → type (rate-limit, headers, etc.) → paramètres. 6. **L'attacher à une ressource** : menu "Resources" → choisir le router → ajouter le middleware. 7. **Vérifier** dans le dashboard Traefik (`:8080/api/http/routers`) que le middleware est appliqué. > 💡 **Astuce** : en cas de problème de résolution DNS du conteneur `middleware-manager`, utiliser son IP directement : > `docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' middleware-manager` ## 🔄 Alternatives ### Open Source - [[app-traefik]] — UI native Traefik (lecture seule, basique) - [[app-nginx-proxy-manager]] — UI complète, mais pour Nginx (pas Traefik) - [[app-pangolin]] — UI pour la gestion tunnels/resources (couche au-dessus de Traefik) - **Traefik Pilot** (abandonné) - **Kopia**, **Heimdall** — dashboards mais pas de gestion de config - Édition manuelle YAML + GitOps (ArgoCD, Flux) — l'approche "pro" ### Propriétaires (ce que Middleware Manager remplace) - **Traefik Enterprise / Maesh** (payant, abonné) - **Cloudflare Workers + KV** (config-as-code) - **Kong Manager** (édition EE) - **Ambassador Edge Stack** (config managée) ### Comparaison rapide | Critère | Middleware Manager | Nginx Proxy Manager | Traefik natif | Pangolin | | :--- | :--- | :--- | :--- | :--- | | Reverse proxy | Traefik | Nginx | Traefik | Traefik (managé) | | Middlewares UI | ✅ Complet | Partiel (basicauth, custom) | ❌ (YAML) | Limité (auth, resources) | | Plugins Traefik | ✅ Install UI | ❌ | ❌ | ❌ | | mTLS UI | ✅ | ❌ | ❌ | ❌ | | Custom services | ✅ | ❌ | ✅ (YAML) | ❌ | | License | MIT | MIT | MIT | Custom | **Verdict** : **Middleware Manager** pour les power users Traefik qui veulent **une vraie UI** sans abandonner Traefik. **Nginx Proxy Manager** pour qui veut la simplicité Nginx. **Pangolin** pour qui veut une couche d'orchestration tunnels + auth au-dessus de Traefik (peut coexister avec Middleware Manager). ## 🔐 Sécurité - **Auth sur l'UI Middleware Manager** : OBLIGATOIRE, ne jamais l'exposer sans - **Permissions sur `./config/traefik`** : le conteneur doit pouvoir **lire ET écrire** le static config (pour les plugins) - **DB SQLite** dans `./data` : `chmod 700`, sauvegarder régulièrement - **API key API Traefik** : ne pas exposer le port 8080 Traefik en direct (uniquement via Traefik lui-même) - ⚠️ **Override middleware** : mal configuré, peut casser l'accès à un service → **tester toujours sur un service non-critique d'abord** - **HTTPS obligatoire** en production (Traefik devant) : l'UI manipule des secrets - **Pas d'audit log** natif sur les modifications : activer les logs Traefik (au moins les access logs) ## 📚 Ressources - [Documentation officielle Pangolin](https://docs.pangolin.net/self-host/community-guides/middlewaremanager) - [GitHub HHF Technology](https://github.com/hhftechnology/middleware-manager) - [Discussions / release notes](https://github.com/hhftechnology/middleware-manager/discussions) - [Forum HHF Technology](https://forum.hhf.technology/tag/middleware-manager/315) - [Docker Hub](https://hub.docker.com/r/hhftechnology/middleware-manager) ## Pages Liées - [[cat-reverse-proxy]] — Catégorie Reverse Proxy - [[app-traefik]] — Le reverse proxy sous-jacent - [[app-pangolin]] — Partenaire naturel (Pangolin + Middleware Manager) - [[app-nginx-proxy-manager]] — Concurrente UI pour Nginx - [[comparatif-reverse-proxy]] — Comparaison détaillée - [[middleware-traefik]] — Concepts middlewares