Traefik ne se configure pas — il découvre vos conteneurs et leur donne du HTTPS sans que vous leviez le petit doigt
Traefik v3.7.0, publié le 5 mai 2026, pousse le reverse proxy à son aboutissement logique : il lit les labels de vos conteneurs Docker, provisionne leurs certificats Let’s Encrypt et route le trafic sans un fichier de configuration statique. Si Nginx Proxy Manager vous a mis le pied à l’étrier, Traefik est l’étape d’après — celle où vous arrêtez de configurer votre reverse proxy pour le laisser découvrir vos services tout seul.
Mai 2026, Traefik publie sa v3.7.0 avec 64 000 étoiles GitHub et une philosophie inchangée depuis sa création par Emile Vauge en 2015 : un reverse proxy ne devrait pas avoir besoin d’être configuré. Il devrait découvrir les services, provisionner leurs certificats et router le trafic pendant que vous, vous écrivez le docker-compose.yml du prochain conteneur. Juin 2026, les releases s’enchaînent au rythme d’une par semaine — v3.7.3, v3.7.4, v3.7.5 — et le message est clair : Traefik a gagné la bataille du reverse proxy cloud-native.
La plupart des homelabs commencent avec Nginx Proxy Manager — et c’est la bonne décision. NPM transforme la configuration d’un reverse proxy en trois champs et un clic, sans jamais toucher un fichier nginx.conf. Mais passé dix, quinze services, le modèle montre ses limites : chaque nouveau conteneur demande une visite dans l’interface d’administration, chaque changement de port une édition manuelle. Traefik prend le problème à l’envers : au lieu de déclarer les routes dans un outil central, il les lit directement sur les conteneurs qu’il doit proxyfier.
Un reverse proxy qui écoute Docker, pas un fichier de configuration
Le principe est simple et radical. Traefik se connecte au socket Docker (/var/run/docker.sock) et surveille les événements du démon : un conteneur démarre, il lit ses labels ; un conteneur s’arrête, il retire sa route. Aucun reload, aucun nginx -s reload, aucun fichier statique à maintenir. La configuration vit là où vit le service — dans le docker-compose.yml qui le définit.
Voici ce que ça donne pour exposer Whoogle derrière un sous-domaine avec certificat Let’s Encrypt automatique :
services:
whoogle:
image: benbusby/whoogle-search:latest
networks: [traefik]
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoogle.rule=Host(`search.votredomaine.fr`)"
- "traefik.http.routers.whoogle.entrypoints=websecure"
- "traefik.http.routers.whoogle.tls.certresolver=letsencrypt"
- "traefik.http.services.whoogle.loadbalancer.server.port=5000" Cinq labels. Pas de fichier de configuration Nginx, pas de formulaire d’administration, pas de reload. Vous faites docker compose up -d et trente secondes plus tard, search.votredomaine.fr répond en HTTPS avec un certificat valide. Supprimez le conteneur, la route disparaît. C’est le comportement que les orchestrateurs comme Kubernetes offrent nativement, ramené au niveau d’un simple hôte Docker.
L’installation : un compose qui ne bouge plus
Le cœur de Traefik tient dans trois fichiers : une configuration statique (traefik.yml), une configuration dynamique (dynamic.yml) et un docker-compose.yml. La configuration statique définit les entrypoints (ports 80 et 443), les providers (Docker, fichier) et les certificate resolvers (Let’s Encrypt). Elle ne change jamais une fois écrite.
# traefik.yml
api:
dashboard: true
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: true
websecure:
address: ":443"
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
network: traefik
file:
filename: /etc/traefik/config/dynamic.yml
watch: true
certificatesResolvers:
letsencrypt:
acme:
email: "[email protected]"
storage: /etc/traefik/acme.json
httpChallenge:
entryPoint: web Deux précautions critiques dans ce fichier. exposedByDefault: false empêche Traefik de router automatiquement tout conteneur sur le réseau — seuls ceux qui portent le label traefik.enable=true sont exposés. network: traefik restreint la découverte aux conteneurs explicitement attachés au réseau traefik : un conteneur isolé sur un autre réseau Docker est invisible pour le reverse proxy, ce qui limite la surface d’attaque.
Le docker-compose.yml de Traefik lui-même est minimal :
services:
traefik:
image: traefik:v3.7
container_name: traefik
networks: [traefik]
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/etc/traefik/traefik.yml:ro
- ./config:/etc/traefik/config:ro
- ./acme.json:/etc/traefik/acme.json
restart: unless-stopped
networks:
traefik:
external: true Une fois ce compose déployé, vous n’y touchez plus. Toute la configuration opérationnelle — les routes, les middlewares, les certificats — est pilotée par les labels des conteneurs applicatifs ou par le fichier dynamique.
Les middlewares : la chaîne de traitement qui remplace le nginx.conf
Là où Nginx Proxy Manager propose des cases à cocher (SSL, force SSL, block common exploits), Traefik expose un système de middlewares déclaratifs. Un middleware est une transformation appliquée à une requête avant qu’elle n’atteigne le service cible — et vous les chaînez comme des blocs Lego.
Voici les plus utiles pour un homelab :
- Rate limiting :
traefik.http.middlewares.ratelimit.ratelimit.average=100limite chaque IP à 100 requêtes par seconde. Essentiel devant une API exposée. - Basic Auth :
traefik.http.middlewares.auth.basicauth.users=admin:$2y$…protège le dashboard ou un service sans authentification native. - Headers :
traefik.http.middlewares.secureheaders.headers.sslredirect=trueajoute les en-têtes de sécurité manquants (HSTS, X-Frame-Options, Content-Security-Policy). - Redirect regex : redirige
/old-pathvers/new-path, redirigewwwvers le domaine nu, ou force une URL canonique. - IP whitelist :
traefik.http.middlewares.internalip.ipwhitelist.sourcerange=192.168.0.0/16restreint un service au réseau local. - Compression : active la compression gzip ou Brotli à la volée sur les réponses textuelles.
Chaque middleware se définit dans le fichier dynamic.yml ou directement en label Docker, puis s’attache à un routeur par son nom. La syntaxe est verbeuse — c’est le prix du mode déclaratif — mais elle est auto-documentée : six mois plus tard, vous relisez le label et vous savez exactement ce qu’il fait.
Traefik contre Nginx Proxy Manager : le bon outil au bon moment
Le tableau ci-dessous résume une comparaison qu’il faut lire comme une progression, pas comme un match.
Nginx Proxy Manager est le point d’entrée idéal. Traefik est l’étape suivante, celle où le nombre de services rend la gestion manuelle contre-productive. Le seuil se situe autour de dix conteneurs exposés : en dessous, NPM fait le travail sans friction ; au-dessus, Traefik transforme chaque nouveau service en trois labels au lieu d’une session de configuration.
La bonne nouvelle, c’est que les deux cohabitent parfaitement sur des entrypoints distincts. Vous pouvez migrer service par service, sans tout casser d’un coup.
Dashboard, métriques et observabilité
Traefik embarque un dashboard web qui affiche en temps réel l’état des routeurs, services et middlewares. Il n’est pas fait pour configurer — c’est un outil de diagnostic visuel. Activez-le en local, protégez-le par Basic Auth ou IP whitelist, et gardez-le pour les sessions de débogage.
Pour ceux qui poussent l’observabilité plus loin, Traefik expose nativement :
- Un endpoint Prometheus (
/metrics) qui publie le nombre de requêtes, les codes HTTP, les durées de réponse par service et par routeur. - Des traces OpenTelemetry pour suivre une requête de bout en bout à travers la chaîne de middlewares et les services backend.
- Des logs d’accès au format Apache combiné, pilotables en volume et en rotation.
Ces trois briques transforment Traefik en point central d’observation du trafic. Dans un homelab où cinq à vingt services se partagent les ports 80 et 443, savoir lequel génère des erreurs 502 en cascade ou sature le rate limiter devient précieux.
Les pièges à connaître avant de migrer
Le socket Docker est une surface d’attaque. Monter /var/run/docker.sock dans un conteneur donne à ce conteneur un accès root au démon Docker. En production, préférez le mode docker swarm ou un proxy de socket (docker-socket-proxy) qui filtre les appels API autorisés. Pour un homelab monoposte, le risque est acceptable tant que le conteneur Traefik est le seul à monter le socket et que le dashboard n’est pas exposé sur Internet sans authentification.
La syntaxe des labels est verbeuse. traefik.http.routers.monservice.middlewares=auth,ratelimit,secureheaders@file n’est pas aussi lisible qu’un fichier Caddyfile. Le contrepoint : cette verbosité est prévisible et scriptable. Une fois que vous avez écrit trois services avec Traefik, le quatrième est un copier-coller de labels dont vous changez le nom et le port.
Le TLS-ALPN-01 exige le port 443 accessible. Si votre FAI bloque le port 443 ou si vous êtes derrière un CGNAT, basculez sur le challenge DNS-01 — Traefik supporte une quarantaine de providers DNS (Cloudflare, OVH, Route 53) pour provisionner des certificats wildcard sans exposer le port 443.
Verdict
Prenez Nginx Proxy Manager si vous avez moins de dix services exposés et que vous voulez un reverse proxy qui se configure en trois clics. Prenez Traefik si vous dépassez régulièrement les dix conteneurs, si vous voulez que vos services s’enregistrent automatiquement auprès du reverse proxy, ou si vous avez besoin d’une chaîne de middlewares que vous versionnez dans un dépôt Git.
Traefik n’est pas plus compliqué que NPM — il est différent. Là où NPM centralise la configuration dans une interface, Traefik la distribue sur chaque conteneur. Le résultat est un reverse proxy que vous n’administrez plus : vous décrivez le service, il fait le reste. C’est la définition même du cloud-native, et ça marche aussi bien sur un Raspberry Pi que sur un cluster Kubernetes à cinquante nœuds.
Références
- Traefik v3.7.0 Release Notes — GitHub, 5 mai 2026
- Traefik as a Reverse Proxy for Docker — GnTech Blog, 9 mai 2026
- Nginx Proxy Manager vs Traefik (2026) — HomelabCompass, 2026
- Nginx Proxy Manager vs Traefik vs Caddy 2026 — Selfhostr, 28 mai 2026
- Traefik Official Documentation — traefik.io
- Nginx Proxy Manager donne un nom de domaine et du HTTPS à votre homelab en trois clics — ETTAYEB, 15 mai 2026