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

環境変数

`.env` ファイルを使用してアプリケーションの環境を設定するための包括的なガイドです。このドキュメントは、さまざまなコンテキストでアプリケーションの動作を決定する環境変数を理解し、カスタマイズするためのワンストップリソースです。

.env ファイルを使用してアプリケーションの環境を設定するための包括的なガイドへようこそ。このドキュメントは、さまざまなコンテキストでアプリケーションの動作を決定する環境変数を理解し、カスタマイズするためのワンストップリソースです。

デフォルトの設定でも標準的な docker インストールには十分な基盤が提供されていますが、このガイドを読み進めることで LibreChat の可能性を最大限に引き出すことができます。このガイドでは、LibreChat をお客様のニーズに合わせてカスタマイズする方法を解説します。言語モデルの利用設定の調整、ソーシャルログインの統合、自動モデレーションシステムの管理など、さまざまな機能をご覧ください。LibreChat を微調整して最適なユーザーエクスペリエンスを実現するためのコントロールを、すべてお客様の手元に提供します。

注意: 設定変更を反映させるには、LibreChatを再起動してください

あるいは、LibreChatのメインの docker-compose.yml ファイルと同じディレクトリに docker-compose.override.yml という名前の新しいファイルを作成することもできます。このファイルでは、environment の下で必要に応じて .env 変数を設定したり、メインの docker-compose.yml で提供されているデフォルト設定を変更したりすることができ、ファイル全体を直接編集したり複製したりする必要はありません。

詳細については、以下を参照してください:


サーバー設定

ポート

  • サーバーは特定のポートでリッスンします。
  • PORT 環境変数は、サーバーがリッスンするポートを設定します。デフォルトでは 3080 に設定されています。
KeyTypeDescriptionExample
HOSTstringホストを指定します。HOST=localhost
PORTnumberポートを指定します。PORT=3080

Trust proxy

Expressアプリケーションから最大でnホップ離れたアドレスを使用します。 req.socket.remoteAddress が最初のホップとなり、残りは X-Forwarded-For ヘッダーを右から左へ順に検索します。 値が 0 の場合、最初の信頼できないアドレスが req.socket.remoteAddress であることを意味します。つまり、リバースプロキシが存在しない状態です。 TRUST_PROXY 環境変数のデフォルト値は 1 に設定されています。

これに関する詳細については、Express.js - trust proxy を参照してください。

KeyTypeDescriptionExample
TRUST_PROXYnumberホップ数を指定します。TRUST_PROXY=1

認証情報の構成

資格情報を安全に保存するには、固定のキーとIVが必要です。これらは、prodおよびdev環境向けにここで設定できます。

KeyTypeDescriptionExample
CREDS_KEYstring認証情報を安全に保存するための32バイトのキー(16進数で64文字)。アプリの起動に必須です。CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
CREDS_IVstring認証情報を安全に保存するための16バイトのIV(16進数で32文字)。アプリの起動に必須です。CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb

警告

警告: CREDS_KEYCREDS_IV を設定しない場合、アプリは起動時にクラッシュします。 - こちらの Key Generator を使用すると、これらを素早く生成できます。

静的ファイルの処理

KeyTypeDescriptionExample
STATIC_CACHE_MAX_AGEstringCache-Control max-age(秒単位)STATIC_CACHE_MAX_AGE=172800
STATIC_CACHE_S_MAX_AGEstring共有キャッシュ(CDNやプロキシ)向けのCache-Control s-maxage(秒単位)STATIC_CACHE_S_MAX_AGE="86400"
DISABLE_COMPRESSIONboolean静的ファイルの圧縮を無効にします。DISABLE_COMPRESSION=false
ENABLE_IMAGE_OUTPUT_GZIP_SCANboolean同じフォルダー内に存在する場合、アップロードされた画像のgzippedバージョンを配信できるようにします。ENABLE_IMAGE_OUTPUT_GZIP_SCAN=true
ENABLE_STATIC_ASSET_BROTLIboolean利用可能な場合に、静的アプリ資産の事前圧縮されたBrotliバージョンを提供できるようにします。ENABLE_STATIC_ASSET_BROTLI=true

動作:

静的ファイルに対する Cache-Control ヘッダーを設定します。これらの設定は、NODE_ENVproduction に設定されている場合にのみ有効になります。

  • STATIC_CACHE_MAX_AGE のコメントアウトを解除すると、静的ファイルのローカル max-age を変更できます。デフォルトでは2日(172800秒)に設定されています。
  • STATIC_CACHE_S_MAX_AGE のコメントアウトを解除して、共有キャッシュ(CDNやプロキシ)の s-maxage を設定します。デフォルトでは1日(86400秒)に設定されています。
  • DISABLE_COMPRESSION のコメントアウトを解除すると、静的ファイルの圧縮が無効になります。デフォルトでは、圧縮は有効になっています。
  • Uncomment ENABLE_IMAGE_OUTPUT_GZIP_SCAN to enable scanning and serving of gzipped version of images if they have been pre-compressed in the same folder, with the same name and a .gz extension. By default, gzip scan for uploaded images is disabled.
  • ENABLE_STATIC_ASSET_BROTLI のコメントアウトを解除すると、静的アプリ資産の事前圧縮された .br バージョンが存在する場合にそれが提供されます。有効にすると、API経由で提供される静的ファイルに対して、gzipよりもBrotliが優先されます。

警告

  • これはAPIサーバーによって提供される静的ファイルにのみ影響し、FirebaseNGINX、またはその他の構成には適用されません。

Index HTML キャッシュ制御

KeyTypeDescriptionExample
INDEX_CACHE_CONTROLstringindex.html の Cache-Control ヘッダーINDEX_CACHE_CONTROL=no-cache, no-store, must-revalidate
INDEX_PRAGMAstringindex.html 用の Pragma ヘッダーINDEX_PRAGMA=no-cache
INDEX_EXPIRESstringindex.html の Expires ヘッダーINDEX_EXPIRES=0

動作:

index.html レスポンスのキャッシュヘッダーを制御します。デフォルトでは、ユーザーが常に最新バージョンのアプリケーションを取得できるように、これらの設定はキャッシュを無効化します。

注記

パフォーマンスのためにキャッシュされる静的アセットとは異なり、index.htmlファイルのキャッシュヘッダーは、ユーザーが常に最新のアプリケーションシェルを取得できるように個別に設定されています。

MongoDB データベース

KeyTypeDescriptionExample
MONGO_URIstringMongoDB URIを指定します。MONGO_URI=mongodb://127.0.0.1:27017/LibreChat

これが異なる場合は、ご自身のMongoDB URIに変更してください。URI内のデータベース名として LibreChat または独自の APP_TITLE を追加する必要があります。

オンラインデータベースを使用している場合、URIの形式は mongodb+srv://<username>:<password>@<host>/<database>?<options> です。MONGO_URI は以下のようになります:

  • mongodb+srv://username:[email protected]/LibreChat?retryWrites=true (retryWrites はオンラインデータベースを使用する際に必要な唯一のオプションです。)

MongoDB接続プールの設定

KeyTypeDescriptionExample
MONGO_MAX_POOL_SIZEnumberコネクションプール内の最大接続数。# MONGO_MAX_POOL_SIZE=
MONGO_MIN_POOL_SIZEnumberコネクションプール内の最小接続数。# MONGO_MIN_POOL_SIZE=
MONGO_MAX_CONNECTINGnumber接続プールによって同時に確立される可能性のある接続の最大数。# MONGO_MAX_CONNECTING=
MONGO_MAX_IDLE_TIME_MSnumber接続がプール内でアイドル状態を維持できる最大ミリ秒数(これを超えると削除およびクローズされます)。# MONGO_MAX_IDLE_TIME_MS=
MONGO_WAIT_QUEUE_TIMEOUT_MSnumberスレッドが接続可能になるまで待機できる最大時間(ミリ秒単位)。# MONGO_WAIT_QUEUE_TIMEOUT_MS=

MongoDB スキーマ設定

KeyTypeDescriptionExample
MONGO_AUTO_INDEXbooleanfalseに設定すると、この接続に関連付けられたすべてのモデルの自動インデックス作成が無効になります。省略した場合、Mongooseのデフォルトの動作が使用されます。# MONGO_AUTO_INDEX=
MONGO_AUTO_CREATEbooleanfalseに設定すると、この接続で作成されるすべてのモデルに対してMongooseが自動的にcreateCollection()を呼び出す機能を無効にします。省略した場合、Mongooseのデフォルトの動作が使用されます。# MONGO_AUTO_CREATE=

あるいは、mongoDbをエミュレートするdocumentDbを使用することもできますが、それには以下の点があります:

  • retryWrites はサポートされていません - retryWrites=false を使用してください
  • TLS接続が必要です。そのため、tls=true パラメータを使用してTLSを有効にし、tlsCAFile=/path-to-ca/bundle.pem を使用してAWSが提供するCAバンドルファイルを指定してください。

documentDb の URI は以下のようになります:

  • mongodb+srv://username:password@domain/dbname?retryWrites=false&tls=true&tlsCAFile=/path-to-ca/bundle.pem

参照:

アプリケーションドメイン

LibreChatをローカル環境またはカスタムドメインでデプロイするように設定するには、以下の環境変数を設定してください:

KeyTypeDescriptionExample
DOMAIN_CLIENTstringクライアント側のドメインを指定します。DOMAIN_CLIENT=http://localhost:3080
DOMAIN_SERVERstringサーバーサイドのドメインを指定します。DOMAIN_SERVER=http://localhost:3080
ADMIN_PANEL_URLstring管理パネルが別途ホストされている場合の管理用OAuth/SSOリダイレクトに使用される、外部管理パネルのベースURL。末尾にスラッシュを含めないでください。ADMIN_PANEL_URL=https://admin.example.com/admin
ADMIN_PANEL_SESSION_SECRETstringバンドルされている管理パネルに必要なセッション暗号化キー(最小32文字)。docker-composeおよびdeploy-composeのadmin-panelサービスは、これをSESSION_SECRETとして読み取ります。スタックを起動する前に `openssl rand -hex 32` で生成してください。ADMIN_PANEL_SESSION_SECRET=<your-32-char-random-string>
ADMIN_PANEL_PORTnumberデフォルトのDocker Composeにおけるバンドルされた管理パネルのホストポート。deploy-composeでは、代わりにnginx経由で http://admin.localhost にてパネルが提供されます。ADMIN_PANEL_PORT=3000

LibreChatをカスタムドメインにデプロイする際は、http://localhost:3080 をデプロイ先のURLに置き換えてください。

  • 例: https://librechat.example.com

公開検索エンジンによるインデックス作成の防止

デフォルトでは、あなたのウェブサイトは公開検索エンジン(Google、Bingなど)によってインデックスされません。つまり、これらの検索エンジンを通じてあなたのウェブサイトを見つけることはできません。ウェブサイトの可視性を高め、検索可能にしたい場合は、以下の設定を false に変更してください。

KeyTypeDescriptionExample
NO_INDEXboolean公開検索エンジンがウェブサイトをインデックスすることを防ぎます。NO_INDEX=true

注: この方法はすべての検索エンジンで機能することが保証されているわけではなく、一部の検索エンジンはキャッシュやアーカイブなど、他の目的でウェブサイトやウェブページをインデックスする可能性があります。したがって、ウェブサイトやウェブページ上の機密情報や極秘情報を保護するために、この方法だけに頼るべきではありません。

ログ出力

LibreChatには組み込みの中央ロギング機能があります。詳細については、Logging System を参照してください。

ログファイル

  • デバッグログはデフォルトで有効になっており、開発において非常に重要です。
  • 問題を報告するには、エラーを再現した上で ./api/logs/debug-%DATE%.log からログを取得し、LibreChat GitHub Issues に提出してください。
  • エラーログも同じ場所に保存されます。

環境変数

KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanデバッグログを有効に保つ。DEBUG_LOGGING=true
DEBUG_CONSOLEbooleanファイルデバッグログと同じ形式で、詳細なコンソール/stdoutログを有効にします。DEBUG_CONSOLE=false
LOG_TO_FILEbooleanfalseに設定すると、コンソールログを有効にしたまま、ファイルベースのWinstonトランスポートを無効にできます。LOG_TO_FILE=true
CONSOLE_JSONbooleanGCPやAWSなどのクラウドデプロイに適した、詳細なJSON形式のコンソール/stdoutログを有効にします。CONSOLE_JSON=false
CONSOLE_JSON_STRING_LENGTHnumberJSONコンソール/stdoutログ内の文字列値の切り捨てサイズを設定します。デフォルト: 255。# CONSOLE_JSON_STRING_LENGTH=255
LIBRECHAT_LOG_DIRstringログファイルのカスタムディレクトリ。デフォルトは /app/logs (Docker) または api/logs (ローカル開発) です。# LIBRECHAT_LOG_DIR=/custom/log/path
MEM_DIAGbooleanメモリ診断を有効にする — 60秒ごとにヒープ/RSSスナップショットをログに記録します。--inspectで実行すると自動的に有効になります。# MEM_DIAG=true
AGENT_DEBUG_LOGGINGbooleanエージェントコントローラーでの詳細なデバッグログ(トークン数、コンテキスト剪定の診断など)を有効にします。# AGENT_DEBUG_LOGGING=true

注:

  • DEBUG_LOGGINGDEBUG_CONSOLE または CONSOLE_JSON のいずれかと併用できますが、両方を同時に使用することはできません。
  • DEBUG_CONSOLECONSOLE_JSON は相互排他的です。
  • CONSOLE_JSON: クラウド環境(GCPやAWSなど)でコンソールログを扱う際、これを有効にするとログがUTCタイムスタンプ付きのJSON形式で出力されます。

注: DEBUG_CONSOLE は出力が非常に冗長になる可能性があるため、推奨されません。そのため、デフォルトでは無効になっています。

権限

UIDとGIDは、システム上の各ユーザーとグループに割り当てられるLinuxの番号です。権限の問題が発生した場合は、Docker Composeコマンドを実行しているユーザーのUIDとGIDをここに設定してください。コンテナ内のアプリケーションは、これらのUID/GIDで実行されます。

KeyTypeDescriptionExample
UIDnumberユーザーID。# UID=1000
GIDnumberグループID。# GID=1000

OpenTelemetry Tracing

LibreChatは、一般的なAPI、HTTP、MongoDB、Mongoose、Redis、およびアウトバウンドリクエストの可視化のために、バックエンドのOpenTelemetryトレースを出力できます。Redisコマンドレベルのスパンはオプトイン形式であるため、デフォルトのトレースは高レベルに保たれます。GenAI固有のプロンプトやモデルの可観測性については、Langfuseを使用してください。

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanバックエンドのOpenTelemetryトレースを有効にします。OTEL_SDK_DISABLED=trueの場合、トレースは無効のままとなります。# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringOpenTelemetryに報告されるサービス名。デフォルト: librechat。# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringOpenTelemetryに報告されるサービスバージョン。設定されていない場合はパッケージバージョンがデフォルトとなります。# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringベース OTLP エクスポーター endpoint# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringトレース固有のOTLP endpoint。設定されている場合、トレースのベースendpointを上書きします。# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringカンマ区切りのOTLPエクスポーターヘッダー(authorizationメタデータなど)。# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringトレースエクスポーターの選択# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringOpenTelemetry トレースサンプラー。デフォルトの例: parentbased_always_on。# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringOpenTelemetry SDKのログレベル。# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanトレーシングが有効な場合でも、OpenTelemetry SDKを無効にします。# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanRedisコマンドレベルのスパンを有効にします。バックエンドのトレースをハイレベルに保つため、デフォルトでは無効になっています。# OTEL_IOREDIS_TRACING_ENABLED=false

リアルユーザーモニタリング (ブラウザ)

LibreChatは、ブラウザのReal User Monitoring (RUM) テレメトリをHyperDX互換のOTLPコレクターに公開できます。RUMはデフォルトで無効になっています。

KeyTypeDescriptionExample
RUM_ENABLEDbooleanブラウザのReal User Monitoringを有効にします。デフォルト: false。# RUM_ENABLED=false
RUM_PROVIDERstringブラウザRUMプロバイダー。現在は `hyperdx` をサポートしています。# RUM_PROVIDER=hyperdx
RUM_URLstringpublic-tokenモードで使用されるパブリックコレクターURL。# RUM_URL=http://localhost:4318
RUM_SERVICE_NAMEstringブラウザSDKによって報告されるサービス名。デフォルト: librechat-web。# RUM_SERVICE_NAME=librechat-web
RUM_ENVIRONMENTstringブラウザのテレメトリで報告される環境ラベル。# RUM_ENVIRONMENT=development
RUM_AUTH_MODEstringブラウザテレメトリの認証モード。`publicToken` または `proxy` を使用します。# RUM_AUTH_MODE=publicToken
RUM_PUBLIC_TOKENstringpublic-tokenモード用のパブリックブラウザトークン。これを公開情報として扱い、コレクター側で取り込みを制限してください。# RUM_PUBLIC_TOKEN=
RUM_PROXY_TARGET_URLstring認証済みプロキシモードで使用されるコレクターのベースURL。`RUM_AUTH_MODE=proxy` の場合に必須です。# RUM_PROXY_TARGET_URL=http://otel-collector:4318
RUM_PROXY_TIMEOUT_MSnumberプロキシリクエストのタイムアウト(ミリ秒)。デフォルト: 10000。# RUM_PROXY_TIMEOUT_MS=10000
RUM_TRACE_PROPAGATION_TARGETSstringtraceparentヘッダーを受け取るべき、カンマ区切りのファーストパーティHTTPSオリジンまたはURL。# RUM_TRACE_PROPAGATION_TARGETS=https://api.example.com
RUM_DISABLE_REPLAYbooleanブラウザのセッションリプレイを無効にします。デフォルト: true。# RUM_DISABLE_REPLAY=true
RUM_CONSOLE_CAPTUREbooleanブラウザのコンソールログをキャプチャします。機密性の高いプロンプト、レスポンス、またはペイロードが収集される可能性があります。# RUM_CONSOLE_CAPTURE=false
RUM_ADVANCED_NETWORK_CAPTUREboolean詳細なネットワークペイロードをキャプチャします。機密性の高いプロンプト、レスポンス、またはペイロードが収集される可能性があります。# RUM_ADVANCED_NETWORK_CAPTURE=false
RUM_SAMPLE_RATEnumberブラウザテレメトリのサンプルレート(0から1)。デフォルト: 1。# RUM_SAMPLE_RATE=1

publicToken モードでは、ブラウザは RUM_PUBLIC_TOKEN を使用して RUM_URL に直接テレメトリを送信します。proxy モードでは、ブラウザは LibreChat を介してテレメトリを送信します。バックエンドはユーザーセッションを検証し、アプリの認証ヘッダーを除去した上で、テレメトリを RUM_PROXY_TARGET_URL に転送します。無効または期限切れのセッションは 204 レスポンスで破棄されるため、ブラウザのテレメトリ失敗が通常の API 認証エラーとして表面化することはありません。プロキシの結果は、LibreChat API の /metrics エンドポイントにおいて、endpoint および result ラベルが付いた rum_proxy_requests_total としてカウントされます。

設定パス - librechat.yaml

LibreChat設定ファイルの代替場所を指定します。

絶対パス相対パス、またはURLを指定できます。パス内のファイル名は柔軟であり、librechat.yamlである必要はありません。有効な設定ファイルであればどれでも機能します。

Note: LibreChat がルートディレクトリで設定ファイルを検索するようにしたい場合(デフォルトの動作です)、このオプションはコメントアウトしたままにしてください。

KeyTypeDescriptionExample
CONFIG_PATHstringLibreChat 設定ファイルの代替保存場所。# CONFIG_PATH=https://raw.githubusercontent.com/danny-avila/LibreChat/main/librechat.example.yaml

デプロイのスキル

Deployment Skillsは、起動時にファイルシステムから読み取り専用で読み込まれ、Skills機能が有効になっているユーザーに対して公開されます。

KeyTypeDescriptionExample
DEPLOYMENT_SKILLS_DIRstringデプロイメントで提供されるスキルを含むディレクトリ。デフォルトはプロジェクトルートの `./skill` です。# DEPLOYMENT_SKILLS_DIR=./skill

このディレクトリまたはその中のファイルを変更した後は、LibreChatを再起動してください。デプロイメントで提供されたSkillsは、同じ名前の永続化されたSkillsよりも優先されます。

設定の検証

デフォルトでは、librechat.yaml 設定ファイルに検証エラーが含まれている場合、LibreChat はエラー(終了コード 1)で終了します。このフェイルファスト(fail-fast)動作は、デプロイパイプラインの初期段階で設定の問題を検出し、意図しないデフォルト設定で実行されることを防ぐのに役立ちます。

KeyTypeDescriptionExample
CONFIG_BYPASS_VALIDATIONboolean`true` に設定すると、`librechat.yaml` に検証エラーがある場合でも、サーバーは警告をログに記録し、デフォルト設定で起動を継続します。これは従来の動作を維持するものです。# CONFIG_BYPASS_VALIDATION=true

警告

CONFIG_BYPASS_VALIDATION=true を本番環境で使用することは推奨されません。これは、設定の問題をデバッグする際の一時的な回避策として意図されています。設定ファイル内のバリデーションエラーは、必ず修正するようにしてください。

未キャッチ例外の処理

デフォルトでは、LibreChatは捕捉されない例外が発生するとプロセスを終了しますが、これはNode.jsの標準的な動作です。この動作を上書きして、捕捉されない例外が発生した後もアプリを継続して実行するように設定できます。

KeyTypeDescriptionExample
CONTINUE_ON_UNCAUGHT_EXCEPTIONboolean`true` に設定すると、アプリは捕捉されない例外が発生してもプロセスを終了せず、実行を継続します。# CONTINUE_ON_UNCAUGHT_EXCEPTION=false

警告

必要な場合を除き、本番環境での使用は推奨されません。捕捉されない例外が発生した場合、アプリケーションが予期しない状態になる可能性があります。

Endpoints

このセクションでは、エンドポイントとモデルの選択、それらのAPIキー、およびそれをサポートするエンドポイントのプロキシとリバースプロキシ設定を構成できます。

一般設定

ENDPOINTS のコメントアウトを解除して、LibreChat で利用可能な endpoint をカスタマイズします。

KeyTypeDescriptionExample
ENDPOINTSstring利用可能なendpointのカンマ区切りリスト。# ENDPOINTS=openAI,agents,assistants,gptPlugins,azureOpenAI,google,anthropic,bingAI,custom
PROXYstringサポートされているサーバーサイドクライアント用の送信プロキシ。HTTPおよびHTTPSターゲットの両方に適用されます。PROXY=
HTTP_PROXYstringPROXYが設定されていない場合に、サポートされているサーバーサイドクライアントによって使用されるHTTPプロキシフォールバック。# HTTP_PROXY=
HTTPS_PROXYstringPROXYが設定されていない場合に、サポートされているサーバーサイドクライアントによって使用されるHTTPSプロキシフォールバック。# HTTPS_PROXY=
NO_PROXYstringサポートされているサーバーサイドクライアントがバイパスすべきホスト、ドメイン、またはIP範囲をカンマ区切りで指定します。小文字の no_proxy も有効です。# NO_PROXY=
TITLE_CONVObooleanすべてのendpointでタイトル生成を有効にする。TITLE_CONVO=true

既知の endpoint - librechat.yaml

KeyTypeDescriptionExample
ANYSCALE_API_KEYstringAnyscaleのAPIキー# ANYSCALE_API_KEY=
APIPIE_API_KEYstringApipieのAPIキー# APIPIE_API_KEY=
COHERE_API_KEYstringCohereのAPIキー# COHERE_API_KEY=
FIREWORKS_API_KEYstringFireworksのAPIキー# FIREWORKS_API_KEY=
GROQ_API_KEYstringGroqのAPIキー# GROQ_API_KEY=
MISTRAL_API_KEYstringMistralのAPIキー# MISTRAL_API_KEY=
OPENROUTER_KEYstringOpenRouterのAPIキー# OPENROUTER_KEY=
PERPLEXITY_API_KEYstringPerplexityのAPIキー# PERPLEXITY_API_KEY=
SHUTTLEAI_API_KEYstringShuttleAIのAPIキー# SHUTTLEAI_API_KEY=
TOGETHERAI_API_KEYstringTogetherAIのAPIキー# TOGETHERAI_API_KEY=
DEEPSEEK_API_KEYstringDeepseek APIのAPIキー# DEEPSEEK_API_KEY=

Web検索機能により、LibreChat内でインターネット検索が可能になります。

重要: 以下に示されている環境変数名はデフォルトの参照値であり、librechat.yaml 設定ファイルを通じて、任意の変数名を使用するようにカスタマイズ可能です。

詳細な設定およびカスタマイズオプションについては、以下を参照してください:Web Search Configuration

KeyTypeDescriptionExample
SERPER_API_KEYstringSerper検索プロバイダーのAPIキー。キーは https://serper.dev/api-keys から取得してください。# SERPER_API_KEY=
TAVILY_API_KEYstringTavily検索およびスクレイパープロバイダー用のAPIキー。https://app.tavily.com/home からキーを取得してください。# TAVILY_API_KEY=
TAVILY_SEARCH_URLstringカスタムTavily Search API URL(オプション)。カスタムまたはプロキシのTavily互換検索エンドポイントを使用する場合にのみ必要です。# TAVILY_SEARCH_URL=
TAVILY_EXTRACT_URLstringカスタムTavily Extract API URL(オプション)。カスタムまたはプロキシのTavily互換extractエンドポイントを使用する場合にのみ必要です。# TAVILY_EXTRACT_URL=
FIRECRAWL_API_KEYstringFirecrawlスクレイパーサービスのAPIキー。キーは https://docs.firecrawl.dev/introduction#api-key から取得してください。# FIRECRAWL_API_KEY=
FIRECRAWL_API_URLstringカスタム Firecrawl API URL(オプション)。カスタム Firecrawl インスタンスを使用する場合にのみ必要です。# FIRECRAWL_API_URL=
FIRECRAWL_VERSIONstringFirecrawl APIバージョン (v0 または v1)。# FIRECRAWL_VERSION=v1
JINA_API_KEYstringJina rerankerサービスのAPIキー。https://jina.ai/api-dashboard/ からキーを取得してください。# JINA_API_KEY=
JINA_API_URLstringカスタムJina API URL(オプション)。カスタムJinaインスタンスを使用する場合にのみ必要です。# JINA_API_URL=
COHERE_API_KEYstringCohere rerankerサービスのAPIキー。https://dashboard.cohere.com/welcome/login からキーを取得してください。# COHERE_API_KEY=

注意: これらの変数名は librechat.yaml 設定ファイルでカスタマイズ可能です。例えば、ウェブ検索設定で設定することにより、SERPER_API_KEY の代わりに CUSTOM_SERPER_KEY を使用することができます。変数名のカスタマイズに関する詳細は、Web Search Configuration のドキュメントを参照してください。

Anthropic

参照: Anthropic Endpoint

  • https://platform.claude.com/ からアクセスキーをリクエストできます。
  • ANTHROPIC_API_KEY= を空のままにすると、この endpoint は無効になります。
  • ANTHROPIC_API_KEY= を "user_provided" に設定すると、ユーザーがWebUIから自身のAPIキーを入力できるようになります。
  • Anthropic のリバースプロキシにアクセスできる場合は、ANTHROPIC_REVERSE_PROXY= で設定できます。
    • デフォルトのベースURLを使用する場合は、空白のままにするか、コメントアウトしてください。
KeyTypeDescriptionExample
ANTHROPIC_API_KEYstringAnthropic APIキー、またはユーザー自身がAPIキーを入力できるようにする場合は "user_provided" を指定します。Defaults to an empty string.
ANTHROPIC_MODELSstring使用するAnthropicモデルのカンマ区切りリスト。# ANTHROPIC_MODELS=claude-fable-5,claude-opus-4-8,claude-opus-4-7,claude-sonnet-4-6,claude-opus-4-6,claude-opus-4-20250514,claude-3-7-sonnet-20250219,claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022
ANTHROPIC_REVERSE_PROXYstringAnthropic用リバースプロキシ# ANTHROPIC_REVERSE_PROXY=
ANTHROPIC_TITLE_MODELstring非推奨: Anthropicでタイトル生成に使用するモデル。# ANTHROPIC_TITLE_MODEL=claude-3-haiku-20240307
  • ANTHROPIC_TITLE_MODEL は現在非推奨となっており、将来のバージョンで削除される予定です。代わりに librechat.yaml 設定内の titleModel エンドポイント設定 を使用してください。

注: Anthropic endpoint と互換性がある必要があります。また、Claude 2 および Claude 3 モデルがこのタスクに最適であり、claude-3-haiku モデルが最も安価です。

Claude Fable 5は、デフォルトのAnthropicモデルリストに含まれています。Fable/Mythosクラスのモデルは、LibreChatにおける最新のAnthropicの動作(1Mのコンテキスト、適応型推論のサポート、プロンプトキャッシングのサポート、および要約または省略された推論出力に対するthinkingDisplayの処理)を使用します。

Vertex AI 経由の Anthropic

Google Cloud Vertex AI経由でAnthropic Claudeモデルを使用することもできます。YAML設定オプションの詳細については、以下を参照してください:Anthropic Vertex AI Configuration

KeyTypeDescriptionExample
ANTHROPIC_USE_VERTEXbooleanAnthropicモデルを直接のAPIではなくGoogle Vertex AI経由で使用する場合はtrueに設定します。ANTHROPIC_USE_VERTEX=true
ANTHROPIC_VERTEX_REGIONstringVertex AIのGoogle Cloudリージョン。デフォルト: us-east5。ANTHROPIC_VERTEX_REGION=us-east5

注: Vertex AI を使用する場合は、Vertex AI User ロールを持つサービスアカウントを使用して GOOGLE_SERVICE_KEY_FILE ( Google Configuration を参照) も設定する必要があります。

AWS Bedrock

参照: AWS Bedrock Setup

KeyTypeDescriptionExample
BEDROCK_AWS_DEFAULT_REGIONstringBedrockにはデフォルトのAWSリージョンを指定する必要があります。BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_ACCESS_KEY_IDstringBedrock用のAWSアクセスキーID。デフォルトのAWS認証情報チェーンを使用する場合は任意です。# BEDROCK_AWS_ACCESS_KEY_ID=your_access_key_id
BEDROCK_AWS_SECRET_ACCESS_KEYstringBedrock用のAWSシークレットアクセスキー。デフォルトのAWS認証情報チェーンを使用する場合は任意です。# BEDROCK_AWS_SECRET_ACCESS_KEY=your_secret_access_key
BEDROCK_AWS_SESSION_TOKENstring一時的な認証情報のためのAWSセッショントークン。オプション。# BEDROCK_AWS_SESSION_TOKEN=your_session_token
BEDROCK_AWS_PROFILEstringBedrock用のAWS共有設定プロファイル名。デフォルトのAWS認証情報チェーンを使用する場合は任意。# BEDROCK_AWS_PROFILE=your-profile-name
BEDROCK_AWS_BEARER_TOKENstringBearer認証用のAmazon Bedrock APIキー、またはユーザーがUI上で独自のBedrock APIキーを入力できるようにする場合はuser_provided。# BEDROCK_AWS_BEARER_TOKEN=your_bedrock_api_key
BEDROCK_AWS_MODELSstringBedrockモデルIDのカンマ区切りリスト。省略した場合は、サポートされている既知の全モデルが含まれます。# BEDROCK_AWS_MODELS=anthropic.claude-fable-5,anthropic.claude-opus-4-8,anthropic.claude-opus-4-7,anthropic.claude-sonnet-4-6,meta.llama3-1-8b-instruct-v1:0

注: アクセスキーを省略すると、デフォルトの AWS 認証情報チェーン(環境変数、SSO 認証情報、共有認証情報ファイル、または EC2/ECS インスタンスメタデータサービス)が使用されます。詳細は AWS Bedrock Setup を参照してください。

Bedrock上のClaude Fable/Mythosクラスのモデルは、推論プロファイル専用です。us.anthropic.claude-fable-5 のようなプロファイルIDを使用し、呼び出す前にBedrockコンソールまたはData Retention APIで必要なAnthropicデータ共有設定を有効にしてください。

BingAI

Bing(Sydney、ジェイルブレイク、Bing Image Creatorにも使用)

KeyTypeDescriptionExample
BINGAI_TOKENstringBingアクセストークン。無効にする場合は空欄にしてください。ユーザーがWebUIから独自のトークンを提供できるようにするには、"user_provided" に設定できます。BINGAI_TOKEN=user_provided
BINGAI_HOSTstringBingホストURL。デフォルトのサーバーを使用する場合はコメントアウトしたままにしてください。# BINGAI_HOST=https://cn.bing.com

注: "user_provided" のままにして、WebUIからトークンを入力することを推奨します。

Google

Google Endpoint をセットアップするには、以下の手順に従ってください。

KeyTypeDescriptionExample
GOOGLE_KEYstringGoogle APIキー。WebUIからユーザー自身がAPIキーを入力できるようにするには "user_provided" に設定してください。GOOGLE_KEY=user_provided
GOOGLE_SERVICE_KEY_FILEstringGoogleサービスアカウントのJSONキーファイルへのパス、取得元のURL、または文字列化されたJSON。Vertex AI認証(OCR機能など)に使用されます。GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json
GOOGLE_REVERSE_PROXYstringGoogleリバースプロキシURLGOOGLE_REVERSE_PROXY=
GOOGLE_AUTH_HEADERbooleanX-goog-api-key の代わりに Authorization ヘッダーを使用します。一部のリバースプロキシで必要となります。# GOOGLE_AUTH_HEADER=true
GOOGLE_MODELSstring利用可能なGemini API Googleモデル(カンマ区切り)。GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash,gemini-2.0-flash-lite
GOOGLE_MODELSstring利用可能なVertex AI Googleモデル(カンマ区切り)。GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash-001,gemini-2.0-flash-lite-001
GOOGLE_TITLE_MODELstring非推奨: Googleでのタイトル生成に使用されるモデル。GOOGLE_TITLE_MODEL=gemini-pro
GOOGLE_LOCstringAPIリクエストを処理するためのGoogle Cloudのロケーションを指定しますGOOGLE_LOC=us-central1
GOOGLE_CLOUD_LOCATIONstringGemini画像生成の代替リージョン(例: global)。# GOOGLE_CLOUD_LOCATION=global
GOOGLE_EXCLUDE_SAFETY_SETTINGSstringデフォルトで含まれている安全設定を完全に省略し、プロバイダーのデフォルト設定を使用しますGOOGLE_EXCLUDE_SAFETY_SETTINGS=true
GOOGLE_SAFETY_SEXUALLY_EXPLICITstring性的に露骨なコンテンツに対する安全設定。オプションは BLOCK_ALL、BLOCK_ONLY_HIGH、WARN_ONLY、OFF です。GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HATE_SPEECHstringヘイトスピーチコンテンツに対する安全設定。オプションは BLOCK_ALL、BLOCK_ONLY_HIGH、WARN_ONLY、OFF です。GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HARASSMENTstringハラスメントコンテンツに対する安全設定。オプションは BLOCK_ALL、BLOCK_ONLY_HIGH、WARN_ONLY、OFF です。GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_DANGEROUS_CONTENTstring危険なコンテンツに対する安全設定。オプションは BLOCK_ALL、BLOCK_ONLY_HIGH、WARN_ONLY、OFF です。GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_CIVIC_INTEGRITYstring市民の誠実性に関するコンテンツの安全性設定。オプションは BLOCK_ALL、BLOCK_ONLY_HIGH、WARN_ONLY、OFF です。# GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH

利用可能なモデルをカンマ区切りで指定します(スペースは含めないでください)。最初に指定したモデルがデフォルトになります。空欄にするかコメントアウトすると、内部設定が使用されます。

  • GOOGLE_TITLE_MODEL は現在非推奨となっており、将来のバージョンで削除される予定です。代わりに librechat.yaml 設定内の titleModel Endpoint Setting を使用してください。

注: Vertex AI の GOOGLE_SAFETY 変数については、デフォルトでは BLOCK_NONE 設定にアクセスできません。この制限された HarmBlockThreshold 設定を使用するには、以下のいずれかを行う必要があります:

  • (a) Googleアカウントチームを通じて許可リスト(allowlist)によるアクセス権を取得する
  • (b) 以下の手順に従って、アカウントタイプを月次請求書払い(monthly invoiced billing)に切り替えてください: https://cloud.google.com/billing/docs/how-to/invoiced-billing

Gemini 画像生成

Gemini Image Generationは、Gemini APIとVertex AIの両方をサポートするAgents向けのツールです。詳細は以下を参照してください: Gemini Image Generation

KeyTypeDescriptionExample
GEMINI_API_KEYstring画像生成専用のGemini APIキー。設定されていない場合はGOOGLE_KEYにフォールバックします。# GEMINI_API_KEY=your_gemini_api_key
GEMINI_IMAGE_MODELstring画像生成用のGeminiモデル。デフォルト: gemini-2.5-flash-image。# GEMINI_IMAGE_MODEL=gemini-2.5-flash-image

注: APIキーが設定されていない場合、ツールは自動的に GOOGLE_SERVICE_KEY_FILE で指定されたサービスアカウントを使用して Vertex AI にフォールバックします。そのサービスアカウントには Vertex AI User ロールが付与されている必要があります。

OpenAI

参照: OpenAI Setup

KeyTypeDescriptionExample
OPENAI_API_KEYstringOpenAI APIキー。このendpointを無効にする場合は空欄にするか、ユーザーがWebUIから独自のAPIキーを入力できるようにするには "user_provided" に設定してください。OPENAI_API_KEY=user_provided
OPENAI_MODELSstring利用可能なモデルをカンマ区切りで指定します(スペースは含めないでください)。最初のモデルがデフォルトになります。内部設定を使用する場合は、コメントアウトしたままにしてください。# OPENAI_MODELS=gpt-5,gpt-5-codex,gpt-5-mini,gpt-5-nano,o3-pro,o3,o4-mini,gpt-4.1,gpt-4.1-mini,gpt-4.1-nano,o3-mini,o1-pro,o1,gpt-4o,gpt-4o-mini
DEBUG_OPENAIbooleanOpenAI endpointのデバッグモードを有効にします。DEBUG_OPENAI=false
OPENAI_SUMMARIZEbooleanメッセージの要約を有効にします。デフォルトはFalseです。# OPENAI_SUMMARIZE=true
OPENAI_SUMMARY_MODELstringOpenAIの要約に使用されるモデル。# OPENAI_SUMMARY_MODEL=gpt-3.5-turbo
OPENAI_FORCE_PROMPTbooleanAPIをmessagesペイロードではなくpromptペイロードで呼び出すように強制します。# OPENAI_FORCE_PROMPT=false
OPENAI_ORGANIZATIONstringOpenAIへの各APIリクエストで使用する組織を指定します。任意。# OPENAI_ORGANIZATION=
OPENAI_REVERSE_PROXYstring非推奨: OpenAI 用のリバースプロキシ設定。# OPENAI_REVERSE_PROXY=
OPENAI_TITLE_MODELstring非推奨: OpenAIのタイトル生成に使用されるモデル。# OPENAI_TITLE_MODEL=gpt-3.5-turbo
  • OPENAI_TITLE_MODEL は現在非推奨となっており、将来のバージョンで削除される予定です。代わりに librechat.yaml 設定内の titleModel エンドポイント設定 を使用してください。
  • OPENAI_REVERSE_PROXY は現在非推奨となっており、将来のバージョンで削除される予定です。代わりに カスタムエンドポイント を使用してください。

Assistants

参照: Assistants Setup

KeyTypeDescriptionExample
ASSISTANTS_API_KEYstringAssistants API用のOpenAI APIキーです。このエンドポイントを無効にする場合は空欄にするか、ユーザーがWebUIから独自のAPIキーを入力できるようにするには「user_provided」に設定してください。ASSISTANTS_API_KEY=user_provided
ASSISTANTS_MODELSstring利用可能なモデルをカンマ区切りで指定します(スペースは含めないでください)。最初に入力したモデルがデフォルトになります。空欄にすると内部設定が使用されます。# ASSISTANTS_MODELS=gpt-3.5-turbo-0125,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-16k,gpt-3.5-turbo,gpt-4,gpt-4-0314,gpt-4-32k-0314,gpt-4-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-1106,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview
ASSISTANTS_BASE_URLstringAssistants APIの代替ベースURL。# ASSISTANTS_BASE_URL=

注: 利用可能なモデルをカンマ区切り(スペースなし)でカスタマイズできます。最初のモデルがデフォルトになります。空欄にするかコメントアウトすると、内部設定が使用されます。

Tavily

APIキーはこちらから取得してください: https://tavily.com/#api

環境変数:

KeyTypeDescriptionExample
TAVILY_API_KEYstringTavily APIキーTAVILY_API_KEY=

Traversaal

説明: LLMで強化された検索ツール。

APIキーの取得はこちら: https://api.traversaal.ai/dashboard

環境変数:

KeyTypeDescriptionExample
TRAVERSAAL_API_KEYstringTraversaal APIキーTRAVERSAAL_API_KEY=

WolframAlpha

詳細な手順はこちらをご覧ください: Wolfram Alpha

環境変数:

KeyTypeDescriptionExample
WOLFRAM_APP_IDstringWolfram Alpha App IDWOLFRAM_APP_ID=

Zapier

説明: - Zapierアカウントが必要です。APIキーはこちらから取得してください: Zapier

  • 許可されたアクションを作成する - Zapierのこの入門ガイドのステップ3に従ってください

注: Zapierは特定のアクションにおいて扱いが難しいことで知られています。メールの下書き作成に使用するのが最も適しているでしょう。

環境変数:

KeyTypeDescriptionExample
ZAPIER_NLA_API_KEYstringZapier NLA APIキーZAPIER_NLA_API_KEY=

OpenWeather

詳細な手順はこちらをご覧ください: OpenWeather

KeyTypeDescriptionExample
OPENWEATHER_API_KEYstringOne Call API 3.0用のOpenWeather APIキー。OPENWEATHER_API_KEY=

Code Interpreter

Code Interpreter APIは、コードの実行とファイルの管理を行うための安全な環境を提供します。参照: Code Interpreter API

KeyTypeDescriptionExample
LIBRECHAT_CODE_API_KEYstringCode Interpreterサービス用のAPIキー。グローバルに設定すると、すべてのユーザーがアクセスできるようになります。LIBRECHAT_CODE_API_KEY=your-api-key
LIBRECHAT_CODE_BASEURLstringCode Interpreter APIのカスタムベースURL(Enterpriseプランのみ)。# LIBRECHAT_CODE_BASEURL=https://your-custom-domain.com

Artifacts

Artifactsは、HTML/JSコードを安全にレンダリングするためにCodeSandboxライブラリを活用しています。デフォルトでは、CodeSandboxがホストするパブリックCDNが使用されます。

幸いなことに、内部ネットワークの要件がある場合は、フロントエンドコードをコンパイルするバンドラーをセルフホストし、Sandpack用にカスタムバンドラーURLを指定することができます。

メトリクスリクエストが削除されたセルフホスト用の事前構築済みコンテナイメージなど、詳細については以下を参照してください: https://github.com/LibreChat-AI/codesandbox-client

KeyTypeDescriptionExample
SANDPACK_BUNDLER_URLstringArtifactsで使用されるSandpack用のカスタムバンドラーURLを指定しますSANDPACK_BUNDLER_URL=your-bundler-url

検索 (Meilisearch)

メッセージと会話内の検索を有効にします:

KeyTypeDescriptionExample
SEARCHbooleanメッセージと会話の検索を有効にします。SEARCH=true

注: Dockerを使用していない場合、無料のセルフホスト型Meilisearchのインストール、または有料のリモートプランが必要です。

MeiliSearchの匿名化されたテレメトリ分析を無効にして完全なプライバシーを確保するには、以下をtrueに設定します:

KeyTypeDescriptionExample
MEILI_NO_ANALYTICSbooleanMeiliSearchの匿名化されたテレメトリ分析を無効にします。MEILI_NO_ANALYTICS=true

APIサーバーが検索サーバーに接続するためです。Docker ComposeでMeiliSearchを運用している場合は、'0.0.0.0'を'meilisearch'に置き換えてください。

KeyTypeDescriptionExample
MEILI_HOSTstring検索サーバーへのAPIサーバー接続。MEILI_HOST=http://0.0.0.0:7700

このマスターキーは、有効なUTF-8文字で構成された16バイト以上のものである必要があります。マスターキーが提供されていない場合、または16バイト未満の場合、MeiliSearchはエラーをスローし、起動を拒否します。MeiliSearchは、安全な自動生成マスターキーを提案します。これはdocker-compose用の既製の安全なキーですが、独自のキーに置き換えることも可能です。

KeyTypeDescriptionExample
MEILI_MASTER_KEYstringMeiliSearchのマスターキー。MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt

LibreChatがMeilisearchとのデータベースインデックス同期を試みるのを防ぐには、以下の環境変数を true に設定します。これは、ノードクラスターやマルチノード構成において、1つのインスタンスのみがインデックス作成を担当すべき場合に便利です。

KeyTypeDescriptionExample
MEILI_NO_SYNCstringMeilisearchインデックス同期を無効にするためのトグルMEILI_NO_SYNC=true

RAG API

ドキュメントのインデックス作成とコンテキストを考慮した応答のために、Retrieval-Augmented Generation(RAG)を設定します。詳細は以下を参照してください:RAG API Configuration

KeyTypeDescriptionExample
RAG_API_URLstringRAG APIサービスのURL。RAG_API_URL=http://host.docker.internal:8000
RAG_OPENAI_API_KEYstringRAG埋め込み用のOpenAI APIキー。RAGのOPENAI_API_KEYを上書きします。# RAG_OPENAI_API_KEY=sk-your-openai-api-key
RAG_OPENAI_BASEURLstringRAG埋め込み用のカスタムOpenAIベースURL。# RAG_OPENAI_BASEURL=
RAG_USE_FULL_CONTEXTboolean上位4件の結果ではなく、ファイルコンテキスト全体を取得します。デフォルト: false。# RAG_USE_FULL_CONTEXT=true
EMBEDDINGS_PROVIDERstringEmbeddingsプロバイダー: openai、azure、huggingface、huggingfacetei、または ollama。デフォルト: openai。# EMBEDDINGS_PROVIDER=openai
EMBEDDINGS_MODELstring使用するEmbeddingsモデル。デフォルトはプロバイダーによって異なります。# EMBEDDINGS_MODEL=text-embedding-3-small

注: デフォルトの Docker セットアップを使用する場合、.env ファイルは LibreChat と RAG API 間で共有されます。設定オプションの詳細については、RAG API documentation を参照してください。

音声認識 (Speech to Text) & 音声合成 (Text to Speech)

Speech-to-Text (STT) および Text-to-Speech (TTS) サービスを設定します。詳細は以下を参照してください: Speech Settings

KeyTypeDescriptionExample
STT_API_KEYstringSpeech-to-Textサービス(例:OpenAI Whisper)のAPIキー# STT_API_KEY=
TTS_API_KEYstringText-to-Speechサービス用のAPIキー(例: OpenAI TTS)。# TTS_API_KEY=

注: STT および TTS は、主に librechat.yaml 内の speech: セクションを通じて設定されます。これらの環境変数は、その設定内で参照されます。YAML 設定オプションの詳細については、Speech Settings を参照してください。

共有会話リンク機能を設定します。

KeyTypeDescriptionExample
ALLOW_SHARED_LINKSboolean共有会話リンクの有効/無効を切り替えます。デフォルト: true。ALLOW_SHARED_LINKS=true
ALLOW_SHARED_LINKS_PUBLICboolean共有リンクを認証なしで公開アクセスできるようにします。デフォルト: false。ALLOW_SHARED_LINKS_PUBLIC=false
SHARED_LINKS_SNAPSHOT_FILESboolean共有チャットで参照されるスナップショットファイル。閲覧者は共有リンクを通じてそれらをプレビューまたはダウンロードできます。設定されている場合、interface.sharedLinks.snapshotFiles を上書きします。SHARED_LINKS_SNAPSHOT_FILES=true

ALLOW_SHARED_LINKS は機能全体のスイッチです。共有リンクを作成できるユーザー、認証済みユーザーと共有できるユーザー、または誰でも閲覧可能にできるユーザーは、ロール権限によって制御されるようになりました。詳細は interface.sharedLinks を参照してください。ALLOW_SHARED_LINKS_PUBLIC は、公開共有リンクを認証なしで閲覧できるかどうかのみを制御します。SHARED_LINKS_SNAPSHOT_FILES は共有リンクのファイルスナップショットに対するグローバルなオーバーライドであり、false に設定するとすべてのリンクに対してスナップショットの提供を無効にできます。

ユーザーシステム

このセクションには、以下の設定が含まれています:

モデレーション

自動モデレーションシステムは、ユーザーの違反を追跡するためにスコアリングメカニズムを使用します。ユーザーが過度なログイン、登録、メッセージ送信などの行為を行うと、違反スコアが蓄積されます。設定されたしきい値に達すると、そのユーザーおよびIPアドレスは一時的にBAN(禁止)されます。このシステムは、急激な活動や疑わしい活動を監視およびペナルティを課すことで、プラットフォームのセキュリティを確保します。

参照: Automated Moderation

基本的なモデレーション設定

KeyTypeDescriptionExample
OPENAI_MODERATIONboolean**OpenAI** および **Plugins** エンドポイントで OpenAI モデレーションを有効にするかどうか。OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringOpenAI APIキー。OPENAI_MODERATION_API_KEY=
OPENAI_MODERATION_REVERSE_PROXYstring注: デフォルトではコメントアウトされています。すべてのリバースプロキシで動作するわけではありません。# OPENAI_MODERATION_REVERSE_PROXY=

Banning Settings

KeyTypeDescriptionExample
BAN_VIOLATIONSboolean違反によるユーザーの禁止を有効にするかどうか(禁止してもログは記録されます)。BAN_VIOLATIONS=true
BAN_DURATIONintegerユーザーおよび関連するIPを禁止する期間(ミリ秒単位)。BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALintegerユーザーのスコアが間隔のしきい値に達するか超えるたびに、そのユーザーはBANされます。BAN_INTERVAL=20

ログインおよび登録のレート制限

ログイン試行回数や新規アカウント登録数を制限することで、ブルートフォース攻撃やスパム登録を防止します。

KeyTypeDescriptionExample
LOGIN_MAXintegerLOGIN_WINDOW ごとのIPあたりの最大ログイン試行回数。LOGIN_MAX=7
LOGIN_WINDOWintegerLOGIN_MAX回のログイン試行を判定する時間枠を分単位で指定します。LOGIN_WINDOW=5
REGISTER_MAXintegerREGISTER_WINDOW ごとに許可される IP あたりの最大登録数。REGISTER_MAX=5
REGISTER_WINDOWintegerREGISTER_MAX回の登録に対する時間枠を分単位で決定します。REGISTER_WINDOW=60

各違反のスコア

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREintegerログイン違反のスコア。LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREinteger登録違反に対するスコア。REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREinteger同時違反に対するスコアCONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREintegerメッセージ違反のスコア。MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREintegerブラウザ以外の違反に対するスコア。NON_BROWSER_VIOLATION_SCORE=20
ILLEGAL_MODEL_REQ_SCOREinteger不正なモデルリクエストのスコア。ILLEGAL_MODEL_REQ_SCORE=5
IMPORT_VIOLATION_SCOREintegerインポートされた会話の違反に対するスコア。IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREinteger会話フォーク違反のスコア。FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREintegerテキスト読み上げ違反のスコア。TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREinteger音声テキスト変換違反のスコア。STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREintegerファイルアップロード違反のスコア。FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREintegerパスワードリセット違反のスコア。RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREintegerメール認証違反のスコア。VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREintegerツール呼び出し違反のスコアTOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREinteger会話アクセス違反のスコア。CONVO_ACCESS_VIOLATION_SCORE=0

注: ブラウザ以外からのアクセスや不正なモデルリクエストは、サードパーティが自動化されたスクリプトを通じてサーバーにアクセスしようとしていることを意味するため、ほとんどの場合、悪意のあるものです。

メッセージレート制限(ユーザーおよびIPごと)

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESboolean1リクエストあたりにユーザーが送信できるメッセージ数を制限するかどうか。LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXintegerユーザーが1リクエストあたりに送信できる最大メッセージ数。CONCURRENT_MESSAGE_MAX=2

リミッター

注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。

IP Limiter:
KeyTypeDescriptionExample
LIMIT_MESSAGE_IPbooleanIPアドレスが `MESSAGE_IP_WINDOW` ごとに送信できるメッセージ数を制限するかどうか。LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXinteger`MESSAGE_IP_WINDOW` ごとに1つのIPが送信できるメッセージの最大数。MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWinteger`MESSAGE_IP_MAX` メッセージの制限時間を分単位で指定します。MESSAGE_IP_WINDOW=1
ユーザー制限機能:
KeyTypeDescriptionExample
LIMIT_MESSAGE_USERboolean`MESSAGE_USER_WINDOW` ごとにユーザーが送信できるメッセージ数を制限するかどうか。LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXinteger`MESSAGE_USER_WINDOW` ごとにユーザーが送信できるメッセージの最大数。MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWinteger`MESSAGE_USER_MAX` メッセージの期間を分単位で決定します。MESSAGE_USER_WINDOW=1

会話インポートのレート制限

ユーザーが会話をインポートできる頻度を制限し、悪用を防ぎます。

注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。

IP Limiter:
KeyTypeDescriptionExample
LIMIT_IMPORT_IPboolean`IMPORT_IP_WINDOW` ごとに1つのIPが実行できる会話インポートの回数を制限するかどうか。LIMIT_IMPORT_IP=true
IMPORT_IP_MAXinteger`IMPORT_IP_WINDOW` ごとに1つのIPが実行できる会話インポートの最大数。IMPORT_IP_MAX=100
IMPORT_IP_WINDOWinteger`IMPORT_IP_MAX` インポートの期間を分単位で決定します。IMPORT_IP_WINDOW=1
ユーザー制限機能:
KeyTypeDescriptionExample
LIMIT_IMPORT_USERboolean`IMPORT_USER_WINDOW` ごとにユーザーが実行できる会話インポートの回数を制限するかどうか。LIMIT_IMPORT_USER=false
IMPORT_USER_MAXintegerユーザーが `IMPORT_USER_WINDOW` ごとに実行できる会話インポートの最大数。IMPORT_USER_MAX=50
IMPORT_USER_WINDOWinteger`IMPORT_USER_MAX` インポートの時間枠を分単位で指定します。IMPORT_USER_WINDOW=1

会話のフォーク(分岐)に関するレート制限

ユーザーが会話をフォークできる頻度を制限し、悪用を防ぎます。

注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。

IP Limiter:
KeyTypeDescriptionExample
LIMIT_FORK_IPbooleanIPアドレスごとに `FORK_IP_WINDOW` 内で作成できる会話フォークの数を制限するかどうか。LIMIT_FORK_IP=true
FORK_IP_MAXinteger`FORK_IP_WINDOW` ごとに1つのIPが作成できる会話フォークの最大数。FORK_IP_MAX=30
FORK_IP_WINDOWinteger`FORK_IP_MAX` フォークの期間を分単位で決定します。FORK_IP_WINDOW=1
ユーザー制限機能:
KeyTypeDescriptionExample
LIMIT_FORK_USERboolean`FORK_USER_WINDOW` ごとにユーザーが作成できる会話フォークの数を制限するかどうか。LIMIT_FORK_USER=false
FORK_USER_MAXintegerユーザーが `FORK_USER_WINDOW` ごとに作成できる会話フォークの最大数。FORK_USER_MAX=7
FORK_USER_WINDOWinteger`FORK_USER_MAX` フォークの時間枠を分単位で指定します。FORK_USER_WINDOW=1

ファイルアップロードのレート制限

ユーザーがファイルをアップロードできる頻度を制限し、悪用を防ぎます。

注: これらは librechat.yamlrateLimits.fileUploads セクションを通じて設定することも可能です。

IP Limiter:
KeyTypeDescriptionExample
FILE_UPLOAD_IP_MAXinteger`FILE_UPLOAD_IP_WINDOW` ごとのIPあたりの最大ファイルアップロード数。デフォルト: 100。# FILE_UPLOAD_IP_MAX=100
FILE_UPLOAD_IP_WINDOWinteger`FILE_UPLOAD_IP_MAX` の時間枠を分単位で指定します。デフォルト: 15。# FILE_UPLOAD_IP_WINDOW=15
ユーザー制限機能:
KeyTypeDescriptionExample
FILE_UPLOAD_USER_MAXinteger`FILE_UPLOAD_USER_WINDOW` ごとのユーザーあたりの最大ファイルアップロード数。デフォルト: 50。# FILE_UPLOAD_USER_MAX=50
FILE_UPLOAD_USER_WINDOWinteger`FILE_UPLOAD_USER_MAX` の時間枠を分単位で指定します。デフォルト: 15。# FILE_UPLOAD_USER_WINDOW=15

TTS (Text-to-Speech) レート制限

悪用を防ぐため、ユーザーがText-to-Speechを使用できる頻度を制限します。

注: これらは librechat.yamlrateLimits.tts セクションを通じて設定することも可能です。

IP Limiter:
KeyTypeDescriptionExample
TTS_IP_MAXinteger`TTS_IP_WINDOW` ごとのIPあたりの最大TTSリクエスト数。デフォルト: 100。# TTS_IP_MAX=100
TTS_IP_WINDOWinteger`TTS_IP_MAX` の時間枠を分単位で指定します。デフォルト: 1。# TTS_IP_WINDOW=1
ユーザー制限機能:
KeyTypeDescriptionExample
TTS_USER_MAXintegerユーザーごとの `TTS_USER_WINDOW` あたりの最大TTSリクエスト数。デフォルト: 50。# TTS_USER_MAX=50
TTS_USER_WINDOWinteger`TTS_USER_MAX`の期間を分単位で指定します。デフォルト: 1。# TTS_USER_WINDOW=1

STT (Speech-to-Text) のレート制限

悪用を防ぐため、ユーザーがSpeech-to-Textを使用できる頻度を制限します。

注: これらは librechat.yamlrateLimits.stt セクション経由で設定することも可能です。

IP Limiter:
KeyTypeDescriptionExample
STT_IP_MAXinteger`STT_IP_WINDOW` あたりのIPごとの最大STTリクエスト数。デフォルト: 100。# STT_IP_MAX=100
STT_IP_WINDOWinteger`STT_IP_MAX` の時間枠を分単位で指定します。デフォルト: 1。# STT_IP_WINDOW=1
ユーザー制限機能:
KeyTypeDescriptionExample
STT_USER_MAXinteger`STT_USER_WINDOW` あたりのユーザーごとの最大STTリクエスト数。デフォルト: 50。# STT_USER_MAX=50
STT_USER_WINDOWinteger`STT_USER_MAX` の時間枠を分単位で指定します。デフォルト: 1。# STT_USER_WINDOW=1

バランス

以下の機能により、システム内の各endpointにおけるユーザー残高を管理できます。残高を手動で追加するオプションがあるほか、ユーザーの残高を自動的に蓄積するシステムを実装することも可能です。設定で特定の初期残高が定義されている場合、ユーザーが登録した際にトークンが自動的にユーザーの残高へ付与されます。

参照: Token Usage

KeyTypeDescriptionExample
CHECK_BALANCEbooleanOpenAI/Plugins エンドポイントのトークンクレジット残高を有効にします。CHECK_BALANCE=false
START_BALANCEinteger値が設定されている場合、登録後にトークンがユーザーの残高に付与されます。START_BALANCE=20000

残高の管理

  • npm run add-balance を実行して、手動で残高を追加します。
    • また、追加するメールアドレスとトークンクレジットの量を指定することもできます。例: npm run add-balance [email protected] 1000
  • npm run set-balance を実行して、add-balance と同様に手動で残高を設定します。
  • npm run list-balances を実行して、すべてのユーザーの残高を一覧表示します。

注: 1000クレジット = $0.001 (0.001米ドル)

登録とログイン

参照: Authentication System

ユーザー登録画面ユーザー登録画面

設定ファイルの明確化

このセクションのすべての認証設定は、librechat.yaml ファイルや docker-compose.override.yml ではなく、.env ファイルで構成する必要があります。docker-compose.override.yml ファイルは Docker のボリュームマウントと環境変数の設定にのみ使用され、librechat.yaml ファイルはカスタム endpoint やその他のアプリケーション設定に使用されます。

  • 一般設定:
KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanメールログインのみを有効または無効にします。ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONboolean新規ユーザーのメール登録を有効または無効にします。ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanユーザーがさまざまなソーシャルネットワークを使用してLibreChatに接続できるようにします。ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanさまざまなソーシャルネットワークを使用した新規ユーザーの登録を有効または無効にします。ALLOW_SOCIAL_REGISTRATION=false
ALLOW_PASSWORD_RESETbooleanユーザーが自分でパスワードをリセットできる機能を有効または無効にしますALLOW_PASSWORD_RESET=false
ALLOW_ACCOUNT_DELETIONbooleanユーザーが自身でアカウントを削除できる機能を有効または無効にします。省略またはコメントアウトされた場合はデフォルトで有効になります。ALLOW_ACCOUNT_DELETION=true
ALLOW_UNVERIFIED_EMAIL_LOGINbooleantrueに設定すると、ユーザーはメールアドレスを認証せずにログインできるようになります。falseに設定すると、ユーザーはログイン前にメールアドレスの認証が必要になります。ALLOW_UNVERIFIED_EMAIL_LOGIN=true
MIN_PASSWORD_LENGTHnumberユーザー認証の最小パスワード長。LDAP認証を使用する場合、LDAPサーバー側でパスワードポリシーが管理されるため、ローカルのパスワード検証をバイパスするにはこれを1に設定することをお勧めします。MIN_PASSWORD_LENGTH=8

Quick Tip: 登録が無効な場合でも、npm run create-user を使用してデータベースに直接ユーザーを追加できます。

Quick Tip: 登録が無効な場合、npm run delete-user [email protected] を使用してユーザーを削除できます。

  • セッションおよびリフレッシュトークンの設定:
KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)セッションの有効期限。SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (milliseconds)リフレッシュトークンの有効期限。REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7
SESSION_COOKIE_SECUREbooleanセッション/認証クッキーのSecure属性を上書きします。未設定の場合は、デフォルトのNODE_ENV/DOMAIN_SERVERヒューリスティックが使用されます。# SESSION_COOKIE_SECURE=false
  • 詳細については、こちらをご覧ください:Refresh Token

  • JWT設定:

新しい安全な値を使用する必要があります。提供されている例は32バイトのキー(16進数で64文字)です。 これらを素早く生成するには、このreplitを使用してください: JWT Keys

KeyTypeDescriptionExample
JWT_SECRETstring (hex)JWTシークレットキーJWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (hex)JWTリフレッシュシークレットキーJWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418

ソーシャルログイン

詳細については、こちらを参照してください: OAuth2-OIDC

Apple認証

詳細については、以下を参照してください: Apple Authentication

KeyTypeDescriptionExample
APPLE_CLIENT_IDstringApple Services ID(例: com.yourdomain.librechat.services)APPLE_CLIENT_ID=com.yourdomain.librechat.services
APPLE_TEAM_IDstringあなたのApple Developer Team ID。APPLE_TEAM_ID=YOUR_TEAM_ID
APPLE_KEY_IDstringダウンロードしたキーに含まれるApple Key ID。APPLE_KEY_ID=YOUR_KEY_ID
APPLE_PRIVATE_KEY_PATHstringダウンロードした .p8 ファイルへの絶対パス。APPLE_PRIVATE_KEY_PATH=/path/to/AuthKey.p8
APPLE_CALLBACK_URLstringApple認証用のコールバックURL。APPLE_CALLBACK_URL=/oauth/apple/callback

Discord認証

詳細については、以下を参照してください:Discord

KeyTypeDescriptionExample
DISCORD_CLIENT_IDstringDiscordクライアントID。DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRETstringDiscordクライアントシークレット。DISCORD_CLIENT_SECRET=
DISCORD_CALLBACK_URLstringDiscord認証用のコールバックURL。DISCORD_CALLBACK_URL=/oauth/discord/callback

Facebook認証

詳細については、こちらをご覧ください: Facebook Authentication

KeyTypeDescriptionExample
FACEBOOK_CLIENT_IDstringFacebookクライアントID。FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRETstringFacebookクライアントシークレット。FACEBOOK_CLIENT_SECRET=
FACEBOOK_CALLBACK_URLstringFacebook認証用のコールバックURL。FACEBOOK_CALLBACK_URL=/oauth/facebook/callback

GitHub認証

詳細については、以下を参照してください:GitHub Authentication

KeyTypeDescriptionExample
GITHUB_CLIENT_IDstringGitHubクライアントID。GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRETstringGitHubクライアントシークレット。GITHUB_CLIENT_SECRET=
GITHUB_CALLBACK_URLstringGitHub認証用のコールバックURL。GITHUB_CALLBACK_URL=/oauth/github/callback
GITHUB_ENTERPRISE_BASE_URLstringオプション: GitHub EnterpriseインスタンスのベースURL。GITHUB_ENTERPRISE_BASE_URL=
GITHUB_ENTERPRISE_USER_AGENTstringオプション: GitHub Enterpriseリクエスト用のユーザーエージェント。GITHUB_ENTERPRISE_USER_AGENT=

Google認証

詳細については、以下を参照してください: Google Authentication

KeyTypeDescriptionExample
GOOGLE_CLIENT_IDstringGoogleクライアントID。GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRETstringGoogleクライアントシークレット。GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URLstringGoogle認証用のコールバックURL。GOOGLE_CALLBACK_URL=/oauth/google/callback

OpenID Connect

詳細については、以下を参照してください:

KeyTypeDescriptionExample
OPENID_CLIENT_IDstringOpenIDクライアントID。OPENID_CLIENT_ID=
OPENID_CLIENT_SECRETstringOpenIDクライアントシークレット。OPENID_CLIENT_SECRET=
OPENID_ISSUERstringOpenIDプロバイダーのURL。OPENID_ISSUER=
OPENID_SESSION_SECRETstringOpenIDセッションストレージ用のシークレット。OPENID_SESSION_SECRET=
OPENID_SCOPEstringOpenIDスコープ。OPENID_SCOPE="openid profile email"
OPENID_CALLBACK_URLstringOpenID認証用のコールバックURL。OPENID_CALLBACK_URL=/oauth/openid/callback
OPENID_AUDIENCEstringOpenID JWT検証および認可リクエストのAudience値。JWT検証にはカンマ区切りの値が使用でき、認可リクエストには最初の空でない値が使用されます。OPENID_REUSE_TOKENS=trueを使用する際に、不透明トークンではなくJWTアクセストークンを受け取るためのAuth0で必須となります。OPENID_AUDIENCE=https://api.librechat.com
OPENID_REQUIRED_ROLEstring検証に必要なロール。単一のロール、またはカンマ区切りで複数のロールを指定できます。複数のロールが指定された場合、ユーザーはいずれかのロール(OR論理)を持っている必要があります。OPENID_REQUIRED_ROLE=admin or OPENID_REQUIRED_ROLE=role1,role2,admin
OPENID_REQUIRED_ROLE_TOKEN_KINDstring必須ロール検証のためのトークン種別。OPENID_REQUIRED_ROLE_TOKEN_KIND=
OPENID_REQUIRED_ROLE_PARAMETER_PATHstring必須ロール検証のためのパラメータパス。OPENID_REQUIRED_ROLE_PARAMETER_PATH=
OPENID_ADMIN_ROLEstringLibreChatで管理者となるためにユーザーが持つべきロール。OPENID_ADMIN_ROLE=
OPENID_ADMIN_ROLE_TOKEN_KINDstring管理者ロール検証のための情報源。指定可能な値は access、id、または userinfo です。OPENID_ADMIN_ROLE_TOKEN_KIND=
OPENID_ADMIN_ROLE_PARAMETER_PATHstring必須ロール検証のためのパラメータパス。OPENID_ADMIN_ROLE_PARAMETER_PATH=
OPENID_ROLE_SYNC_ENABLEDboolean管理者以外のロールに対して、汎用的なOpenIDロール同期を有効にします。ADMINはロール同期によって割り当てることはできません。管理者権限の昇格にはOPENID_ADMIN_ROLEを使用してください。OPENID_ROLE_SYNC_ENABLED=false
OPENID_ROLE_SYNC_API_ENABLEDbooleanAPIベースのロール同期ヘルパーを有効にします。OPENID_ROLE_SYNC_ENABLED=trueが必要です。OPENID_ROLE_SYNC_API_ENABLED=false
OPENID_ROLE_SYNC_SOURCEstringロールクレームのトークンソース。access、id、userinfoのいずれかである必要があります。デフォルト: id。OPENID_ROLE_SYNC_SOURCE=id
OPENID_ROLE_SYNC_CLAIMstringプロバイダーのロールまたはグループを含むクレームパス。ロール同期が有効な場合に必須です。OPENID_ROLE_SYNC_CLAIM=
OPENID_ROLE_SYNC_ROLE_PRIORITYstring最も重要な順に並べた、カンマ区切りのLibreChatロール。最初に一致したロールが割り当てられます。OPENID_ROLE_SYNC_ROLE_PRIORITY=Support,User
OPENID_ROLE_SYNC_FALLBACK_ROLEstring優先されるロールが一致しない場合に割り当てられるLibreChatロール。設定されている場合、このフォールバックが優先されます。OPENID_ROLE_SYNC_FALLBACK_ROLE=USER
OPENID_BUTTON_LABELstringOpenIDログインボタンのラベル。OPENID_BUTTON_LABEL=
OPENID_IMAGE_URLstringOpenIDログインボタン画像のURL。OPENID_IMAGE_URL=
OPENID_USE_END_SESSION_ENDPOINTstringログアウトのリダイレクト先としてIssuer End Session Endpointを使用するかどうかOPENID_USE_END_SESSION_ENDPOINT=TRUE
OPENID_MAX_LOGOUT_URL_LENGTHnumberid_token_hintの代わりにlogout_hintを使用する前の最大ログアウトURL長。デフォルト: 2000。# OPENID_MAX_LOGOUT_URL_LENGTH=2000
OPENID_AUTO_REDIRECTbooleanOpenIDプロバイダーへ自動的にリダイレクトするかどうか。OPENID_AUTO_REDIRECT=true
OPENID_USE_PKCEbooleanOpenID認証にはPKCE (Proof Key for Code Exchange) を使用します。クライアントシークレットを持たないパブリッククライアントの場合は、OPENID_CLIENT_SECRETを空のままにし、これをtrueに設定してください。# OPENID_USE_PKCE=true
OPENID_POST_LOGOUT_REDIRECT_URIstringOpenIDログアウト後のリダイレクトURI。デフォルトは ${DOMAIN_CLIENT}/login です。# OPENID_POST_LOGOUT_REDIRECT_URI=
OPENID_CLOCK_TOLERANCEnumberトークン検証のためのクロック許容時間(秒)。デフォルト: 300。# OPENID_CLOCK_TOLERANCE=300
OPENID_GENERATE_NONCEbooleanOpenIDクライアントにnonceパラメータの生成を強制します。AWS Cognito(特にフェデレーション利用時)やAuthentikなど、一部のアイデンティティプロバイダーで必要となります。OPENID_GENERATE_NONCE=true
DEBUG_OPENID_REQUESTSbooleanOpenIDリクエストヘッダーの詳細ログ出力を有効にします。無効(デフォルト)の場合、デバッグレベルではリクエストURLのみが記録されます。有効にすると、認証問題のより詳細なデバッグのために、リクエストヘッダーも(機密データはマスクされた状態で)記録されます。DEBUG_OPENID_REQUESTS=false
OPENID_USERNAME_CLAIMstringユーザーのユーザー名として保存するOpenIDプロバイダーのユーザー情報プロパティ。OPENID_USERNAME_CLAIM=
OPENID_NAME_CLAIMstringユーザーの表示名として保存するOpenIDプロバイダーのユーザー情報プロパティ。OPENID_NAME_CLAIM=
OPENID_EMAIL_CLAIMstringユーザー照合のためのメールアドレス/識別子として使用するユーザー情報クレーム(例:Entra IDの場合は "upn")。設定されていない場合、デフォルトは email → preferred_username → upn の順になります。OPENID_EMAIL_CLAIM=

OpenIDロール同期

OPENID_ROLE_SYNC_CLAIM は、ロール同期が有効な場合に必須です。 OPENID_ROLE_SYNC_API_ENABLED=true を使用する場合、OPENID_ROLE_SYNC_ENABLED=true も必要です。汎用的なロール同期では ADMIN を割り当てることはできません。管理者権限への昇格には OPENID_ADMIN_ROLE を使用してください。

OpenID Connect トークンの再利用

LibreChatは、ユーザー認証状態を管理するために、OpenID Connectプロバイダー(Azure Entra IDやAuth0など)によって発行されたアクセストークンおよびリフレッシュトークンの再利用をサポートしています。この機能が有効な場合、クッキーとしてユーザーに渡されるリフレッシュトークンは、LibreChatではなく、お使いのOpenIDプロバイダーによって発行されます。

KeyTypeDescriptionExample
OPENID_REUSE_TOKENSbooleanセッション管理のためにOpenIDプロバイダーのトークンの再利用を有効にします。OPENID_REUSE_TOKENS=false
OPENID_SCOPEstringOpenIDスコープのスペース区切りリスト。トークンを再利用するには offline_access を含める必要があります。OPENID_SCOPE=api://librechat/.default openid profile email offline_access
OPENID_AUDIENCEstringOpenID JWT検証および認可リクエストのためのAudience値。JWT検証にはカンマ区切りの値が使用でき、認可リクエストには最初の空でない値が使用されます。OPENID_REUSE_TOKENS=trueの場合、Auth0には必須です。上記のメインOpenIDセクションの注記を参照してください。OPENID_AUDIENCE=https://api.librechat.com
OPENID_REUSE_MAX_SESSION_AGE_MSnumberLibreChatがIdPの更新を強制するまでに、再利用されたOpenIDセッショントークンが提供される最大有効期間。デフォルト:900000ミリ秒 / 15分。OPENID_REUSE_MAX_SESSION_AGE_MS=900000
OPENID_JWKS_URL_CACHE_ENABLEDboolean署名キー検証結果のキャッシュを有効にする。OPENID_JWKS_URL_CACHE_ENABLED=true
OPENID_JWKS_URL_CACHE_TIMEnumberキャッシュの有効期間(ミリ秒単位)(デフォルト: 600000 ms / 10分)OPENID_JWKS_URL_CACHE_TIME=600000
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIREDbooleanユーザー情報に対してon-behalf-ofフローを有効にする。OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true
OPENID_ON_BEHALF_FLOW_USERINFO_SCOPEstringオン・ビハーフ・オブ(on-behalf-of)フローにおけるユーザー情報のスコープ。OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE=user.read
OPENID_USE_END_SESSION_ENDPOINTbooleanログアウト用にセッション終了 endpoint の使用を有効にします。OPENID_USE_END_SESSION_ENDPOINT=true
OPENID_MAX_LOGOUT_URL_LENGTHnumberlogout_hintに切り替える前のログアウトURLの最大文字数。id_token_hintがサーバーの制限を超えた場合にURIが長すぎるエラーを防ぐのに役立ちます。デフォルト: 2000。OPENID_MAX_LOGOUT_URL_LENGTH=2000

OPENID_REUSE_MAX_SESSION_AGE_MSSESSION_EXPIRY と同様に算術式を受け付けます。プロバイダーがリフレッシュ時に以前のアクセストークンを無効化する場合、MCPサーバーなどのダウンストリームのコンシューマーが有効なベアラートークンを使い終えられるよう、IdPのアクセストークンの有効期間に合わせてこの値を増やしてください。

注記

詳細な設定手順と前提条件については、Re-use OpenID Tokens for Login Session を参照してください。

Microsoft Graph API / Entra ID 統合

Azure Entra ID (旧 Azure AD) を OpenID プロバイダーとして使用する場合、権限および共有システム内での高度なユーザーおよびグループ検索機能のために、追加の Microsoft Graph API 機能を有効にすることができます。

KeyTypeDescriptionExample
USE_ENTRA_ID_FOR_PEOPLE_SEARCHboolean権限/共有システムでEntra IDのユーザー検索統合を有効にします。有効にすると、ユーザーピッカーはローカルデータベースとEntra IDの両方を検索するようになります。USE_ENTRA_ID_FOR_PEOPLE_SEARCH=false
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERSboolean有効にすると、Entra IDグループの所有者はグループのメンバーとして扱われます。ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=false
OPENID_GRAPH_SCOPESstringユーザーやグループの検索に必要なMicrosoft Graph APIスコープ。デフォルトのスコープにより、ユーザープロファイルおよびグループメンバーシップへのアクセスが可能になります。OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All

重要な前提条件

  • Azure Entra IDをOpenIDプロバイダーとして構成する必要があります。OpenIDトークンの再利用を有効にする必要があります (OPENID_REUSE_TOKENS=true)。この機能は、これが有効でないと動作しません。Azureアプリの登録には、適切なMicrosoft Graph API権限が必要です。グループ検索機能については、特定のGraph APIスコープに対して管理者の同意が必要になる場合があります。
SharePoint 統合

LibreChatは、SharePoint OnlineおよびOneDrive for Businessとの直接統合をサポートしており、ユーザーはSharePointライブラリ内のファイルを会話内で直接選択して添付することができます。このエンタープライズ機能は、既存のAzure Entra ID認証を活用します。

KeyTypeDescriptionExample
ENABLE_SHAREPOINT_FILEPICKERbooleanチャットおよびエージェントパネルでSharePointファイルピッカーを有効にします。有効にすると、ファイル添付メニューに「SharePointから」オプションが追加されます。ENABLE_SHAREPOINT_FILEPICKER=true
SHAREPOINT_BASE_URLstringSharePointテナントのベースURL。SharePoint統合が有効な場合に必須です。SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com
SHAREPOINT_PICKER_SHAREPOINT_SCOPEstringファイルピッカー用のSharePoint固有のOAuthスコープ。SharePointファイルピッカーインターフェースを開く際の認証に使用されます。SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read
SHAREPOINT_PICKER_GRAPH_SCOPEstringファイルダウンロード用のMicrosoft Graph APIスコープ。選択後にSharePointからファイルをダウンロードするために使用されます。SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All

重要な要件

SharePoint統合を機能させるには、以下のすべてを設定する必要があります:

  • Azure Entra ID認証が完全に設定されている必要があります
  • OPENID_REUSE_TOKENS=true は必須です(on-behalf-of トークンフローを使用します)
  • OPENID_SCOPE には LibreChat アプリの API スコープを含める必要があります。例: api://<client-id>/access_as_user
  • Azure Entra IDでそのapp-audienceスコープを使用する場合は、OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true が必要です。
  • Azureアプリ登録には、SharePointおよびGraph APIの権限が必要です。
  • Azure アプリ登録では、OPENID_SCOPE で使用される LibreChat API スコープを公開する必要があります。
  • 4つのSharePoint環境変数はすべて設定する必要があります
  • 本番環境ではHTTPSが必須です。

機能の能力

有効にすると、ユーザーは以下のことが可能になります:

  • SharePointドキュメントライブラリおよびOneDrive for Businessからファイルにアクセスする
  • 一度に複数のファイルを選択する(デフォルトの最大数:10ファイル)
  • リアルタイムのダウンロード進捗状況を確認する
    • ファイルはダウンロードされ、通常のアップロードと同様に会話に添付されます。

SharePointの構成に関する詳細な手順については、SharePoint Integration Guide を参照してください。

SAML

詳細については、以下を参照してください:

OpenIDとSAMLの相互排他

OpenID が有効な場合、SAML 認証は自動的に無効になります。

一度に有効にできる認証方法は1つだけです。

KeyTypeDescriptionExample
SAML_ENTRY_POINTstringSAML IDプロバイダー(IdP)のエントリーポイントURL。SAML_ENTRY_POINT=
SAML_ISSUERstringSAMLサービスプロバイダー(SP)エンティティID。SAML_ISSUER=
SAML_CERTstringSAML署名証明書。ファイルパスまたは1行のPEM文字列として指定します。SAML_CERT=
SAML_CALLBACK_URLstringSAML認証用のコールバックURL。SAML_CALLBACK_URL=/oauth/saml/callback
SAML_SESSION_SECRETstringSAMLセッションストレージ用のシークレット。SAML_SESSION_SECRET=
SAML_EMAIL_CLAIMstring<Optional>: SAMLアサーション内でユーザーのメールアドレスを含む属性。(デフォルト: email)SAML_EMAIL_CLAIM=
SAML_USERNAME_CLAIMstring<Optional>: SAMLアサーション内でユーザー名を含む属性。(デフォルト: username)SAML_USERNAME_CLAIM=
SAML_GIVEN_NAME_CLAIMstring<Optional>: SAMLアサーション内で名(given name)を含む属性。(デフォルト: given_name)SAML_GIVEN_NAME_CLAIM=
SAML_FAMILY_NAME_CLAIMstring<Optional>: SAMLアサーション内で姓(family name)を含む属性。(デフォルト: family_name)SAML_FAMILY_NAME_CLAIM=
SAML_PICTURE_CLAIMstring<Optional>: SAMLアサーション内でプロフィール画像のURLを含む属性。(デフォルト: picture)SAML_PICTURE_CLAIM=
SAML_NAME_CLAIMstring<Optional>: SAMLアサーション内でフルネームを含む属性。SAML_NAME_CLAIM=
SAML_BUTTON_LABELstring<Optional>: SAMLログインボタンのラベル。SAML_BUTTON_LABEL=
SAML_IMAGE_URLstring<Optional>: SAMLログインボタン画像のURL。SAML_IMAGE_URL=
SAML_USE_AUTHN_RESPONSE_SIGNEDboolean<Optional>: 「true」の場合、SAML Response全体に署名します。それ以外の場合は、Assertionのみが署名されます(デフォルト)。SAML_USE_AUTHN_RESPONSE_SIGNED=

LDAP/AD 認証

詳細については、LDAP/AD Authentication を参照してください。

KeyTypeDescriptionExample
LDAP_URLstringLDAPサーバーのURLLDAP_URL=ldap://localhost:389
LDAP_BIND_DNstringバインドDNLDAP_BIND_DN=cn=root
LDAP_BIND_CREDENTIALSstringbindDNのパスワードLDAP_BIND_CREDENTIALS=password
LDAP_USER_SEARCH_BASEstringLDAPユーザー検索ベースLDAP_USER_SEARCH_BASE=o=users,o=example.com
LDAP_SEARCH_FILTERstringLDAP検索フィルターLDAP_SEARCH_FILTER=mail={{username}}
LDAP_CA_CERT_PATHstringCA証明書のパスLDAP_CA_CERT_PATH=/path/to/root_ca_cert.crt
LDAP_TLS_REJECT_UNAUTHORIZEDstringLDAP TLS検証LDAP_TLS_REJECT_UNAUTHORIZED=true
LDAP_STARTTLSstringLDAP StartTLSを有効にして接続をTLSにアップグレードします。この機能を有効にするにはtrueに設定してください。LDAP_STARTTLS=true
LDAP_LOGIN_USES_USERNAMEbooleanLDAPログインにメールアドレスではなくユーザー名を使用します。# LDAP_LOGIN_USES_USERNAME=true
LDAP_IDstring一意のユーザーIDに使用するLDAP属性。デフォルト: uid または sAMAccountName, mail。# LDAP_ID=uid
LDAP_USERNAMEstringユーザー名のLDAP属性。デフォルト: givenName または mail。# LDAP_USERNAME=givenName
LDAP_EMAILstringメールアドレスのLDAP属性。デフォルト: mail。# LDAP_EMAIL=userPrincipalName
LDAP_FULL_NAMEstringフルネームに使用するLDAP属性。カンマ区切りで指定可能です。デフォルト: givenName + surname。# LDAP_FULL_NAME=givenName,surname

パスワードのリセット

メールはアカウントの認証およびパスワードのリセットに使用されます。LibreChatは、Mailgun APIと従来のSMTPサービスの両方をサポートしています。参照: Email setup

重要な注意: メール機能を動作させるには、Mailgun(SMTPをブロックするサーバーに推奨)またはSMTPのいずれかを設定する必要があります。

警告: Mailgun または SMTP に有効な値を設定しなかった場合、LibreChat はセキュリティで保護されていないパスワードリセットを使用することになります!

Mailgunは、SMTPポートをブロックしているサーバーへのデプロイにおいて特に有用です。MAILGUN_API_KEYMAILGUN_DOMAIN の両方が設定されている場合、LibreChatはSMTPの代わりにMailgunを使用します。

KeyTypeDescriptionExample
MAILGUN_API_KEYstringMailgun APIキー(Mailgunに必須)。MAILGUN_API_KEY=
MAILGUN_DOMAINstringMailgunドメイン(Mailgunに必須)MAILGUN_DOMAIN=mg.yourdomain.com
MAILGUN_HOSTstringカスタムMailgun APIホスト(オプション)。EUリージョンの場合は https://api.eu.mailgun.net を使用してください。MAILGUN_HOST=https://api.mailgun.net
EMAIL_FROMstring送信元メールアドレス。必須。[email protected]
EMAIL_FROM_NAMEstring送信者名(設定されていない場合は APP_TITLE がデフォルトとして使用されます)。EMAIL_FROM_NAME=

SMTP設定

Mailgunが設定されていない場合、LibreChatはSMTP設定にフォールバックします。

警告: EMAIL_SERVICE を使用する場合、以下の拡張接続パラメータは設定しないでください: HOST, PORT, ENCRYPTION, ENCRYPTION_HOSTNAME, ALLOW_SELFSIGNED.

参照: nodemailer well-known-services

KeyTypeDescriptionExample
EMAIL_SERVICEstringメールサービス(例:Gmail、Outlook)EMAIL_SERVICE=
EMAIL_HOSTstringメールサーバーホストEMAIL_HOST=
EMAIL_PORTnumberメールサーバーのポート。EMAIL_PORT=25
EMAIL_ENCRYPTIONstring暗号化方式 (starttls, tls など)。EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAMEstring暗号化用のホスト名。EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNEDboolean自己署名証明書を許可する。EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAMEstring認証用のユーザー名。EMAIL_USERNAME=
EMAIL_PASSWORDstring認証用のパスワード。EMAIL_PASSWORD=
EMAIL_FROM_NAMEstring送信者名EMAIL_FROM_NAME=
EMAIL_FROMstring送信元メールアドレス。必須。[email protected]

Firebase CDN

参照: Firebase CDN Configuration

重要

  • Firebaseをファイルストレージ戦略として使用している場合は、librechat.yaml設定ファイルでfileStrategyまたはfileStrategiesfirebaseに設定してください。librechat.yamlファイルの設定に関する詳細については、YAML設定ガイドを参照してください:カスタムエンドポイントと設定
KeyTypeDescriptionExample
FIREBASE_API_KEYstringFirebaseプロジェクトのAPIキー。FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAINstringプロジェクトのFirebase Authドメイン。FIREBASE_AUTH_DOMAIN=
FIREBASE_PROJECT_IDstringFirebaseプロジェクトのID。FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKETstringプロジェクトのFirebase Storageバケット。FIREBASE_STORAGE_BUCKET=
FIREBASE_MESSAGING_SENDER_IDstringFirebase Cloud Messagingの送信者ID。FIREBASE_MESSAGING_SENDER_ID=
FIREBASE_APP_IDstringプロジェクトのFirebase App ID。FIREBASE_APP_ID=

Amazon S3 および CloudFront

参照: Amazon S3 Configuration および CloudFront with S3

重要

S3をファイルストレージ戦略として使用している場合は、librechat.yaml設定ファイルでfileStrategyまたはfileStrategiesを設定してください。CloudFrontを使用する場合でも、ストレージのオリジンとしてS3が必要です。

KeyTypeDescriptionExample
AWS_ACCESS_KEY_IDstringIAMユーザーのアクセスキーID。IRSAを使用する場合は任意です。AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEYstringIAMユーザーのシークレットアクセスキー。IRSAを使用する場合は任意です。AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_REGIONstringS3バケットが配置されているAWSリージョン。AWS_REGION=us-east-1
AWS_BUCKET_NAMEstringファイルストレージ用のS3バケット名。AWS_BUCKET_NAME=your_bucket_name
AWS_ENDPOINT_URLstringカスタムAWSエンドポイントURL(オプション)。S3互換サービス用。https://a7g8.da.idrivee2-32.com のように、URLスキームを含めてください。# AWS_ENDPOINT_URL=https://your_endpoint_url
AWS_FORCE_PATH_STYLEbooleanパス形式のURLを必要とするS3互換プロバイダー(例: MinIO、Hetzner、Backblaze B2)の場合はtrueに設定します。AWS S3では不要です。デフォルト: false。# AWS_FORCE_PATH_STYLE=false
CLOUDFRONT_KEY_PAIR_IDstringCloudFront公開鍵ペアID。署名付きCookieおよび署名付きCloudFrontダウンロードURLに必要です。# CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC
CLOUDFRONT_PRIVATE_KEYstringCloudFrontプライベートキーPEM。署名付きCookieおよび署名付きCloudFrontダウンロードURLに必要です。このシークレットを注入する際は、PEMの改行を保持してください。# CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"

注: Kubernetes デプロイメント(EKS など)の場合、明示的な認証情報を提供する代わりに IRSA (IAM Roles for Service Accounts) を使用できます。その場合、必要なのは AWS_REGIONAWS_BUCKET_NAME のみです。

Azure Blob Storage CDN

参照: Azure Blob Storage CDN Configuration

重要

Azure Blob Storageをファイルストレージ戦略として使用している場合は、librechat.yaml設定ファイル内のfileStrategyまたはfileStrategiesazure_blobに設定してください。

KeyTypeDescriptionExample
AZURE_STORAGE_CONNECTION_STRINGstringAzure Blob Storage接続文字列。Managed Identityを使用する場合は、これまたはAZURE_STORAGE_ACCOUNT_NAMEのいずれかを使用してください。AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
AZURE_STORAGE_ACCOUNT_NAMEstringAzure Storageアカウント名。マネージドID認証に使用します(接続文字列は設定しないでください)。# AZURE_STORAGE_ACCOUNT_NAME=yourAccountName
AZURE_STORAGE_PUBLIC_ACCESSbooleanBLOBのパブリックアクセスを有効にします。デフォルト: false。AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAMEstringファイルストレージのコンテナ名。デフォルト: files。AZURE_CONTAINER_NAME=files

注: AZURE_STORAGE_CONNECTION_STRING (オプション A) または AZURE_STORAGE_ACCOUNT_NAME と Managed Identity (オプション B) のいずれかを使用してください。両方を同時に使用しないでください。

UI

ヘルプとFAQボタン

KeyTypeDescriptionExample
HELP_AND_FAQ_URLstringヘルプおよびFAQのURL。空またはコメントアウトされている場合、ボタンは有効になります。ヘルプおよびFAQボタンを無効にするには、"/"に設定してください。HELP_AND_FAQ_URL=https://librechat.ai

動作:

静的ファイルに対する Cache-Control ヘッダーを設定します。これらの設定は、NODE_ENVproduction に設定されている場合にのみ有効になります。

キャッシュヘッダーを適切に設定することは、Webアプリケーションのパフォーマンスと効率を最適化するために不可欠です。ブラウザやCDNが静的ファイルのコピーを保持する期間を制御することで、サーバー負荷を大幅に軽減し、ページ読み込み時間を短縮し、全体的なユーザーエクスペリエンスを向上させることができます。

  • STATIC_CACHE_MAX_AGE のコメントアウトを解除すると、静的ファイルの max-age を変更できます。デフォルトでは4週間に設定されています。
  • STATIC_CACHE_S_MAX_AGE のコメントアウトを解除すると、静的ファイルの s-maxage を変更できます。デフォルトでは1週間に設定されています。
    • これは、CDNやプロキシによって使用される_shared cache_(共有キャッシュ)のためのものです。
KeyTypeDescriptionExample
APP_TITLEstringアプリのタイトルAPP_TITLE=LibreChat
CUSTOM_FOOTERstringカスタムフッター# CUSTOM_FOOTER="My custom footer"
TEMP_CHAT_RETENTION_HOURSnumber**非推奨:** 代わりに librechat.yaml 内の `interface.temporaryChatRetention` を使用してください。一時的なチャットを保持する時間(時間単位)。デフォルト: 720(30日間)。# TEMP_CHAT_RETENTION_HOURS=168

動作:

  • CUSTOM_FOOTER のコメントアウトを解除して、カスタムフッターを追加します。
  • CUSTOM_FOOTER のコメントアウトを解除し、値を空にするとフッターが削除されます。
  • You can now add one or more links in the CUSTOM_FOOTER value using the following format: [Anchor text](URL). Each link should be delineated with a pipe (|).

Markdownの例: CUSTOM_FOOTER=[Link 1](http://example1.com) | [Link 2](http://example2.com)

バースデーハット

KeyTypeDescriptionExample
SHOW_BIRTHDAY_ICONboolean誕生日ハットのアイコンを表示する。# SHOW_BIRTHDAY_ICON=true

動作:

  • 2月11日(LibreChatの誕生日)になると、バースデーハットのアイコンが自動的に表示されます。
  • SHOW_BIRTHDAY_ICONfalse に設定すると、バースデーハットを無効にできます。
  • SHOW_BIRTHDAY_ICONtrue に設定すると、常にバースデーハットを表示できます。

分析

Google Tag Manager

LibreChatは、分析のためにGoogle Tag Managerをサポートしています。LibreChatで有効にするには、Google Tag Manager IDが必要です。こちらのガイドに従ってGoogle Tag Manager IDを生成し、Google Analyticsを設定してください。その後、ANALYTICS_GTM_ID環境変数をあなたのGoogle Tag Manager IDに設定します。

注意: ANALYTICS_GTM_ID が設定されていない場合、Google Tag Manager は有効になりません。設定が正しくない場合、gtm.js へのリクエストが失敗しているのが確認されます。

KeyTypeDescriptionExample
ANALYTICS_GTM_IDstringGoogle Tag Manager IDANALYTICS_GTM_ID=

会話のインポート

メモリの問題を防ぐため、会話ファイルのインポート制限を設定します。

KeyTypeDescriptionExample
CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTESnumber会話インポート時の最大ファイルサイズ(バイト単位)。デフォルト: 0(制限なし)。例: 262144000(250 MiB)。# CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES=262144000

インラインファイルプレビュー

LibreChatがインラインプレビュー抽出をスキップしてダウンロードのみにする、生成ファイルの最大サイズを制御します。

KeyTypeDescriptionExample
FILE_PREVIEW_MAX_EXTRACT_BYTESnumberコード実行アーティファクトのインラインプレビューにおけるソースファイルの最大サイズ(バイト単位)。デフォルト: 2097152 (2 MiB)。レンダリングされたHTMLプレビューには別途上限が設けられているため、この値を下回るファイルであっても、非常にリッチなファイルはプレビューがスキップされる場合があります。# FILE_PREVIEW_MAX_EXTRACT_BYTES=2097152

MCP (Model Context Protocol)

拡張されたサーバー管理とOAuthサポートのために、Model Context Protocol設定を構成します。

MCP Server Configuration

KeyTypeDescriptionExample
MCP_OAUTH_ON_AUTH_ERRORbooleanOAuthメタデータが見つからない場合、401/403レスポンスをOAuth要件として扱う。MCP_OAUTH_ON_AUTH_ERROR=true
MCP_OAUTH_DETECTION_TIMEOUTnumberOAuth検出リクエストのタイムアウト(ミリ秒)。MCP_OAUTH_DETECTION_TIMEOUT=5000
MCP_OAUTH_HANDLING_TIMEOUTnumberLibreChatがMCP OAuthフローの完了を待機してからタイムアウトするまでの時間。デフォルト: 600000 ms(10分)。MCP_OAUTH_HANDLING_TIMEOUT=600000
MCP_OAUTH_FLOW_TTLnumberMCP OAuthフローの状態が保持される期間。LibreChatはこれをMCP_OAUTH_HANDLING_TIMEOUT以上に制限するため、期限に近いコールバックも完了させることができます。デフォルト:900000 ms(15分)。MCP_OAUTH_FLOW_TTL=900000
MCP_CONNECTION_CHECK_TTLnumber高コストな検証を避けるため、このミリ秒数だけ接続ステータスのチェックをキャッシュします。MCP_CONNECTION_CHECK_TTL=30000
MCP_TOOLS_LIST_MAX_PAGESnumberMCPサーバーがツールリストをページネーション(カーソルページネーション)する際に要求するツール/リストページの最大数。ページネーションループに制限を設け、動作不良のサーバーによってツール検出が停止するのを防ぎます。最小値は1に固定されています。デフォルト:50。MCP_TOOLS_LIST_MAX_PAGES=50
MCP_SKIP_CODE_CHALLENGE_CHECKbooleanコードチャレンジメソッドの検証をスキップします。trueに設定すると、.well-known/openid-configurationで通知されていない場合でも、強制的にS256コードチャレンジを使用します。MCP_SKIP_CODE_CHALLENGE_CHECK=false
MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTESnumber拒否される前に非GETストリーム可能HTTP MCPレスポンスで許可される最大バイト数。0に設定すると無効になります。デフォルト: 16777216 (16 MiB)。# MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES=16777216
MCP_STREAMABLE_HTTP_MAX_LINE_BYTESnumberGET以外のストリーミング可能なHTTP MCPレスポンスにおいて、1つのSSE行で許可される最大バイト数。0に設定すると無効になります。デフォルト:5242880 (5 MiB)。# MCP_STREAMABLE_HTTP_MAX_LINE_BYTES=5242880

その他

Redis

Redisは、LibreChatに大幅なパフォーマンスの向上をもたらし、水平スケーリング機能を実現します。

注: Redis のサポートは実験的なものであり、使用中に問題が発生する可能性があります。

重要: Redisを使用している場合、LibreChatの設定を変更した後はキャッシュをフラッシュする必要があります。

詳細な設定と例については、以下を参照してください:Redis Configuration Guide

KeyTypeDescriptionExample
USE_REDISbooleanキャッシュおよびセッションストレージにRedisを有効にします。trueの場合、REDIS_URIの指定が必須です。USE_REDIS=true
USE_REDIS_STREAMSboolean再開可能なLLMストリームのためにRedisを有効にします。設定されていない場合はUSE_REDISの値がデフォルトとなります。ストリームにインメモリストレージを使用するにはfalseに設定してください。# USE_REDIS_STREAMS=true
REDIS_URIstringRedis接続URI。シングルインスタンスの場合: `redis://host:port`。クラスターの場合: カンマ区切りのURI。REDIS_URI=redis://127.0.0.1:6379
USE_REDIS_CLUSTERboolean単一のURIを使用する際にRedisクラスターモードを有効にする# USE_REDIS_CLUSTER="true"
REDIS_CLUSTER_SAFE_DELETEboolean内部でキーをシャードするシングルエンドポイント管理型RedisサービスでCROSSSLOTエラーを回避するため、Redisキャッシュキーを個別に削除します。# REDIS_CLUSTER_SAFE_DELETE=true
REDIS_USERNAMEstring認証用のRedisユーザー名。URIと両方指定された場合は、URI内のユーザー名よりも優先されます。# REDIS_USERNAME=your_redis_username
REDIS_PASSWORDstring認証用のRedisパスワード。両方が指定されている場合、URI内のパスワードよりも優先されます。# REDIS_PASSWORD=your_redis_password
REDIS_CAstringrediss://プロトコルを使用する際のTLS検証用CA証明書へのパス。# REDIS_CA=/path/to/ca-cert.pem
REDIS_KEY_PREFIXstringデプロイメント間の競合を防ぐための、すべてのRedisキーに対する静的プレフィックス。# REDIS_KEY_PREFIX=librechat-prod-v2
REDIS_KEY_PREFIX_VARstring動的プレフィックスを含む環境変数名(例:Cloud RunのK_REVISION)。REDIS_KEY_PREFIXとは併用できません。# REDIS_KEY_PREFIX_VAR=K_REVISION
REDIS_MAX_LISTENERSnumberRedisクライアントあたりの最大イベントリスナー数。メモリリークを防ぎます。デフォルト: 40。# REDIS_MAX_LISTENERS=40
REDIS_PING_INTERVALnumber接続を維持するためのPing間隔(秒)。デフォルト:0(無効)。タイムアウトが発生する場合のみ設定してください。# REDIS_PING_INTERVAL=300
FORCED_IN_MEMORY_CACHE_NAMESPACESstringRedisが有効な場合でもインメモリストレージを強制する、カンマ区切りのキャッシュキー。# FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES
REDIS_USE_ALTERNATIVE_DNS_LOOKUPbooleanAWS ElasticacheでのTLS接続用に代替のdnsLookupを有効にします。TLSを使用するElasticacheクラスターで必要です。# REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true

注記:

  • USE_REDIS=true の場合、REDIS_URI を指定する必要があります。指定しない場合、アプリケーションはエラーをスローします。
  • Redis Clusterモードの場合は、複数のURIを指定してください:redis://node1:7001,redis://node2:7002,redis://node3:7003(クラスターモードは自動的に検出されます)。
  • 内部でキーをシャードするシングルエンドポイントのマネージドRedisサービスを使用する場合は、USE_REDIS_CLUSTER=false を維持し、キャッシュのクリア時に CROSSSLOT エラーが発生する場合は REDIS_CLUSTER_SAFE_DELETE=true を設定してください。
  • TLS接続には rediss:// プロトコルを使用し、CAがパブリックに信頼されていない場合は REDIS_CA を設定してください。
  • REDIS_KEY_PREFIX_VARREDIS_KEY_PREFIX は相互に排他的です。
  • AWS Elasticache with TLS: Elasticacheでは、TLS接続のために代替の dnsLookup を使用する必要がある場合があります。Elasticache with TLSを使用している場合は、REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true を設定してください。詳細については、ioredis documentation を参照してください。

リーダー選出

Redisを使用したマルチインスタンスデプロイメント向けに、分散リーダー選出を設定します。リーダー選出により、スケジュールされたタスクなどの特定の操作を確実に1つのインスタンスのみが実行するようにします。

KeyTypeDescriptionExample
LEADER_LEASE_DURATIONnumberリーダーリースが期限切れになるまでの有効期間(秒)。デフォルト: 25。LEADER_LEASE_DURATION=25
LEADER_RENEW_INTERVALnumberリーダーがリースを更新する間隔(秒単位)。デフォルト: 10。LEADER_RENEW_INTERVAL=10
LEADER_RENEW_ATTEMPTSnumberリース更新に失敗した際の最大リトライ回数。デフォルト: 3。LEADER_RENEW_ATTEMPTS=3
LEADER_RENEW_RETRY_DELAYnumberリース更新時の再試行間隔(秒)。デフォルト: 0.5。LEADER_RENEW_RETRY_DELAY=0.5

注記:

  • リーダー選出にはRedisを有効にする必要があります(USE_REDIS=true)。
  • これらの設定は、マルチインスタンスデプロイメントの場合にのみ関連します。
  • リーダーシップを維持するためには、有効期限が切れる前にリーダーリースを更新する必要があります。
  • 最大試行回数後にリース更新が失敗した場合、インスタンスはリーダーシップを放棄します。

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

このページの内容

サーバー設定ポートTrust proxy認証情報の構成静的ファイルの処理Index HTML キャッシュ制御MongoDB データベースMongoDB接続プールの設定MongoDB スキーマ設定アプリケーションドメイン公開検索エンジンによるインデックス作成の防止ログ出力ログファイル環境変数権限OpenTelemetry Tracingリアルユーザーモニタリング (ブラウザ)設定パス - librechat.yamlデプロイのスキル設定の検証未キャッチ例外の処理Endpoints一般設定既知の endpoint - librechat.yamlWeb SearchAnthropicVertex AI 経由の AnthropicAWS BedrockBingAIGoogleGemini 画像生成OpenAIAssistantsTavilyTraversaalWolframAlphaZapierOpenWeatherCode InterpreterArtifacts検索 (Meilisearch)RAG API音声認識 (Speech to Text) & 音声合成 (Text to Speech)共有リンクユーザーシステムモデレーション基本的なモデレーション設定Banning Settingsログインおよび登録のレート制限各違反のスコアメッセージレート制限(ユーザーおよびIPごと)リミッターIP Limiter:ユーザー制限機能:会話インポートのレート制限IP Limiter:ユーザー制限機能:会話のフォーク(分岐)に関するレート制限IP Limiter:ユーザー制限機能:ファイルアップロードのレート制限IP Limiter:ユーザー制限機能:TTS (Text-to-Speech) レート制限IP Limiter:ユーザー制限機能:STT (Speech-to-Text) のレート制限IP Limiter:ユーザー制限機能:バランス残高の管理登録とログインソーシャルログインApple認証Discord認証Facebook認証GitHub認証Google認証OpenID ConnectOpenID Connect トークンの再利用Microsoft Graph API / Entra ID 統合SharePoint 統合SAMLLDAP/AD 認証パスワードのリセットMailgun 設定 (推奨)SMTP設定Firebase CDNAmazon S3 および CloudFrontAzure Blob Storage CDNUIヘルプとFAQボタンアプリのタイトルとフッターバースデーハット分析Google Tag Manager会話のインポートインラインファイルプレビューMCP (Model Context Protocol)MCP Server Configurationその他Redisリーダー選出