[{"data":1,"prerenderedAt":220},["ShallowReactive",2],{"seo-verification":3,"blog-choisir-reverse-proxy-vps-caddy-traefik-nginx-ma-fr":6,"promo-bar-likely":219},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-choisir-reverse-proxy-vps-caddy-traefik-nginx-ma-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":159,"ctaBody":160,"ctaButton":161,"ctaUrl":162,"relatedPosts":163},227,"choisir-reverse-proxy-vps-caddy-traefik-nginx",{"fr":10,"en":12,"ar":13,"es":14},"caddy-traefik-or-nginx-proxy-manager-which-to-choose","caddy-أم-traefik-أم-nginx-proxy-manager-أيهما-تختار","elegir-reverse-proxy-vps-caddy-traefik-nginx","Caddy, Traefik ou Nginx Proxy Manager : lequel choisir ?","Guide de choix entre Caddy, Traefik et Nginx Proxy Manager pour self-hosters Docker sur VPS. Critères, tableau comparatif et recommandations par profil.",10,6,false,"2026-08-06T00:00:00+00:00","2026-11-08T01:13:15+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},5,"Comparatif","comparatif","bg-info\u002F10 text-info",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fchoisir-reverse-proxy-vps-caddy-traefik-nginx-poster.svg","Vous hébergez plusieurs applications Docker sur un VPS et vous devez exposer chacune sur HTTPS avec un nom de domaine distinct. Un reverse proxy est la pièce centrale de cette architecture : il reçoit tout le trafic entrant sur les ports 80 et 443, gère les certificats TLS et l'achemine vers le bon conteneur. Caddy, Traefik et Nginx Proxy Manager sont les trois solutions les plus populaires — ce guide vous aide à choisir celle qui correspond à votre profil.",[34,38,47,50,96,99,121,124,139,142,145,148,156],{"type":35,"title":36,"body":37},"h2","Pourquoi un reverse proxy est indispensable avec Docker","Par défaut, chaque conteneur Docker écoute sur un port arbitraire : votre Nextcloud est sur le port 8080, votre Gitea sur le 3000, votre Vaultwarden sur le 8200. Impossible d'exposer directement une dizaine de ports en production — une URL avec numéro de port est peu pratique pour vos visiteurs, les certificats TLS couvrent des noms de domaine et non des ports, et votre pare-feu doit rester fermé sur tout sauf 80 et 443. Le reverse proxy résout ces trois problèmes d'un coup : il devient le seul point d'entrée public, route le trafic selon le nom d'hôte ou le chemin, et prend en charge la terminaison TLS. Résultat : `app1.votre-domaine.com` et `app2.votre-domaine.com` pointent toutes les deux sur le port 443 de votre VPS, et le proxy sait vers quel conteneur renvoyer chaque requête. Sans ce mécanisme, vous seriez contraint de gérer manuellement les certificats Let's Encrypt, d'ouvrir de multiples ports et de complexifier considérablement votre pare-feu.",{"type":39,"title":40,"items":41},"ul","Ce qu'un reverse proxy vous apporte concrètement",[42,43,44,45,46],"**Terminaison TLS centralisée** — un seul outil obtient et renouvelle les certificats Let's Encrypt pour tous vos domaines automatiquement","**Routage par nom d'hôte** — `git.votre-domaine.com` va vers Gitea, `cloud.votre-domaine.com` va vers Nextcloud sans aucun conflit de port","**Pare-feu simplifié** — seuls les ports 80 et 443 sont ouverts au public, tous les ports internes Docker restent inaccessibles de l'extérieur","**Redirection HTTP → HTTPS automatique** — tout le trafic non chiffré est redirigé de façon permanente (301 ou 308 selon l'outil) sans configuration manuelle dans chaque application","**Observabilité centralisée** — les logs d'accès et d'erreur de toutes vos applications sont agrégés en un seul endroit pour faciliter le débogage",{"type":35,"title":48,"body":49},"Prérequis communs aux trois solutions","Avant de choisir et installer l'un de ces trois proxies, assurez-vous que votre VPS remplit quelques conditions de base. Docker et Docker Compose doivent être installés (version Compose V2 recommandée, soit la commande `docker compose` sans trait d'union). Vos enregistrements DNS doivent pointer vers l'IP publique de votre VPS avant de lancer la demande de certificat — Let's Encrypt vérifie le DNS lors de la validation HTTP-01, et une erreur à ce stade peut déclencher un rate limit qui bloque vos tentatives pendant environ une heure. Les ports 80 et 443 de votre VPS doivent être libres : vérifiez avec `ss -tlnp | grep -E ':80|:443'` qu'aucun autre service n'occupe déjà ces ports. Enfin, créez un réseau Docker dédié pour votre proxy — `docker network create proxy` — que vous attacherez à chaque conteneur que le proxy devra joindre.",{"type":51,"title":52,"headers":53,"rows":58},"comparison","Tableau comparatif : Caddy vs Traefik vs Nginx Proxy Manager",[54,55,56,57],"Critère","Caddy","Traefik","Nginx Proxy Manager",[59,63,68,73,78,82,87,91],[60,61,62,61],"Facilité d'installation","⭐⭐⭐⭐⭐ Très simple","⭐⭐⭐ Moyenne",[64,65,66,67],"TLS automatique (Let's Encrypt)","✅ Natif, zéro config","✅ Via ACME","✅ Via interface web",[69,70,71,72],"Intégration Docker","Manuelle (labels ou config)","✅ Labels natifs","✅ Via GUI",[74,75,76,77],"Méthode de configuration","Fichier Caddyfile lisible","Labels Docker + YAML","Interface web graphique",[79,80,81,81],"Rechargement sans coupure","✅ Via `caddy reload`","✅ Automatique",[83,84,85,86],"Interface web\u002Fdashboard","❌ Non","✅ Dashboard inclus","✅ Interface complète",[88,89,89,90],"Consommation mémoire","Faible (binaire Go unique)","Plus élevée (Nginx + application Node.js)",[92,93,94,95],"Idéal pour","Projets solo\u002Fpetites équipes","Microservices, CI\u002FCD","Débutants, équipes mixtes",{"type":35,"title":97,"body":98},"Caddy : la valeur par défaut pour la majorité des cas","Caddy s'est imposé comme le choix le plus simple pour les développeurs qui hébergent entre deux et dix applications sur un VPS. Sa philosophie est radicale : le TLS est activé par défaut pour tout domaine valide, sans aucune option à cocher ni variable à définir. Le fichier de configuration `Caddyfile` est intentionnellement lisible, proche de la langue naturelle, et peut tenir en une dizaine de lignes pour un cas d'usage courant. Caddy est écrit en Go et embarque son propre client ACME : il contacte Let's Encrypt directement, stocke les certificats dans son répertoire de données et les renouvelle automatiquement avant expiration. Contrairement à une installation Nginx classique, qui s'appuie le plus souvent sur certbot en service séparé, Caddy n'a aucune dépendance externe pour le TLS. Sa consommation mémoire reste modeste au repos, ce qui le rend parfaitement adapté aux VPS d'entrée de gamme avec 1 ou 2 Go de RAM. Le seul vrai défaut de Caddy : la découverte automatique des conteneurs Docker n'est pas native. Pour y remédier, on utilise soit le plugin `caddy-docker-proxy`, soit une configuration statique dans le Caddyfile.",{"type":100,"title":101,"steps":102},"steps","Déployer Caddy comme reverse proxy Docker",[103,106,109,112,115,118],{"title":104,"body":105},"Créer le réseau Docker partagé","Avant tout, créez le réseau que Caddy et vos applications partageront : `docker network create proxy`. Ce réseau isolé permet à Caddy de joindre vos conteneurs par leur nom sans exposer leurs ports sur l'hôte.",{"title":107,"body":108},"Écrire le Caddyfile","Créez un fichier `Caddyfile` à la racine de votre projet. Pour exposer une application sur `app.votre-domaine.com` vers un conteneur nommé `monapp` écoutant sur le port 3000 : `app.votre-domaine.com { reverse_proxy monapp:3000 }`. Caddy obtient le certificat automatiquement au premier démarrage.",{"title":110,"body":111},"Écrire le docker-compose.yml pour Caddy","Créez un `docker-compose.yml` avec le service Caddy : montez le `Caddyfile` en lecture seule (`.\u002FCaddyfile:\u002Fetc\u002Fcaddy\u002FCaddyfile:ro`), persistez les données TLS dans un volume nommé (`caddy_data:\u002Fdata`), publiez les ports 80 et 443, et attachez Caddy au réseau `proxy` en le déclarant comme réseau externe.",{"title":113,"body":114},"Attacher vos applications au réseau proxy","Dans le `docker-compose.yml` de chaque application, ajoutez le réseau `proxy` comme réseau externe et n'exposez plus les ports sur l'hôte (`expose` au lieu de `ports`). Caddy joindra le conteneur via le réseau interne Docker.",{"title":116,"body":117},"Démarrer et vérifier","Lancez Caddy avec `docker compose up -d`, puis suivez les logs avec `docker compose logs -f caddy`. Vous devriez voir `certificate obtained successfully` pour chaque domaine. Testez avec `curl -I https:\u002F\u002Fapp.votre-domaine.com`.",{"title":119,"body":120},"Ajouter une nouvelle application","Pour chaque nouvelle application, ajoutez un bloc dans le `Caddyfile`, rechargez Caddy sans coupure avec `docker exec caddy caddy reload --config \u002Fetc\u002Fcaddy\u002FCaddyfile`, et attachez le nouveau conteneur au réseau `proxy`.",{"type":35,"title":122,"body":123},"Traefik : quand choisir la découverte automatique","Traefik brille dans les contextes où le nombre de services change fréquemment : environnements de CI\u002FCD qui créent et détruisent des conteneurs à chaque déploiement, architectures microservices avec plus de cinq services indépendants, ou équipes où chaque développeur déploie ses propres stacks sans toucher à une configuration centralisée. Son mécanisme de découverte automatique via les labels Docker est son atout principal : quand vous démarrez un conteneur avec les bons labels (`traefik.http.routers.monapp.rule=Host(\"app.votre-domaine.com\")`), Traefik le détecte instantanément et crée la route sans que vous ayez à toucher à sa configuration. Traefik inclut également un dashboard web qui visualise en temps réel tous les routers, services et middlewares actifs. En revanche, la courbe d'apprentissage est plus raide : les middlewares, les entrypoints et la syntaxe des labels peuvent dérouter les débutants, et une faute de frappe dans un label peut rendre une application silencieusement inaccessible.",{"type":100,"title":125,"steps":126},"Déployer Traefik avec découverte Docker automatique",[127,130,133,136],{"title":128,"body":129},"Créer le fichier de configuration statique","Créez `traefik.yml` avec les entrypoints (`web` sur le port 80, `websecure` sur le 443), activez le provider Docker (`docker: { exposedByDefault: false }`), configurez le resolver ACME avec votre adresse e-mail pour Let's Encrypt, et activez le dashboard en mode sécurisé.",{"title":131,"body":132},"Lancer Traefik avec Docker Compose","Dans le `docker-compose.yml` de Traefik, montez le socket Docker en lecture seule (`\u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro`), montez `traefik.yml`, persistez les certificats dans un volume, et publiez les ports 80 et 443. Démarrez avec `docker compose up -d`.",{"title":134,"body":135},"Annoter vos conteneurs avec des labels","Sur chaque service à exposer, ajoutez les labels Traefik : `traefik.enable=true`, le rule du router (`traefik.http.routers.monapp.rule=Host(\"app.votre-domaine.com\")`), l'entrypoint (`websecure`), le resolver TLS et le port interne du service.",{"title":137,"body":138},"Vérifier dans le dashboard","Accédez au dashboard Traefik (port 8080 publié sur `127.0.0.1` uniquement, ou via un sous-domaine protégé par authentification) et vérifiez que votre router apparaît en vert, sans erreur. Si le router est absent, vérifiez que le label `traefik.enable=true` est présent.",{"type":140,"body":141},"tip","Sécurité critique : ne montez jamais le socket Docker (`\u002Fvar\u002Frun\u002Fdocker.sock`) sans restriction dans un environnement multi-utilisateurs — quiconque peut écrire dans ce socket peut prendre le contrôle total de l'hôte. Le montage en lecture seule (`ro`) ne suffit pas : il protège le fichier du socket, pas l'API Docker. En production, placez un proxy de socket comme `docker-socket-proxy` entre Traefik et le démon, limité aux appels en lecture. Appliquez également un middleware d'authentification basique sur le dashboard Traefik avant de l'exposer publiquement.",{"type":35,"title":143,"body":144},"Nginx Proxy Manager : l'option sans fichier de configuration","Nginx Proxy Manager (NPM) est le choix évident pour quiconque est mal à l'aise avec les fichiers de configuration en ligne de commande. Son interface web permet de créer un hôte proxy en quelques clics : vous entrez le nom de domaine, l'adresse du conteneur cible, cochez « Force SSL » et « HTTP\u002F2 Support », cliquez sur « Save » — c'est tout. NPM gère le reste, y compris la demande de certificat Let's Encrypt. L'interface permet également de gérer plusieurs utilisateurs avec des droits différents, d'ajouter des listes de contrôle d'accès et de configurer des redirections. En revanche, NPM fait tourner, en plus de Nginx, une application Node.js et une base de données pour stocker sa configuration (SQLite par défaut, MariaDB ou MySQL en option), ce qui le rend plus gourmand en mémoire que Caddy. NPM convient parfaitement aux équipes mixtes techniques\u002Fnon-techniques ou aux contextes où d'autres personnes que le sysadmin principal doivent gérer des domaines.",{"type":35,"title":146,"body":147},"Dépannage : les erreurs les plus fréquentes","La majorité des problèmes rencontrés appartient à quatre catégories. Premièrement, les rate limits Let's Encrypt : si vous relancez votre stack plusieurs fois en test avec le même domaine, vous pouvez épuiser la limite de cinq certificats pour le même ensemble de noms sur sept jours. Solution : utilisez l'environnement de staging Let's Encrypt (`acme_ca https:\u002F\u002Facme-staging-v02.api.letsencrypt.org\u002Fdirectory` dans Caddy) pour vos tests. Deuxièmement, les conflits de ports : si le port 80 ou 443 est déjà occupé par Apache ou Nginx de l'hôte, le proxy Docker ne démarrera pas. Identifiez le processus avec `ss -tlnp | grep :80`. Troisièmement, les erreurs de réseau Docker : vérifiez que le proxy et le conteneur cible sont sur le même réseau avec `docker network inspect proxy`. Quatrièmement, pour Traefik, les fautes de frappe dans les labels — activez les logs en mode DEBUG (`log: { level: DEBUG }` dans `traefik.yml`, ou `--log.level=DEBUG` si Traefik est configuré en ligne de commande).",{"type":39,"title":149,"items":150},"Récapitulatif : quel proxy pour quel profil",[151,152,153,154,155],"**Développeur solo, 2 à 5 apps** — Caddy : configuration minimale, TLS automatique, démarrage en moins de dix minutes avec un Caddyfile de quinze lignes","**Équipe DevOps, microservices, CI\u002FCD** — Traefik : découverte automatique via labels, dashboard de supervision, parfait quand le nombre de services varie dynamiquement","**Utilisateur non-technique ou équipe mixte** — Nginx Proxy Manager : interface graphique intuitive, aucun fichier à éditer, gestion multi-utilisateurs intégrée","**VPS avec peu de RAM (512 Mo à 1 Go)** — Caddy ou Traefik : évitez NPM, qui fait tourner Nginx et une application Node.js et consomme davantage de mémoire","**Migration progressive depuis Nginx** — Caddy : sa syntaxe s'apprend en une heure et il peut cohabiter temporairement avec Nginx sur des ports différents",{"type":35,"title":157,"body":158},"Conclusion : commencez par Caddy, évoluez si nécessaire","Pour la très grande majorité des self-hosters qui gèrent quelques applications Docker sur un VPS, Caddy est le point de départ idéal : il est simple, léger, opinionné dans le bon sens et gère le TLS sans configuration supplémentaire. Si votre infrastructure grandit au-delà de cinq services avec des déploiements fréquents et automatisés, Traefik devient plus adapté grâce à sa découverte dynamique. Si vous devez déléguer la gestion des domaines à des personnes non-techniques, Nginx Proxy Manager est la seule option vraiment accessible.","Votre VPS prêt pour Docker en moins de 5 minutes","Les VPS ServOrbit sont livrés avec Docker préinstallé, une IP publique dédiée et un réseau 1 Gbps. Déployez Caddy, Traefik ou Nginx Proxy Manager immédiatement après la livraison, sans configuration réseau supplémentaire.","Découvrir les VPS ServOrbit","\u002Fsolutions\u002Fdeveloppeurs",[164,187,203],{"id":165,"slug":166,"slugs":167,"title":171,"excerpt":172,"readTime":173,"views":174,"isPinned":19,"noindex":19,"publishedAt":175,"updatedAt":176,"category":177,"categories":182,"featuredImage":29,"bgImage":30,"posterImage":184,"relatedSolution":185},39,"deployer-avec-caddy",{"fr":166,"en":168,"ar":169,"es":170},"deploy-your-applications-with-caddy-on-a-vps","انشر-تطبيقاتك-باستخدام-caddy-على-خادم-vps","desplegar-con-caddy","Caddy en reverse proxy sur VPS : guide complet","Installez et configurez Caddy comme reverse proxy sur votre VPS : HTTPS automatique Let's Encrypt, multi-apps, sécurité et dépannage des erreurs courantes.",8,4,"2026-05-12T00:00:00+00:00","2026-09-25T23:43:04+00:00",{"id":178,"name":179,"slug":180,"color":181,"icon":180},3,"Déploiement","deploiement","bg-success\u002F10 text-success",[183],{"id":178,"name":179,"slug":180,"color":181,"icon":180},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caddy-poster.svg",{"categorySlug":180,"appSlug":186},"caddy",{"id":188,"slug":189,"slugs":190,"title":194,"excerpt":195,"readTime":196,"views":178,"isPinned":19,"noindex":19,"publishedAt":197,"updatedAt":198,"category":199,"categories":200,"featuredImage":29,"bgImage":30,"posterImage":202,"relatedSolution":29},38,"deployer-avec-traefik",{"fr":189,"en":191,"ar":192,"es":193},"deploy-your-applications-with-traefik-on-a-vps","انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps","desplegar-con-traefik","Déployer vos applications avec Traefik sur un VPS","Déployez Traefik en reverse proxy sur votre VPS : routage automatique des conteneurs Docker, certificats SSL Let's Encrypt et load balancing.",11,"2026-05-13T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":178,"name":179,"slug":180,"color":181,"icon":180},[201],{"id":178,"name":179,"slug":180,"color":181,"icon":180},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-traefik-poster.svg",{"id":204,"slug":205,"slugs":206,"title":210,"excerpt":211,"readTime":17,"views":212,"isPinned":19,"noindex":19,"publishedAt":213,"updatedAt":214,"category":215,"categories":216,"featuredImage":29,"bgImage":30,"posterImage":218,"relatedSolution":29},37,"deployer-avec-nginx-proxy-manager",{"fr":205,"en":207,"ar":208,"es":209},"deploy-your-applications-with-nginx-proxy-manager-on-a-vps","انشر-تطبيقاتك-باستخدام-nginx-proxy-manager-على-خادم-vps","desplegar-con-nginx-proxy-manager","Déployer vos applications avec Nginx Proxy Manager sur un VPS","Gérez domaines, SSL et reverse proxy de plusieurs services sur un VPS avec Nginx Proxy Manager : installation, réseaux Docker, dépannage 502 et configuration avancée.",7,"2026-05-14T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":178,"name":179,"slug":180,"color":181,"icon":180},[217],{"id":178,"name":179,"slug":180,"color":181,"icon":180},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-nginx-proxy-manager-poster.svg",true,1794270679149]