Commit a7d355

2026-03-19 16:31:01 theophile: traduction et fin d'ébauche
/dev/null .. services%20hng/traefik.md
@@ 0,0 1,76 @@
+ # Traefik
+
+ **traefik** est notre reverse-proxy et émetteur de certificats Let's Encrypt.
+
+ ## Etiquettes (`labels`)
+
+ Pour ajouter la gestion traefik à un container, il nous faut:
+
+ - créer un réseau pour le service
+ - utiliser `expose` à la place de `ports` pour les ports ouverts du container.
+ - on ajouter `labels` qui lie le réseau docker,
+
+ ```yaml
+ networks:
+ - service
+ expose:
+ - 3001
+ labels:
+ - "traefik.enable=true" # Enable reverse-proxy for this service
+ - "traefik.docker.network=service" # The external docker network
+ - "traefik.http.routers.service.rule=Host(`service.happyngreen.fr`)" # The domain name.
+ - "traefik.http.routers.service.entrypoints=web"
+ - "traefik.http.routers.service.middlewares=redirect-to-https@docker"
+ - "traefik.http.routers.service-secure.rule=Host(`service.happyngreen.fr`)"
+ - "traefik.http.routers.service-secure.entrypoints=web-secure"
+ - "traefik.http.routers.service-secure.tls=true"
+ - "traefik.http.routers.service-secure.tls.certresolver=le" # The Let's Encrypt certificat type
+ - "traefik.http.routers.service-secure.service=service_name-secure"
+ - "traefik.http.services.service-secure.loadbalancer.server.port=3001" # The exposed port.
+
+ ```
+
+ > [!IMPORTANT]
+ > un router **traefik** peut avoir n'importe quel nom, y compris celui de service ou du réseau. `uptime-kuma`, `docker-uptime-kuma`, etc.
+
+ Une fois que votre `docker-compose.yml` est bon (volumes, port, network, container_name, etc), lancer le pour créer le network.
+ Alternativement, vous pouvez utiliser:
+
+ ```bash
+ docker network create service_name
+ ```
+
+ ## Réseau → Traefik
+
+ Pour chaque services docker compose, nous crééons un **réseau** (nommé d'après le service qui l'utilise) et nous l'ajoutons au `docker-compose.yml` de **traefik**, à deux endroits précis:
+
+ ```yaml
+ networks:
+ # → 1er endroit
+ traefik:
+ service:
+ name: service # ← le nom du réseau
+ external: true # externe car il est créer quand on lance le container
+ # etc...
+
+ services:
+ traefik:
+ # (...)
+ networks:
+ # → 2eme endroit
+ traefik:
+ service: # ← le nom du réseau
+ # etc...
+ ```
+
+ Ensuit, lancer la commandes suivantes pour relancer le container avec les nouveaux réseaus docker.
+
+ ```bash
+ docker compose up -d
+ ```
+
+ ## Troubleshooting
+
+ ### Retirer un certificat `le-stg`
+
+ Les certificats Let's Encrypt sont stocker dans `$CONFIG/cert/acme.json`. Vous pouvez retirer les retirer en supprimant les lignes concerné dans la section `le-stg`. Il faut ensuite redémarrer traefik → `docker compose restart`.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9