Article technique

Mise en place de Traefik sur mon VPS

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 :

  1. créer un fichier dans sites-available

  2. créer un lien vers sites-enabled

  3. gérer le certificat SSL

  4. 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 :

/var/run/docker.sock
 

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 :

  1. créer le conteneur

  2. ajouter les labels

  3. 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