Files
wiki/Catalogue-Self-Hosted/apps/app-middleware-manager.md
2026-06-09 18:40:21 +02:00

9.1 KiB


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
GitHub 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

📝 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)

# 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)

# 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)

# 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

# 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

Pages Liées