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: trueLet'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のドキュメントを参照してください。
このガイドはいかがでしたか?