Page cover

Traefik

Cette documentation vous guide à travers l'installation et la configuration de Traefik sur votre serveur, en expliquant comment utiliser Traefik pour appliquer un certificat SSL à une URL de conteneur

Qu'est-ce que Traefik?

Traefik est un reverse proxy et un load balancer moderne conçu pour les microservices. Il est particulièrement bien adapté aux environnements dynamiques tels que Kubernetes, Docker, grâce à son intégration native avec ces plateformes. Traefik offre des fonctionnalités avancées comme le support du HTTP/2, des certificats SSL automatisés via Let's Encrypt ou d'autres fournisseurs, et une configuration dynamique basée sur des labels ou des annotations.

Prérequis

  • Un serveur avec Docker installé.

  • Accès à un domaine et capacité à modifier ses enregistrements DNS.

Déploiement (Facultatif)

Vous pouvez déployer Traefik de différentes manières, notamment via Docker Compose, Kubernetes, ou directement avec un fichier de configuration Traefik. Pour cette documentation, nous utiliserons Docker Compose.

Étapes d'installation

Créer un réseau Docker

docker network create traefik

Création du fichierdocker-compose.yml

version: "3.7"

services:
  traefik:
    image: traefik:3.0.1
    container_name: traefik
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      #Monte le socket Docker pour que Traefik puisse interagir avec l'API
      - "/var/run/docker.sock:/var/run/docker.sock:ro" 
      # Monte le fichier de configuration principal de Traefik en lecture seule
      - "/var/volume/traefik/config/traefik.yaml:/etc/traefik/traefik.yaml:ro"
      # Monte le répertoire local contenant des configurations supplémentaires
      - "/var/volume/traefik/config/conf/:/etc/traefik/conf/"
      # Monte le répertoire local contenant des certificats supplémentaires
      - "/var/volume/traefik/config/certs/:/etc/traefik/certs/"    
    networks:
      # Définit le réseau Docker auxquel le conteneur doit être connecté.
      - traefik
    environment:
      # Définit la variable d'environnement pour le conteneur
      - CF_DNS_API_TOKEN=$CF_DNS_API_TOKEN

# Section définissant les réseaux utilisés par les services
networks:
  traefik:
    external: true

Création du fichier de configuration

Editer le ficher ou créer le fichier qui se trouve dans "/var/volume/traefik/config/traefik.yaml" ou dans un autre répertoire en fonction de votre configuration.

Cette configuration de Traefik est commentée afin d'expliquer chaque paramètre, ce qui aide à comprendre le rôle de chaque ligne dans la configuration de Traefik.

Démarrer Traefik

Utilisation pour appliquer le certificat SSL sur une URL de conteneur

Pour appliquer un certificat SSL à un conteneur spécifique, vous pouvez utiliser des labels dans le fichier docker-compose.yml de votre service Docker. Voici un exemple de configuration pour un conteneur watchtower:

Dans cet exemple, les labels de Docker sont utilisés pour configurer les routers HTTP et HTTPS pour le conteneur watchtower. Les labels expliquent à Traefik comment router le trafic et appliquer le certificat SSL via le resolver Cloudflare.

Mis à jour