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

Traefik

Traefikをリバースプロキシおよびロードバランサーとして使用し、自動SSL/TLS証明書管理によってLibreChatインスタンスをHTTPS経由で安全に公開する方法を学びます。

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は、ホストマシンの ./letsencrypt ディレクトリにSSL/TLS証明書を保存します。このディレクトリは定期的にバックアップすることをお勧めします。
  • より高度な設定オプションについては、Traefikの公式ドキュメントを参照してください: https://doc.traefik.io/

静的ファイルのキャッシュと圧縮

LibreChatは現在、静的ファイルのキャッシュと圧縮をネイティブでサポートしています。Traefikを使用して圧縮を処理している場合は、冗長な処理を避けるためにLibreChat側の圧縮を無効にする必要があります。これを行うには、LibreChatの設定で DISABLE_COMPRESSION 環境変数を true に設定してください。

# .env file
DISABLE_COMPRESSION=true

これにより、LibreChatが静的ファイルを圧縮するのを防ぎ、Traefikがより効率的に圧縮を処理できるようになります。

LibreChatにおける静的ファイルの取り扱いやキャッシュオプションの詳細については、Static File Handlingのドキュメントを参照してください。

このガイドはいかがでしたか?