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

Traefik

Dowiedz się, jak używać Traefik jako reverse proxy i load balancera, aby bezpiecznie udostępnić instancję LibreChat przez HTTPS z automatycznym zarządzaniem certyfikatami SSL/TLS.

Traefik to nowoczesny zwrotny serwer proxy HTTP i moduł równoważenia obciążenia, który ułatwia wdrażanie i zarządzanie usługami. Jeśli uruchamiasz LibreChat na Docker, możesz użyć Traefik, aby bezpiecznie udostępnić swoją instancję przez HTTPS z automatycznym zarządzaniem certyfikatami SSL.

Wymagania wstępne

  • Docker oraz Docker Compose zainstalowane w twoim systemie
  • Nazwa domeny wskazująca na adres IP Twojego serwera

Konfiguracja

Konfiguracja Traefik i LibreChat

W pliku docker-compose.override.yml dodaj następującą konfigurację:

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

Zastąp [email protected] swoim adresem e-mail, aby otrzymywać powiadomienia dotyczące certyfikatów Let's Encrypt.

zobacz: Docker Override aby uzyskać więcej informacji.

Uruchom kontenery

docker compose up -d

To uruchomi kontenery Traefik oraz LibreChat. Traefik automatycznie uzyska certyfikat SSL/TLS z Let's Encrypt i bezpiecznie udostępni Twoją instancję LibreChat przez HTTPS.

Możesz teraz uzyskać dostęp do swojej instancji LibreChat pod adresem https://your.domain.name. Traefik zajmie się zakończeniem SSL/TLS oraz przekierowaniem żądań (reverse proxy) do Twojego kontenera LibreChat.

Dodatkowe uwagi

  • Konfiguracja Traefik nasłuchuje na portach 80 i 443 odpowiednio dla ruchu HTTP i HTTPS. Upewnij się, że te porty są otwarte w zaporze sieciowej (firewall) Twojego serwera.
  • Traefik przechowuje certyfikaty SSL/TLS w katalogu ./letsencrypt na maszynie hosta. Warto okresowo tworzyć kopię zapasową tego katalogu.
  • Aby uzyskać bardziej zaawansowane opcje konfiguracji, zapoznaj się z oficjalną dokumentacją Traefik: https://doc.traefik.io/

Buforowanie i kompresja plików statycznych

LibreChat obsługuje teraz natywnie buforowanie i kompresję plików statycznych. Jeśli używasz Traefik do obsługi kompresji, powinieneś wyłączyć kompresję w LibreChat, aby uniknąć zbędnego przetwarzania. Możesz to zrobić, ustawiając zmienną środowiskową DISABLE_COMPRESSION na true w swojej konfiguracji LibreChat.

# .env file
DISABLE_COMPRESSION=true

Zapobiegnie to kompresji plików statycznych przez LibreChat, co pozwoli Traefik na wydajniejszą obsługę kompresji.

Aby uzyskać więcej informacji na temat obsługi plików statycznych w LibreChat, w tym opcji buforowania, zapoznaj się z dokumentacją Static File Handling.

Jaka jest ta instrukcja?