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

Traefik

Traefik을 리버스 프록시 및 로드 밸런서로 사용하여 자동 SSL/TLS 인증서 관리와 함께 HTTPS를 통해 LibreChat 인스턴스를 안전하게 노출하는 방법을 알아보세요.

Traefik는 서비스 배포 및 관리를 간편하게 만들어 주는 최신 HTTP 리버스 프록시이자 로드 밸런서입니다. Docker에서 LibreChat을 실행 중이라면, Traefik을 사용하여 자동 SSL 인증서 관리와 함께 HTTPS를 통해 안전하게 인스턴스를 노출할 수 있습니다.

필수 조건

  • 시스템에 설치된 Docker 및 Docker Compose
  • 서버의 IP 주소를 가리키는 도메인 이름

구성

Traefik 및 LibreChat 구성

docker-compose.override.yml 파일에 다음 구성을 추가하세요:

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

Let's Encrypt 인증서 알림을 받을 이메일 주소로 [email protected]을(를) 변경하세요.

자세한 내용은 Docker Override를 참조하세요.

컨테이너 시작하기

docker compose up -d

이 명령은 Traefik 및 LibreChat 컨테이너를 시작합니다. Traefik은 Let's Encrypt로부터 SSL/TLS 인증서를 자동으로 획득하여 HTTPS를 통해 LibreChat 인스턴스를 안전하게 노출합니다.

이제 https://your.domain.name에서 LibreChat 인스턴스에 액세스할 수 있습니다. Traefik이 SSL/TLS 종료를 처리하고 LibreChat 컨테이너로 요청을 리버스 프록시합니다.

추가 참고 사항

  • Traefik 구성은 HTTP 및 HTTPS 트래픽을 위해 각각 80번과 443번 포트에서 수신 대기합니다. 서버의 방화벽에서 해당 포트들이 열려 있는지 확인하십시오.
  • Traefik은 SSL/TLS 인증서를 호스트 머신의 ./letsencrypt 디렉토리에 저장합니다. 이 디렉토리를 주기적으로 백업하는 것이 좋습니다.
  • 더 고급 구성 옵션에 대해서는 공식 Traefik 문서를 참조하세요: https://doc.traefik.io/

정적 파일 캐싱 및 압축

LibreChat은 이제 정적 파일 캐싱 및 압축을 기본적으로 지원합니다. Traefik을 사용하여 압축을 처리하는 경우, 중복 처리를 방지하기 위해 LibreChat에서 압축을 비활성화해야 합니다. LibreChat 설정에서 DISABLE_COMPRESSION 환경 변수를 true로 설정하여 이를 수행할 수 있습니다.

# .env file
DISABLE_COMPRESSION=true

이렇게 하면 LibreChat이 정적 파일을 압축하지 않게 되어, Traefik이 더 효율적으로 압축을 처리할 수 있습니다.

LibreChat에서의 정적 파일 처리 및 캐싱 옵션에 대한 자세한 내용은 Static File Handling 문서를 참조하세요.

이 가이드는 어떤가요?