🚀 Déploiement de Traefik avec Docker Compose¶
Traefik est un reverse proxy moderne qui gère automatiquement les certificats SSL avec Let's Encrypt.
📂 Structure du projet¶
.
├── docker-compose.yml
├── certs
│ └── acme.json # Stockage des certificats SSL Let's Encrypt
├── conf.d
│ └── <templates_services> # Configuration des services Traefik
└── README.md
1️⃣ Préparation du fichier acme.json¶
Ce fichier va stocker les certificats SSL générés par Let's Encrypt.
touch certs/acme.json
chmod 600 certs/acme.json
Il doit être vide au départ et sécurisé.
2️⃣ Configuration du fichier docker-compose.yml¶
version: '3.7'
services:
traefik:
image: traefik:latest
container_name: traefik
restart: always
ports:
- "80:80" # HTTP
- "443:443" # HTTPS
- "8080:8080" # Dashboard Traefik (interface d’administration)
volumes:
- ./certs/acme.json:/acme.json
- ./conf.d:/etc/traefik/conf.d
command:
- "--global.sendAnonymousUsage"
- "--log.level=INFO"
- "--accesslog=true"
- "--api.insecure=true"
- "--api.dashboard=true"
- "--providers.file.directory=/etc/traefik/conf.d/"
- "--providers.file.watch=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.email=ukakiko@home-cody.fr"
- "--certificatesresolvers.myresolver.acme.storage=/acme.json"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
3️⃣ Exemple de configuration pour un service (conf.d/myapp.toml)¶
[http.routers.myapp]
entryPoints = ["websecure"]
rule = "Host(`myapp.home-cody.fr`)"
service = "myapp"
[http.routers.myapp.tls]
certResolver = "myresolver"
[http.routers.myapp-redirect]
entryPoints = ["web"]
rule = "Host(`myapp.home-cody.fr`)"
middlewares = ["redirect-to-https"]
service = "noop"
[http.middlewares.redirect-to-https.redirectScheme]
scheme = "https"
permanent = true
[http.services.myapp.loadBalancer]
[[http.services.myapp.loadBalancer.servers]]
url = "http://<IP>:<PORT>"
[http.services.noop.loadBalancer]
[[http.services.noop.loadBalancer.servers]]
url = "http://127.0.0.1"
Important : Remplacez
<IP>et<PORT>par l’adresse IP et le port réels de votre service.
4️⃣ Démarrer Traefik avec Docker Compose¶
docker-compose up -d
Traefik démarre en arrière-plan et commence à gérer les certificats SSL.
5️⃣ Vérification¶
Accédez au tableau de bord Traefik (non sécurisé par défaut) :
http://<votre-serveur>:8080
Vous pouvez y vérifier que vos services sont bien configurés et que les certificats SSL sont générés.
📝 Résumé¶
- Créez un fichier
acme.jsonvide et sécurisé pour les certificats. - Configurez Traefik via
docker-compose.ymlavec la résolution automatique des certificats. - Ajoutez la configuration spécifique de chaque service dans le dossier
conf.d/. - Lancez Traefik et vérifiez son état via le dashboard.