Moderniser mon infrastructure Docker et simplifier la gestion des services
Contexte
Dans le cadre de mes projets, j’héberge plusieurs applications web sur mon serveur VPS :
applications React / Next.js
API Spring Boot
services Node.js
bases de données conteneurisées
Tous ces services sont déployés avec Docker et Docker Compose.
Au départ, j’utilisais Nginx comme reverse proxy afin d’exposer les différents services via des sous-domaines.
Par exemple :
kassbrick.adelinemeistertzheim.fr
apikassbrick.adelinemeistertzheim.fr
tetris.adelinemeistertzheim.fr
Cette architecture fonctionnait bien, mais au fur et à mesure que mes projets se multipliaient, la gestion devenait de plus en plus lourde.
Chaque nouveau service nécessitait :
créer une configuration Nginx
gérer les certificats SSL
redémarrer le reverse proxy
maintenir les fichiers de configuration
Je me suis donc intéressée à Traefik, un reverse proxy moderne conçu pour les environnements conteneurisés.
Pourquoi Traefik ?
Traefik est un reverse proxy dynamique pensé pour les architectures modernes :
microservices
Docker
Kubernetes
cloud-native
Sa principale différence avec Nginx est qu’il découvre automatiquement les services.
Au lieu de créer des fichiers de configuration manuellement, Traefik lit directement les informations présentes dans Docker.
La configuration se fait simplement via des labels Docker.
Architecture avant Traefik
Avant la migration, mon architecture ressemblait à ceci :

Pour chaque service, il fallait :
créer un fichier dans
sites-availablecréer un lien vers
sites-enabledgérer le certificat SSL
recharger Nginx
Cela reste une solution robuste, mais peu adaptée à un environnement Docker dynamique.
Architecture avec Traefik
Après migration vers Traefik :

Traefik surveille directement Docker et détecte les services exposés.
Lorsqu’un nouveau conteneur démarre :
1. Traefik le détecte automatiquement
2. il configure la route
3. il génère le certificat SSL
Exemple de configuration Docker
Voici un exemple de configuration Traefik dans mon docker-compose.yml.
Service Traefik
services:
traefik:
image: traefik:v3.0
container_name: traefik
command:
- "--api.dashboard=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Traefik surveille Docker via le socket :
Exposer un service avec Traefik
Pour exposer une application, il suffit d’ajouter des labels Docker.
Exemple pour une API :
services:
api:
image: mon-api
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`api.mondomaine.fr`)"
- "traefik.http.routers.api.entrypoints=websecure"
Traefik crée automatiquement :
la route
le reverse proxy
le certificat SSL
Aucune configuration serveur n’est nécessaire.
Gestion automatique du SSL
Traefik peut gérer automatiquement Let’s Encrypt.
Cela signifie :
génération automatique des certificats
renouvellement automatique
HTTPS par défaut
Exemple de configuration :
--certificatesresolvers.letsencrypt.acme.email=contact@mondomaine.fr
--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
--certificatesresolvers.letsencrypt.acme.httpchallenge=true
Cela simplifie énormément la gestion des domaines.
Les avantages que j’ai observés
1. Infrastructure plus simple
Avec Traefik, la configuration est :
centralisée
dynamique
liée directement aux conteneurs
Cela réduit fortement la complexité.
2. Déploiement plus rapide
Ajouter un service devient très simple :
créer le conteneur
ajouter les labels
lancer Docker
Traefik configure automatiquement la route.
3. Moins de maintenance
Plus besoin de :
modifier les fichiers Nginx
redémarrer le reverse proxy
gérer manuellement les certificats
4. Adapté aux architectures modernes
Traefik est particulièrement adapté pour :
Docker
microservices
environnements cloud
C’est donc un outil parfaitement aligné avec les pratiques DevOps modernes.
Ce que j’ai appris avec cette mise en place
La mise en place de Traefik m’a permis de renforcer mes compétences dans plusieurs domaines :
DevOps
reverse proxy
gestion du SSL
architecture de déploiement
Docker
gestion des réseaux
configuration dynamique
orchestration avec Docker Compose
Infrastructure web
gestion des domaines
sécurisation des services
exposition d’API
Conclusion
Traefik s’est révélé être une solution extrêmement efficace pour gérer un environnement basé sur Docker.
Même si Nginx reste une référence solide, Traefik apporte une approche plus moderne et mieux adaptée aux architectures conteneurisées.
Cette expérience m’a permis :
d’améliorer mon infrastructure personnelle
de simplifier le déploiement de mes applications
d’approfondir mes compétences en DevOps et déploiement d’applications web
