Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Traefik

Apprenez à utiliser Traefik comme proxy inverse et équilibreur de charge pour exposer votre instance LibreChat de manière sécurisée via HTTPS avec une gestion automatique des certificats SSL/TLS.

Traefik est un proxy inverse HTTP et un équilibreur de charge moderne qui facilite le déploiement et la gestion de vos services. Si vous exécutez LibreChat sur Docker, vous pouvez utiliser Traefik pour exposer votre instance de manière sécurisée via HTTPS avec une gestion automatique des certificats SSL.

Prérequis

  • Docker et Docker Compose installés sur votre système
  • Un nom de domaine pointant vers l'adresse IP de votre serveur

Configuration

Configurer Traefik et LibreChat

Dans votre fichier docker-compose.override.yml, ajoutez la configuration suivante :

version: '3'
 
services:
    api:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.librechat.rule=Host(`your.domain.name`)"
        - "traefik.http.routers.librechat.entrypoints=websecure"
        - "traefik.http.routers.librechat.tls.certresolver=leresolver"
        - "traefik.http.services.librechat.loadbalancer.server.port=3080"
      networks:
        - librechat_default
      volumes:
        - ./librechat.yaml:/app/librechat.yaml
  
    traefik:
      image: traefik:v3.6
      ports:
        - "80:80"
        - "443:443"
      volumes:
        - "/var/run/docker.sock:/var/run/docker.sock:ro"
        - "./letsencrypt:/letsencrypt"
      networks:
        - librechat_default
      command:
        - "--log.level=DEBUG"
        - "--api.insecure=true"
        - "--providers.docker=true"
        - "--providers.docker.exposedbydefault=false"
        - "--entrypoints.web.address=:80"
        - "--entrypoints.websecure.address=:443"
        - "--certificatesresolvers.leresolver.acme.tlschallenge=true"
        - "[email protected]"
        - "--certificatesresolvers.leresolver.acme.storage=/letsencrypt/acme.json"
 
# other configs here #
 
# NOTE: This needs to be at the bottom of your docker-compose.override.yml
networks:
  librechat_default:
    external: true

Remplacez [email protected] par votre adresse e-mail pour les notifications de certificat Let's Encrypt.

voir : Docker Override pour plus d'informations.

Démarrer les conteneurs

docker compose up -d

Ceci démarrera les conteneurs Traefik et LibreChat. Traefik obtiendra automatiquement un certificat SSL/TLS auprès de Let's Encrypt et exposera votre instance LibreChat de manière sécurisée via HTTPS.

Vous pouvez désormais accéder à votre instance LibreChat à l'adresse https://your.domain.name. Traefik gérera la terminaison SSL/TLS et le reverse proxy des requêtes vers votre conteneur LibreChat.

Notes supplémentaires

  • La configuration de Traefik écoute sur les ports 80 et 443 pour le trafic HTTP et HTTPS, respectivement. Assurez-vous que ces ports sont ouverts sur le pare-feu de votre serveur.
  • Traefik stocke les certificats SSL/TLS dans le répertoire ./letsencrypt sur votre machine hôte. Vous souhaiterez peut-être sauvegarder ce répertoire périodiquement.
  • Pour des options de configuration plus avancées, consultez la documentation officielle de Traefik : https://doc.traefik.io/

Mise en cache et compression de fichiers statiques

LibreChat prend désormais en charge nativement la mise en cache et la compression des fichiers statiques. Si vous utilisez Traefik pour gérer la compression, vous devriez désactiver la compression dans LibreChat pour éviter tout traitement redondant. Vous pouvez le faire en définissant la variable d'environnement DISABLE_COMPRESSION sur true dans votre configuration LibreChat.

# .env file
DISABLE_COMPRESSION=true

Cela empêchera LibreChat de compresser les fichiers statiques, permettant ainsi à Traefik de gérer la compression plus efficacement.

Pour plus d'informations sur la gestion des fichiers statiques dans LibreChat, y compris les options de mise en cache, consultez la documentation Static File Handling.

Que pensez-vous de ce guide ?