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

Traefik

Aprenda a usar o Traefik como um proxy reverso e balanceador de carga para expor sua instância do LibreChat de forma segura via HTTPS com gerenciamento automático de certificados SSL/TLS.

Traefik é um proxy reverso HTTP moderno e balanceador de carga que facilita a implantação e o gerenciamento de seus serviços. Se você está executando o LibreChat no Docker, pode usar o Traefik para expor sua instância de forma segura via HTTPS com gerenciamento automático de certificados SSL.

Pré-requisitos

  • Docker e Docker Compose instalados no seu sistema
  • Um nome de domínio apontando para o endereço IP do seu servidor

Configuração

Configurar Traefik e LibreChat

No seu arquivo docker-compose.override.yml, adicione a seguinte configuração:

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

Substitua [email protected] pelo seu endereço de e-mail para notificações de certificado do Let's Encrypt.

veja: Docker Override para mais informações.

Inicie os containers

docker compose up -d

Isso iniciará os containers do Traefik e do LibreChat. O Traefik obterá automaticamente um certificado SSL/TLS da Let's Encrypt e exporá sua instância do LibreChat de forma segura via HTTPS.

Agora você pode acessar sua instância do LibreChat em https://your.domain.name. O Traefik cuidará da terminação SSL/TLS e do proxy reverso das solicitações para o seu container do LibreChat.

Notas Adicionais

  • A configuração do Traefik escuta nas portas 80 e 443 para tráfego HTTP e HTTPS, respectivamente. Certifique-se de que essas portas estejam abertas no firewall do seu servidor.
  • O Traefik armazena certificados SSL/TLS no diretório ./letsencrypt na sua máquina host. Você pode querer fazer backup deste diretório periodicamente.
  • Para opções de configuração mais avançadas, consulte a documentação oficial do Traefik: https://doc.traefik.io/

Cache e Compressão de Arquivos Estáticos

O LibreChat agora oferece suporte nativo a cache e compressão de arquivos estáticos. Se você estiver usando o Traefik para lidar com a compressão, deve desativar a compressão no LibreChat para evitar processamento redundante. Você pode fazer isso definindo a variável de ambiente DISABLE_COMPRESSION como true na sua configuração do LibreChat.

# .env file
DISABLE_COMPRESSION=true

Isso impedirá que o LibreChat comprima arquivos estáticos, permitindo que o Traefik gerencie a compressão de forma mais eficiente.

Para mais informações sobre o tratamento de arquivos estáticos no LibreChat, incluindo opções de cache, consulte a documentação de Static File Handling.

Como está este guia?