Umgebungsvariablen
Comprehensive guide for configuring your application's environment with the `.env` file. This document is your one-stop resource for understanding and customizing the environment variables that will shape your application's behavior in different contexts.
Willkommen zum umfassenden Leitfaden für die Konfiguration der Umgebung Ihrer Anwendung mit der .env Datei. Dieses Dokument ist Ihre zentrale Anlaufstelle, um die Umgebungsvariablen zu verstehen und anzupassen, die das Verhalten Ihrer Anwendung in verschiedenen Kontexten bestimmen.
Während die Standardeinstellungen eine solide Grundlage für eine normale docker-Installation bieten, wird Ihnen diese Anleitung das volle Potenzial von LibreChat erschließen. Dieser Leitfaden ermöglicht es Ihnen, LibreChat genau an Ihre Bedürfnisse anzupassen. Entdecken Sie, wie Sie die Verfügbarkeit von Sprachmodellen anpassen, soziale Logins integrieren, das automatische Moderationssystem verwalten und vieles mehr. Es geht darum, Ihnen die Kontrolle zu geben, LibreChat für eine optimale Benutzererfahrung fein abzustimmen.
Hinweis: Bitte starten Sie LibreChat neu, damit die Konfigurationsänderungen wirksam werden.
Alternativ können Sie eine neue Datei namens docker-compose.override.yml im selben Verzeichnis wie Ihre Hauptdatei docker-compose.yml für LibreChat erstellen, in der Sie Ihre .env-Variablen nach Bedarf unter environment festlegen oder die Standardkonfiguration der Hauptdatei docker-compose.yml ändern können, ohne die gesamte Datei direkt bearbeiten oder duplizieren zu müssen.
Weitere Informationen finden Sie unter:
-
Unsere Kurzanleitung:
-
Die offizielle Docker-Dokumentation:
-
Sie können sich auch ein Beispiel für eine Override-Datei für LibreChat in Ihrem LibreChat-Ordner sowie auf GitHub ansehen:
Server-Konfiguration
Port
- Der Server hört auf einem bestimmten Port.
- Die Umgebungsvariable
PORTlegt den Port fest, auf dem der Server lauscht. Standardmäßig ist sie auf3080eingestellt.
| Key | Type | Description | Example |
|---|---|---|---|
| HOST | string | Gibt den Host an. | HOST=localhost |
| PORT | number | Gibt den Port an. | PORT=3080 |
Trust proxy
Verwenden Sie die Adresse, die höchstens n Hops von der Express-Anwendung entfernt ist.
req.socket.remoteAddress ist der erste Hop, und die restlichen werden im X-Forwarded-For-Header von rechts nach links gesucht.
Ein Wert von 0 bedeutet, dass die erste nicht vertrauenswürdige Adresse req.socket.remoteAddress wäre, d. h. es gibt keinen Reverse-Proxy.
Der Standardwert der Umgebungsvariablen TRUST_PROXY ist auf 1 gesetzt.
Weitere Informationen hierzu finden Sie unter Express.js - trust proxy.
| Key | Type | Description | Example |
|---|---|---|---|
| TRUST_PROXY | number | Gibt die Anzahl der Hops an. | TRUST_PROXY=1 |
Anmeldedaten-Konfiguration
Um Anmeldedaten sicher zu speichern, benötigen Sie einen festen Schlüssel und IV. Sie können diese hier für Prod- und Dev-Umgebungen festlegen.
| Key | Type | Description | Example |
|---|---|---|---|
| CREDS_KEY | string | 32-Byte-Schlüssel (64 Zeichen in Hex) zur sicheren Speicherung von Anmeldedaten. Erforderlich für den App-Start. | CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0 |
| CREDS_IV | string | 16-Byte-IV (32 Zeichen in Hex) zur sicheren Speicherung von Anmeldedaten. Erforderlich für den App-Start. | CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb |
Warnung
Warnung: Wenn Sie CREDS_KEY und CREDS_IV nicht festlegen, stürzt die App beim Start ab. - Sie können diesen Key Generator verwenden, um sie schnell zu generieren.
Statische Dateiverarbeitung
| Key | Type | Description | Example |
|---|---|---|---|
| STATIC_CACHE_MAX_AGE | string | Cache-Control max-age in Sekunden | STATIC_CACHE_MAX_AGE=172800 |
| STATIC_CACHE_S_MAX_AGE | string | Cache-Control s-maxage in Sekunden für gemeinsam genutzte Caches (CDNs und Proxys) | STATIC_CACHE_S_MAX_AGE="86400" |
| DISABLE_COMPRESSION | boolean | Deaktiviert die Komprimierung für statische Dateien. | DISABLE_COMPRESSION=false |
| ENABLE_IMAGE_OUTPUT_GZIP_SCAN | boolean | Ermöglicht das Bereitstellen von gzipped-Versionen hochgeladener Bilder, falls diese im selben Ordner vorhanden sind. | ENABLE_IMAGE_OUTPUT_GZIP_SCAN=true |
| ENABLE_STATIC_ASSET_BROTLI | boolean | Ermöglicht die Bereitstellung vorkomprimierter Brotli-Versionen statischer App-Assets, sofern verfügbar. | ENABLE_STATIC_ASSET_BROTLI=true |
Verhalten:
Legt die Cache-Control-Header für statische Dateien fest. Diese Konfigurationen werden nur ausgelöst, wenn NODE_ENV auf production gesetzt ist.
- Entkommentieren Sie
STATIC_CACHE_MAX_AGE, um das lokalemax-agefür statische Dateien zu ändern. Standardmäßig ist dies auf 2 Tage (172800 Sekunden) eingestellt. - Entkommentieren Sie
STATIC_CACHE_S_MAX_AGE, um dass-maxagefür gemeinsam genutzte Caches (CDNs und Proxys) festzulegen. Standardmäßig ist dies auf 1 Tag (86400 Sekunden) eingestellt. - Entkommentieren Sie
DISABLE_COMPRESSION, um die Komprimierung für statische Dateien zu deaktivieren. Standardmäßig ist die Komprimierung aktiviert. - Entkommentieren Sie
ENABLE_IMAGE_OUTPUT_GZIP_SCAN, um das Scannen und Bereitstellen von gzipped-Versionen von Bildern zu aktivieren, sofern diese im selben Ordner mit demselben Namen und einer .gz-Erweiterung vorkomprimiert wurden. Standardmäßig ist der gzip-Scan für hochgeladene Bilder deaktiviert. - Entkommentieren Sie
ENABLE_STATIC_ASSET_BROTLI, um vorkomprimierte.br-Versionen statischer App-Assets bereitzustellen, sofern diese vorhanden sind. Wenn diese Option aktiviert ist, wird Brotli gegenüber gzip für über die API bereitgestellte statische Dateien bevorzugt.
Warnung
- Dies betrifft nur statische Dateien, die vom API-Server bereitgestellt werden, und ist nicht auf Firebase, NGINX oder andere Konfigurationen anwendbar.
Index HTML Cache-Steuerung
| Key | Type | Description | Example |
|---|---|---|---|
| INDEX_CACHE_CONTROL | string | Cache-Control-Header für index.html | INDEX_CACHE_CONTROL=no-cache, no-store, must-revalidate |
| INDEX_PRAGMA | string | Pragma-Header für index.html | INDEX_PRAGMA=no-cache |
| INDEX_EXPIRES | string | Expires-Header für index.html | INDEX_EXPIRES=0 |
Verhalten:
Steuert Caching-Header speziell für die index.html-Antwort. Standardmäßig verhindern diese Einstellungen das Caching, um sicherzustellen, dass Benutzer immer die neueste Version der Anwendung erhalten.
Hinweis
Im Gegensatz zu statischen Assets, die zur Leistungsoptimierung zwischengespeichert werden, sind die Cache-Header der index.html-Datei separat konfiguriert, um sicherzustellen, dass Benutzer immer die neueste Anwendungsoberfläche (Application Shell) erhalten.
MongoDB-Datenbank
| Key | Type | Description | Example |
|---|---|---|---|
| MONGO_URI | string | Gibt den MongoDB URI an. | MONGO_URI=mongodb://127.0.0.1:27017/LibreChat |
Ändern Sie dies in Ihre MongoDB-URI, falls diese abweicht. Sie sollten LibreChat oder Ihren eigenen APP_TITLE als Datenbanknamen in der URI hinzufügen.
Wenn Sie eine Online-Datenbank verwenden, lautet das URI-Format mongodb+srv://<username>:<password>@<host>/<database>?<options>. Ihr MONGO_URI sollte wie folgt aussehen:
mongodb+srv://username:[email protected]/LibreChat?retryWrites=true(retryWritesist die einzige Option, die Sie bei der Verwendung der Online-Datenbank benötigen.)
MongoDB Verbindungspool-Konfiguration
| Key | Type | Description | Example |
|---|---|---|---|
| MONGO_MAX_POOL_SIZE | number | Die maximale Anzahl an Verbindungen im Verbindungspool. | # MONGO_MAX_POOL_SIZE= |
| MONGO_MIN_POOL_SIZE | number | Die Mindestanzahl an Verbindungen im Verbindungspool. | # MONGO_MIN_POOL_SIZE= |
| MONGO_MAX_CONNECTING | number | Die maximale Anzahl an Verbindungen, die gleichzeitig vom Verbindungspool aufgebaut werden können. | # MONGO_MAX_CONNECTING= |
| MONGO_MAX_IDLE_TIME_MS | number | Die maximale Anzahl an Millisekunden, die eine Verbindung im Pool inaktiv bleiben kann, bevor sie entfernt und geschlossen wird. | # MONGO_MAX_IDLE_TIME_MS= |
| MONGO_WAIT_QUEUE_TIMEOUT_MS | number | Die maximale Zeit in Millisekunden, die ein Thread auf die Verfügbarkeit einer Verbindung warten kann. | # MONGO_WAIT_QUEUE_TIMEOUT_MS= |
MongoDB Schema Konfiguration
| Key | Type | Description | Example |
|---|---|---|---|
| MONGO_AUTO_INDEX | boolean | Auf false setzen, um die automatische Indexerstellung für alle mit dieser Verbindung verknüpften Modelle zu deaktivieren. Wenn weggelassen, wird das Standardverhalten von Mongoose verwendet. | # MONGO_AUTO_INDEX= |
| MONGO_AUTO_CREATE | boolean | Auf false setzen, um zu verhindern, dass Mongoose bei jedem auf dieser Verbindung erstellten Modell automatisch createCollection() aufruft. Wenn weggelassen, wird das Standardverhalten von Mongoose verwendet. | # MONGO_AUTO_CREATE= |
Alternativ können Sie documentDb verwenden, das mongoDb emuliert, aber es:
- unterstützt
retryWritesnicht - verwenden SieretryWrites=false - erfordert eine TLS-Verbindung, verwenden Sie daher die Parameter
tls=true, um TLS zu aktivieren, undtlsCAFile=/path-to-ca/bundle.pem, um auf die von AWS bereitgestellte CA-Bundle-Datei zu verweisen
Die URI für documentDb sieht wie folgt aus:
mongodb+srv://username:password@domain/dbname?retryWrites=false&tls=true&tlsCAFile=/path-to-ca/bundle.pem
Siehe auch:
- MongoDB Atlas für Anweisungen zur Erstellung einer Online-MongoDB Atlas-Datenbank (nützlich für die Verwendung ohne Docker)
- MongoDB Community Server für Anweisungen zur Erstellung einer lokalen MongoDB-Datenbank (ohne Docker)
- MongoDB Authentication Um die explizite Authentifizierung für MongoDB in Docker zu aktivieren.
- Verwalten Sie Ihre Datenbank mit Mongo Express für den sicheren Zugriff auf Ihre Docker MongoDB-Datenbank
Anwendungsbereiche
Um LibreChat für die lokale Nutzung oder die Bereitstellung unter einer benutzerdefinierten Domain zu konfigurieren, setzen Sie die folgenden Umgebungsvariablen:
| Key | Type | Description | Example |
|---|---|---|---|
| DOMAIN_CLIENT | string | Gibt die clientseitige Domain an. | DOMAIN_CLIENT=http://localhost:3080 |
| DOMAIN_SERVER | string | Gibt die serverseitige Domain an. | DOMAIN_SERVER=http://localhost:3080 |
| ADMIN_PANEL_URL | string | Externe Basis-URL des Admin-Panels, die für Admin-OAuth/SSO-Weiterleitungen verwendet wird, wenn das Admin-Panel separat gehostet wird. Fügen Sie keinen abschließenden Schrägstrich hinzu. | ADMIN_PANEL_URL=https://admin.example.com/admin |
| ADMIN_PANEL_SESSION_SECRET | string | Erforderlicher Sitzungsverschlüsselungsschlüssel für das gebündelte Admin-Panel (mind. 32 Zeichen). Die Dienste docker-compose und deploy-compose admin-panel lesen ihn als SESSION_SECRET. Vor dem Starten des Stacks mit `openssl rand -hex 32` generieren. | ADMIN_PANEL_SESSION_SECRET=<your-32-char-random-string> |
| ADMIN_PANEL_PORT | number | Host-Port für das gebündelte Admin-Panel im Standard-Docker-Compose. In deploy-compose wird das Panel stattdessen über nginx unter http://admin.localhost bereitgestellt. | ADMIN_PANEL_PORT=3000 |
Wenn Sie LibreChat auf einer benutzerdefinierten Domain bereitstellen, ersetzen Sie http://localhost:3080 durch Ihre bereitgestellte URL.
- z. B.
https://librechat.example.com.
Verhindern, dass öffentliche Suchmaschinen indexieren
Standardmäßig wird Ihre Website nicht von öffentlichen Suchmaschinen (z. B. Google, Bing, …) indexiert. Das bedeutet, dass Personen Ihre Website nicht über diese Suchmaschinen finden können. Wenn Sie Ihre Website sichtbarer und durchsuchbarer machen möchten, können Sie die folgende Einstellung auf false ändern.
| Key | Type | Description | Example |
|---|---|---|---|
| NO_INDEX | boolean | Verhindert, dass öffentliche Suchmaschinen Ihre Website indexieren. | NO_INDEX=true |
❗Hinweis: Es gibt keine Garantie, dass diese Methode für alle Suchmaschinen funktioniert. Einige Suchmaschinen könnten Ihre Website oder Webseite dennoch für andere Zwecke indexieren, wie etwa zum Caching oder Archivieren. Daher sollten Sie sich nicht allein auf diese Methode verlassen, um sensible oder vertrauliche Informationen auf Ihrer Website oder Webseite zu schützen.
Logging
LibreChat verfügt über eine integrierte zentrale Protokollierung, siehe Logging System für weitere Informationen.
Protokolldateien
- Debug-Logging ist standardmäßig aktiviert und für die Entwicklung von entscheidender Bedeutung.
- Um Probleme zu melden, reproduzieren Sie den Fehler und reichen Sie die Protokolle aus
./api/logs/debug-%DATE%.logunter folgendem Link ein: LibreChat GitHub Issues - Fehlerprotokolle werden am selben Speicherort abgelegt.
Umgebungsvariablen
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | Debug-Logs aktiv lassen. | DEBUG_LOGGING=true |
| DEBUG_CONSOLE | boolean | Aktiviere ausführliche Konsolen-/stdout-Protokolle im gleichen Format wie Datei-Debug-Protokolle. | DEBUG_CONSOLE=false |
| LOG_TO_FILE | boolean | Auf false setzen, um dateibasierte Winston-Transports zu deaktivieren, während die Konsolenprotokollierung weiterhin verfügbar bleibt. | LOG_TO_FILE=true |
| CONSOLE_JSON | boolean | Aktiviere ausführliche JSON-Konsolen-/stdout-Protokolle, die für Cloud-Bereitstellungen wie GCP/AWS geeignet sind. | CONSOLE_JSON=false |
| CONSOLE_JSON_STRING_LENGTH | number | Konfiguriere die Kürzungslänge für String-Werte in JSON-Konsolen-/stdout-Logs. Standard: 255. | # CONSOLE_JSON_STRING_LENGTH=255 |
| LIBRECHAT_LOG_DIR | string | Benutzerdefiniertes Verzeichnis für Protokolldateien. Standardmäßig /app/logs (Docker) oder api/logs (lokale Entwicklung). | # LIBRECHAT_LOG_DIR=/custom/log/path |
| MEM_DIAG | boolean | Speicherdiagnose aktivieren — protokolliert Heap/RSS-Snapshots alle 60 Sekunden. Automatisch aktiviert bei Ausführung mit --inspect. | # MEM_DIAG=true |
| AGENT_DEBUG_LOGGING | boolean | Aktiviert ausführliche Debug-Protokollierung im Agent-Controller (Token-Anzahl, Diagnostik zur Kontextkürzung). | # AGENT_DEBUG_LOGGING=true |
Hinweis:
DEBUG_LOGGINGkann entweder mitDEBUG_CONSOLEoderCONSOLE_JSONverwendet werden, jedoch nicht mit beiden gleichzeitig.DEBUG_CONSOLEundCONSOLE_JSONschließen sich gegenseitig aus.CONSOLE_JSON: Bei der Verarbeitung von Konsolenprotokollen in Cloud-Bereitstellungen (wie GCP oder AWS) führt die Aktivierung dazu, dass die Protokolle mit einem UTC-Zeitstempel ausgegeben und als JSON formatiert werden.- Siehe: feat: Add CONSOLE_JSON
Hinweis: DEBUG_CONSOLE wird nicht empfohlen, da die Ausgaben sehr ausführlich sein können und es daher standardmäßig deaktiviert ist.
Berechtigung
UID und GID sind Nummern, die von Linux jedem Benutzer und jeder Gruppe auf dem System zugewiesen werden. Wenn Sie Berechtigungsprobleme haben, legen Sie hier die UID und GID des Benutzers fest, der den Docker Compose-Befehl ausführt. Die Anwendungen im Container werden mit diesen UID/GID ausgeführt.
| Key | Type | Description | Example |
|---|---|---|---|
| UID | number | Die Benutzer-ID. | # UID=1000 |
| GID | number | Die Gruppen-ID. | # GID=1000 |
OpenTelemetry Tracing
LibreChat kann Backend-OpenTelemetry-Traces für die Sichtbarkeit von allgemeinen APIs, HTTP, MongoDB, Mongoose, Redis und ausgehenden Anfragen ausgeben. Spans auf Redis-Befehlsebene sind optional, sodass die Standard-Traces auf einer hohen Ebene bleiben. Verwenden Sie Langfuse für die GenAI-spezifische Prompt-/Modell-Beobachtbarkeit.
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | Aktiviert das Backend-OpenTelemetry-Tracing. Das Tracing bleibt deaktiviert, wenn OTEL_SDK_DISABLED=true gesetzt ist. | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | Dienstname, der an OpenTelemetry gemeldet wird. Standard: librechat. | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | An OpenTelemetry gemeldete Service-Version. Standardmäßig die Paketversion, wenn nicht festgelegt. | # OTEL_SERVICE_VERSION= |
| OTEL_EXPORTER_OTLP_ENDPOINT | string | Basis-OTLP-Exporter-endpoint. | # OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | string | Trace-spezifischer OTLP endpoint. Überschreibt den Basis-endpoint für Traces, wenn dieser festgelegt ist. | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | Durch Kommas getrennte OTLP-Exporter-Header, wie z. B. Autorisierungs-Metadaten. | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | Auswahl des Trace-Exporters. | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | OpenTelemetry Trace-Sampler. Standardbeispiel: parentbased_always_on. | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | OpenTelemetry SDK-Protokollebene. | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | Deaktivieren Sie das OpenTelemetry SDK, selbst wenn Tracing aktiviert ist. | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Aktiviert Redis-Befehlsebenen-Spans. Standardmäßig deaktiviert, um Backend-Traces auf einer übergeordneten Ebene zu halten. | # OTEL_IOREDIS_TRACING_ENABLED=false |
Real User Monitoring (Browser)
LibreChat kann Browser Real User Monitoring (RUM) Telemetrie an HyperDX-kompatible OTLP-Collector senden. RUM ist standardmäßig deaktiviert.
| Key | Type | Description | Example |
|---|---|---|---|
| RUM_ENABLED | boolean | Browser Real User Monitoring aktivieren. Standard: false. | # RUM_ENABLED=false |
| RUM_PROVIDER | string | Browser-RUM-Anbieter. Unterstützt derzeit `hyperdx`. | # RUM_PROVIDER=hyperdx |
| RUM_URL | string | Öffentliche Collector-URL, die für den public-token-Modus verwendet wird. | # RUM_URL=http://localhost:4318 |
| RUM_SERVICE_NAME | string | Vom Browser-SDK gemeldeter Dienstname. Standard: librechat-web. | # RUM_SERVICE_NAME=librechat-web |
| RUM_ENVIRONMENT | string | Umgebungskennzeichnung, die mit Browser-Telemetrie gemeldet wird. | # RUM_ENVIRONMENT=development |
| RUM_AUTH_MODE | string | Authentifizierungsmodus für Browser-Telemetrie. Verwenden Sie `publicToken` oder `proxy`. | # RUM_AUTH_MODE=publicToken |
| RUM_PUBLIC_TOKEN | string | Öffentliches Browser-Token für den public-token-Modus. Behandle dies als öffentlich und beschränke die Aufnahme am Collector. | # RUM_PUBLIC_TOKEN= |
| RUM_PROXY_TARGET_URL | string | Collector-Basis-URL, die im authentifizierten Proxy-Modus verwendet wird. Erforderlich, wenn `RUM_AUTH_MODE=proxy`. | # RUM_PROXY_TARGET_URL=http://otel-collector:4318 |
| RUM_PROXY_TIMEOUT_MS | number | Proxy-Anfrage-Timeout in Millisekunden. Standard: 10000. | # RUM_PROXY_TIMEOUT_MS=10000 |
| RUM_TRACE_PROPAGATION_TARGETS | string | Durch Kommas getrennte First-Party-HTTPS-Ursprünge oder URLs, die traceparent-Header empfangen sollen. | # RUM_TRACE_PROPAGATION_TARGETS=https://api.example.com |
| RUM_DISABLE_REPLAY | boolean | Deaktiviert die Browser-Sitzungswiederholung. Standard: true. | # RUM_DISABLE_REPLAY=true |
| RUM_CONSOLE_CAPTURE | boolean | Browser-Konsolenprotokolle erfassen. Kann sensible Prompts, Antworten oder Payloads sammeln. | # RUM_CONSOLE_CAPTURE=false |
| RUM_ADVANCED_NETWORK_CAPTURE | boolean | Erfasst detaillierte Netzwerk-Payloads. Kann sensible Prompts, Antworten oder Payloads sammeln. | # RUM_ADVANCED_NETWORK_CAPTURE=false |
| RUM_SAMPLE_RATE | number | Browser-Telemetrie-Abtastrate von 0 bis 1. Standard: 1. | # RUM_SAMPLE_RATE=1 |
Im publicToken-Modus sendet der Browser Telemetriedaten direkt an die RUM_URL mit dem RUM_PUBLIC_TOKEN. Im proxy-Modus sendet der Browser Telemetriedaten über LibreChat; das Backend validiert die Benutzersitzung, entfernt App-Authentifizierungs-Header und leitet die Telemetriedaten an die RUM_PROXY_TARGET_URL weiter. Ungültige oder abgelaufene Sitzungen werden mit einer 204-Antwort verworfen, sodass Fehler bei der Browser-Telemetrie nicht als normale API-Authentifizierungsfehler erscheinen. Proxy-Ergebnisse werden unter rum_proxy_requests_total mit endpoint- und result-Labels am LibreChat API /metrics-Endpunkt gezählt.
Konfigurationspfad - librechat.yaml
Geben Sie einen alternativen Speicherort für die LibreChat-Konfigurationsdatei an.
Sie können einen absoluten Pfad, einen relativen Pfad oder eine URL angeben. Der Dateiname im Pfad ist flexibel und muss nicht librechat.yaml lauten; jede gültige Konfigurationsdatei funktioniert.
Hinweis: Wenn Sie bevorzugen, dass LibreChat im Stammverzeichnis nach der Konfigurationsdatei sucht (was das Standardverhalten ist), lassen Sie diese Option einfach auskommentiert.
| Key | Type | Description | Example |
|---|---|---|---|
| CONFIG_PATH | string | Ein alternativer Speicherort für die LibreChat-Konfigurationsdatei. | # CONFIG_PATH=https://raw.githubusercontent.com/danny-avila/LibreChat/main/librechat.example.yaml |
Deployment Skills
Deployment Skills werden beim Start schreibgeschützt vom Dateisystem geladen und Benutzern zur Verfügung gestellt, bei denen die Skills-Funktion aktiviert ist.
| Key | Type | Description | Example |
|---|---|---|---|
| DEPLOYMENT_SKILLS_DIR | string | Verzeichnis mit den durch die Bereitstellung bereitgestellten Skills. Standardmäßig `./skill` im Projektstammverzeichnis. | # DEPLOYMENT_SKILLS_DIR=./skill |
Starten Sie LibreChat neu, nachdem Sie dieses Verzeichnis oder darin enthaltene Dateien geändert haben. Deployment-bereitgestellte Skills haben Vorrang vor gespeicherten Skills mit demselben Namen.
Konfigurationsvalidierung
Standardmäßig beendet sich LibreChat mit einem Fehler (Exit-Code 1), wenn die Konfigurationsdatei librechat.yaml Validierungsfehler enthält. Dieses Fail-Fast-Verhalten hilft dabei, Konfigurationsprobleme frühzeitig in Deployment-Pipelines zu erkennen und verhindert den Betrieb mit unbeabsichtigten Standardeinstellungen.
| Key | Type | Description | Example |
|---|---|---|---|
| CONFIG_BYPASS_VALIDATION | boolean | Wenn auf `true` gesetzt, protokolliert der Server eine Warnung und setzt den Start mit der Standardkonfiguration fort, selbst wenn `librechat.yaml` Validierungsfehler aufweist. Dies bewahrt das Legacy-Verhalten. | # CONFIG_BYPASS_VALIDATION=true |
Warnung
Die Verwendung von CONFIG_BYPASS_VALIDATION=true wird für Produktionsumgebungen nicht empfohlen. Sie ist als temporärer Workaround bei der Fehlersuche in Konfigurationsproblemen gedacht. Beheben Sie Validierungsfehler in Ihrer Konfigurationsdatei immer dauerhaft.
Behandlung nicht abgefangener Ausnahmen
Standardmäßig beendet LibreChat den Prozess, wenn eine unbehandelte Ausnahme (uncaught exception) auftritt, was dem Standardverhalten von Node.js entspricht. Sie können dies überschreiben, damit die App nach unbehandelten Ausnahmen weiterläuft.
| Key | Type | Description | Example |
|---|---|---|---|
| CONTINUE_ON_UNCAUGHT_EXCEPTION | boolean | Wenn auf `true` gesetzt, läuft die App nach dem Auftreten unbehandelter Ausnahmen weiter, anstatt den Prozess zu beenden. | # CONTINUE_ON_UNCAUGHT_EXCEPTION=false |
Warnung
Nicht für die Produktion empfohlen, sofern nicht unbedingt erforderlich. Nicht abgefangene Ausnahmen können die Anwendung in einen unvorhersehbaren Zustand versetzen.
Endpoints
In diesem Abschnitt können Sie die Endpunkte und die Modellauswahl, deren API-Schlüssel sowie die Proxy- und Reverse-Proxy-Einstellungen für die Endpunkte konfigurieren, die dies unterstützen.
Allgemeine Konfiguration
Entkommentieren Sie ENDPOINTS, um die verfügbaren Endpoints in LibreChat anzupassen.
| Key | Type | Description | Example |
|---|---|---|---|
| ENDPOINTS | string | Durch Kommas getrennte Liste der verfügbaren endpoints. | # ENDPOINTS=openAI,agents,assistants,gptPlugins,azureOpenAI,google,anthropic,bingAI,custom |
| PROXY | string | Ausgehender Proxy für unterstützte serverseitige Clients. Gilt sowohl für HTTP- als auch für HTTPS-Ziele. | PROXY= |
| HTTP_PROXY | string | HTTP-Proxy-Fallback, der von unterstützten serverseitigen Clients verwendet wird, wenn PROXY nicht gesetzt ist. | # HTTP_PROXY= |
| HTTPS_PROXY | string | HTTPS-Proxy-Fallback, der von unterstützten serverseitigen Clients verwendet wird, wenn PROXY nicht gesetzt ist. | # HTTPS_PROXY= |
| NO_PROXY | string | Durch Kommas getrennte Hosts, Domains oder IP-Bereiche, die von unterstützten serverseitigen Clients umgangen werden sollen. Die kleingeschriebene Variante no_proxy wird ebenfalls berücksichtigt. | # NO_PROXY= |
| TITLE_CONVO | boolean | Aktiviere die Titelgenerierung für alle endpoints. | TITLE_CONVO=true |
Bekannte Endpoints - librechat.yaml
- siehe auch: Custom Endpoints & Configuration
| Key | Type | Description | Example |
|---|---|---|---|
| ANYSCALE_API_KEY | string | API-Schlüssel für Anyscale. | # ANYSCALE_API_KEY= |
| APIPIE_API_KEY | string | API-Schlüssel für Apipie. | # APIPIE_API_KEY= |
| COHERE_API_KEY | string | API-Schlüssel für Cohere. | # COHERE_API_KEY= |
| FIREWORKS_API_KEY | string | API-Schlüssel für Fireworks. | # FIREWORKS_API_KEY= |
| GROQ_API_KEY | string | API-Schlüssel für Groq. | # GROQ_API_KEY= |
| MISTRAL_API_KEY | string | API-Schlüssel für Mistral. | # MISTRAL_API_KEY= |
| OPENROUTER_KEY | string | API-Schlüssel für OpenRouter. | # OPENROUTER_KEY= |
| PERPLEXITY_API_KEY | string | API-Schlüssel für Perplexity. | # PERPLEXITY_API_KEY= |
| SHUTTLEAI_API_KEY | string | API-Schlüssel für ShuttleAI. | # SHUTTLEAI_API_KEY= |
| TOGETHERAI_API_KEY | string | API-Schlüssel für TogetherAI. | # TOGETHERAI_API_KEY= |
| DEEPSEEK_API_KEY | string | API-Schlüssel für Deepseek API | # DEEPSEEK_API_KEY= |
Websuche
Die Websuchfunktion ermöglicht Internet-Suchfunktionen innerhalb von LibreChat.
Wichtig: Die exakten Namen der Umgebungsvariablen, die unten aufgeführt sind, sind Standardreferenzen und können über die Konfigurationsdatei librechat.yaml angepasst werden, um beliebige Variablennamen Ihrer Wahl zu verwenden.
Für detaillierte Konfigurations- und Anpassungsoptionen siehe: Web Search Configuration
| Key | Type | Description | Example |
|---|---|---|---|
| SERPER_API_KEY | string | API-Schlüssel für den Serper-Suchanbieter. Holen Sie sich Ihren Schlüssel unter https://serper.dev/api-keys | # SERPER_API_KEY= |
| TAVILY_API_KEY | string | API-Schlüssel für den Tavily-Such- und Scraper-Anbieter. Holen Sie sich Ihren Schlüssel unter https://app.tavily.com/home | # TAVILY_API_KEY= |
| TAVILY_SEARCH_URL | string | Benutzerdefinierte Tavily Search API-URL (optional). Nur für benutzerdefinierte oder Proxy-Tavily-kompatible Such-endpoints erforderlich. | # TAVILY_SEARCH_URL= |
| TAVILY_EXTRACT_URL | string | Benutzerdefinierte Tavily Extract API-URL (optional). Nur für benutzerdefinierte oder Proxy-Tavily-kompatible Extract-Endpunkte erforderlich. | # TAVILY_EXTRACT_URL= |
| FIRECRAWL_API_KEY | string | API-Schlüssel für den Firecrawl Scraper-Dienst. Holen Sie sich Ihren Schlüssel unter https://docs.firecrawl.dev/introduction#api-key | # FIRECRAWL_API_KEY= |
| FIRECRAWL_API_URL | string | Benutzerdefinierte Firecrawl API-URL (optional). Nur für benutzerdefinierte Firecrawl-Instanzen erforderlich. | # FIRECRAWL_API_URL= |
| FIRECRAWL_VERSION | string | Firecrawl API-Version (v0 oder v1). | # FIRECRAWL_VERSION=v1 |
| JINA_API_KEY | string | API-Schlüssel für den Jina Reranker-Dienst. Holen Sie sich Ihren Schlüssel unter https://jina.ai/api-dashboard/ | # JINA_API_KEY= |
| JINA_API_URL | string | Benutzerdefinierte Jina API-URL (optional). Nur für benutzerdefinierte Jina-Instanzen erforderlich. | # JINA_API_URL= |
| COHERE_API_KEY | string | API-Schlüssel für den Cohere Reranker-Dienst. Erhalten Sie Ihren Schlüssel unter https://dashboard.cohere.com/welcome/login | # COHERE_API_KEY= |
Hinweis: Diese Variablennamen können in Ihrer librechat.yaml Konfigurationsdatei angepasst werden. Sie könnten beispielsweise CUSTOM_SERPER_KEY anstelle von SERPER_API_KEY verwenden, indem Sie dies in den Web-Sucheinstellungen konfigurieren. Weitere Einzelheiten zur Anpassung von Variablennamen finden Sie in der Dokumentation zur Web Search Configuration.
Anthropic
siehe: Anthropic Endpoint
- Sie können einen Zugriffsschlüssel unter https://platform.claude.com/ anfordern.
- Lassen Sie
ANTHROPIC_API_KEY=leer, um diesen endpoint zu deaktivieren. - Setze
ANTHROPIC_API_KEY=auf "user_provided", damit Benutzer ihren eigenen API-Schlüssel über die WebUI eingeben können. - Wenn Sie Zugriff auf einen Reverse-Proxy für
Anthropichaben, können Sie diesen mitANTHROPIC_REVERSE_PROXY=festlegen.- leer lassen oder auskommentieren, um die Standard-Basis-URL zu verwenden
| Key | Type | Description | Example |
|---|---|---|---|
| ANTHROPIC_API_KEY | string | Anthropic API-Schlüssel oder "user_provided", damit Benutzer ihren eigenen API-Schlüssel bereitstellen können. | Defaults to an empty string. |
| ANTHROPIC_MODELS | string | Durch Kommas getrennte Liste der zu verwendenden Anthropic-Modelle. | # 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_PROXY | string | Reverse-Proxy für Anthropic. | # ANTHROPIC_REVERSE_PROXY= |
| ANTHROPIC_TITLE_MODEL | string | VERALTET: Zu verwendendes Modell für die Titelgenerierung mit Anthropic. | # ANTHROPIC_TITLE_MODEL=claude-3-haiku-20240307 |
ANTHROPIC_TITLE_MODEList jetzt veraltet und wird in zukünftigen Versionen entfernt. Verwenden Sie stattdessen dietitleModelEndpoint Setting in derlibrechat.yamlKonfiguration.
Hinweis: Muss mit dem Anthropic Endpoint kompatibel sein. Außerdem erzielen Claude 2 und Claude 3 Modelle bei dieser Aufgabe die besten Ergebnisse, wobei
claude-3-haikuModelle am kostengünstigsten sind.
Claude Fable 5 ist in der standardmäßigen Anthropic-Modellliste enthalten. Modelle der Fable/Mythos-Klasse nutzen das moderne Anthropic-Verhalten in LibreChat: 1M Kontext, Unterstützung für adaptives Denken (adaptive thinking), Unterstützung für Prompt-Caching und thinkingDisplay-Handhabung für zusammengefasste oder ausgelassene Reasoning-Ausgaben.
Anthropic via Vertex AI
Sie können Anthropic Claude Modelle auch über Google Cloud Vertex AI verwenden. Detaillierte YAML-Konfigurationsoptionen finden Sie unter: Anthropic Vertex AI Configuration
| Key | Type | Description | Example |
|---|---|---|---|
| ANTHROPIC_USE_VERTEX | boolean | Auf true setzen, um Anthropic-Modelle über Google Vertex AI anstelle der direkten API zu verwenden. | ANTHROPIC_USE_VERTEX=true |
| ANTHROPIC_VERTEX_REGION | string | Die Google Cloud-Region für Vertex AI. Standard: us-east5. | ANTHROPIC_VERTEX_REGION=us-east5 |
Hinweis: Wenn Sie Vertex AI verwenden, müssen Sie auch
GOOGLE_SERVICE_KEY_FILEkonfigurieren (siehe Google Configuration), und zwar mit einem Dienstkonto, das über die RolleVertex AI Userverfügt.
AWS Bedrock
Siehe: AWS Bedrock Setup
| Key | Type | Description | Example |
|---|---|---|---|
| BEDROCK_AWS_DEFAULT_REGION | string | Eine Standard-AWS-Region muss für Bedrock angegeben werden. | BEDROCK_AWS_DEFAULT_REGION=us-east-1 |
| BEDROCK_AWS_ACCESS_KEY_ID | string | AWS-Zugriffsschlüssel-ID für Bedrock. Optional bei Verwendung der standardmäßigen AWS-Anmeldeinformationskette. | # BEDROCK_AWS_ACCESS_KEY_ID=your_access_key_id |
| BEDROCK_AWS_SECRET_ACCESS_KEY | string | AWS Secret Access Key für Bedrock. Optional, falls die standardmäßige AWS-Credential-Chain verwendet wird. | # BEDROCK_AWS_SECRET_ACCESS_KEY=your_secret_access_key |
| BEDROCK_AWS_SESSION_TOKEN | string | AWS-Sitzungstoken für temporäre Anmeldeinformationen. Optional. | # BEDROCK_AWS_SESSION_TOKEN=your_session_token |
| BEDROCK_AWS_PROFILE | string | Name des AWS Shared Config-Profils für Bedrock. Optional, falls die standardmäßige AWS-Anmeldeinformationskette verwendet wird. | # BEDROCK_AWS_PROFILE=your-profile-name |
| BEDROCK_AWS_BEARER_TOKEN | string | Amazon Bedrock API-Schlüssel für Bearer-Authentifizierung oder user_provided, damit Benutzer ihren eigenen Bedrock API-Schlüssel in der UI eingeben können. | # BEDROCK_AWS_BEARER_TOKEN=your_bedrock_api_key |
| BEDROCK_AWS_MODELS | string | Durch Kommas getrennte Liste von Bedrock-Modell-IDs. Falls weggelassen, werden alle bekannten unterstützten Modelle einbezogen. | # 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 |
Hinweis: Sie können die Zugriffsschlüssel weglassen, um die standardmäßige AWS-Anmeldeinformationskette zu verwenden (Umgebungsvariablen, SSO-Anmeldeinformationen, gemeinsam genutzte Anmeldeinformationsdateien oder EC2/ECS Instance Metadata Service). Weitere Details finden Sie unter AWS Bedrock Setup.
Claude Fable/Mythos-Klasse-Modelle auf Bedrock sind nur als Inference-Profile verfügbar. Verwenden Sie eine Profil-ID wie us.anthropic.claude-fable-5 und aktivieren Sie die erforderliche Anthropic-Datenaustausch-Einstellung in der Bedrock-Konsole oder über die Data Retention API, bevor Sie diese aufrufen.
BingAI
Bing, auch verwendet für Sydney, Jailbreak und Bing Image Creator
| Key | Type | Description | Example |
|---|---|---|---|
| BINGAI_TOKEN | string | Bing-Zugriffstoken. Leer lassen, um es zu deaktivieren. Kann auf "user_provided" gesetzt werden, damit Benutzer ihr eigenes Token über das WebUI bereitstellen können. | BINGAI_TOKEN=user_provided |
| BINGAI_HOST | string | Bing Host-URL. Lassen Sie dies auskommentiert, um den Standard-Server zu verwenden. | # BINGAI_HOST=https://cn.bing.com |
Hinweis: Es wird empfohlen, den Wert auf "user_provided" zu belassen und das Token über das WebUI bereitzustellen.
Befolgen Sie diese Anweisungen, um den Google Endpoint einzurichten.
| Key | Type | Description | Example |
|---|---|---|---|
| GOOGLE_KEY | string | Google API-Schlüssel. Auf "user_provided" setzen, damit Benutzer ihren eigenen API-Schlüssel über das WebUI eingeben können. | GOOGLE_KEY=user_provided |
| GOOGLE_SERVICE_KEY_FILE | string | Pfad zur JSON-Schlüsseldatei des Google-Dienstkontos, URL zum Abrufen oder als String formatierte JSON. Wird für die Vertex AI-Authentifizierung verwendet (z. B. OCR-Funktionen). | GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json |
| GOOGLE_REVERSE_PROXY | string | Google Reverse-Proxy-URL. | GOOGLE_REVERSE_PROXY= |
| GOOGLE_AUTH_HEADER | boolean | Verwenden Sie den Authorization-Header anstelle von X-goog-api-key. Einige Reverse-Proxys erfordern dies. | # GOOGLE_AUTH_HEADER=true |
| GOOGLE_MODELS | string | Verfügbare Gemini API Google-Modelle, durch Kommas getrennt. | 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_MODELS | string | Verfügbare Vertex AI Google-Modelle, durch Kommas getrennt. | 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_MODEL | string | VERALTET: Das für die Titelvergabe mit Google verwendete Modell. | GOOGLE_TITLE_MODEL=gemini-pro |
| GOOGLE_LOC | string | Gibt den Google Cloud-Standort für die Verarbeitung von API-Anfragen an | GOOGLE_LOC=us-central1 |
| GOOGLE_CLOUD_LOCATION | string | Alternative Region für die Gemini-Bildgenerierung (z. B. global). | # GOOGLE_CLOUD_LOCATION=global |
| GOOGLE_EXCLUDE_SAFETY_SETTINGS | string | Lassen Sie die standardmäßig enthaltenen Sicherheitseinstellungen vollständig weg, wodurch die Standardeinstellungen des Anbieters verwendet werden | GOOGLE_EXCLUDE_SAFETY_SETTINGS=true |
| GOOGLE_SAFETY_SEXUALLY_EXPLICIT | string | Sicherheitseinstellung für sexuell explizite Inhalte. Die Optionen sind BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY und OFF. | GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH |
| GOOGLE_SAFETY_HATE_SPEECH | string | Sicherheitseinstellung für Hassrede-Inhalte. Die Optionen sind BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY und OFF. | GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH |
| GOOGLE_SAFETY_HARASSMENT | string | Sicherheitseinstellung für Belästigungsinhalte. Die Optionen sind BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY und OFF. | GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH |
| GOOGLE_SAFETY_DANGEROUS_CONTENT | string | Sicherheitseinstellung für gefährliche Inhalte. Die Optionen sind BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY und OFF. | GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH |
| GOOGLE_SAFETY_CIVIC_INTEGRITY | string | Sicherheitseinstellung für Inhalte zur staatsbürgerlichen Integrität. Die Optionen sind BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY und OFF. | # GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH |
Passen Sie die verfügbaren Modelle an, getrennt durch Kommas, ohne Leerzeichen. Das erste Modell wird als Standard festgelegt. Lassen Sie das Feld leer oder auskommentiert, um die internen Einstellungen zu verwenden.
GOOGLE_TITLE_MODEList jetzt veraltet und wird in zukünftigen Versionen entfernt. Verwenden Sie stattdessen dietitleModelEndpoint Setting in derlibrechat.yamlKonfiguration.
Hinweis: Für die Vertex AI GOOGLE_SAFETY-Variablen haben Sie standardmäßig keinen Zugriff auf die BLOCK_NONE-Einstellung. Um diese eingeschränkte HarmBlockThreshold-Einstellung zu verwenden, müssen Sie entweder:
- (a) Erhalten Sie Zugriff über eine Allowlist durch Ihr Google-Account-Team
- (b) Stellen Sie Ihren Kontotyp auf monatliche Rechnungsstellung um, indem Sie dieser Anleitung folgen: https://cloud.google.com/billing/docs/how-to/invoiced-billing
Gemini Bildgenerierung
Die Gemini Image Generation ist ein Tool für Agents, das sowohl die Gemini API als auch Vertex AI unterstützt. Siehe: Gemini Image Generation
| Key | Type | Description | Example |
|---|---|---|---|
| GEMINI_API_KEY | string | Dedizierter Gemini API-Key für die Bildgenerierung. Greift auf GOOGLE_KEY zurück, falls nicht festgelegt. | # GEMINI_API_KEY=your_gemini_api_key |
| GEMINI_IMAGE_MODEL | string | Gemini-Modell für die Bildgenerierung. Standard: gemini-2.5-flash-image. | # GEMINI_IMAGE_MODEL=gemini-2.5-flash-image |
Hinweis: Wenn kein API-Schlüssel konfiguriert ist, greift das Tool automatisch auf Vertex AI unter Verwendung des Dienstkontos aus
GOOGLE_SERVICE_KEY_FILEzurück. Das Dienstkonto muss über die RolleVertex AI Userverfügen.
OpenAI
Siehe: OpenAI Setup
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_API_KEY | string | Ihr OpenAI API-Schlüssel. Lassen Sie das Feld leer, um diesen endpoint zu deaktivieren, oder setzen Sie es auf "user_provided", damit Benutzer ihren eigenen API-Schlüssel über die WebUI eingeben können. | OPENAI_API_KEY=user_provided |
| OPENAI_MODELS | string | Passen Sie die verfügbaren Modelle an, getrennt durch Kommas, ohne Leerzeichen. Das erste wird als Standard verwendet. Lassen Sie es auskommentiert, um die internen Einstellungen zu verwenden. | # 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_OPENAI | boolean | Debug-Modus für den OpenAI endpoint aktivieren. | DEBUG_OPENAI=false |
| OPENAI_SUMMARIZE | boolean | Nachrichten-Zusammenfassung aktivieren. Standardmäßig auf False gesetzt | # OPENAI_SUMMARIZE=true |
| OPENAI_SUMMARY_MODEL | string | Das für die OpenAI-Zusammenfassung verwendete Modell. | # OPENAI_SUMMARY_MODEL=gpt-3.5-turbo |
| OPENAI_FORCE_PROMPT | boolean | Erzwingen, dass die API mit einem Prompt-Payload anstelle eines Messages-Payload aufgerufen wird. | # OPENAI_FORCE_PROMPT=false |
| OPENAI_ORGANIZATION | string | Geben Sie an, welche Organisation für jede API-Anfrage an OpenAI verwendet werden soll. Optional | # OPENAI_ORGANIZATION= |
| OPENAI_REVERSE_PROXY | string | VERALTET: Reverse-Proxy-Einstellungen für OpenAI. | # OPENAI_REVERSE_PROXY= |
| OPENAI_TITLE_MODEL | string | VERALTET: Das für die OpenAI-Titelgenerierung verwendete Modell. | # OPENAI_TITLE_MODEL=gpt-3.5-turbo |
OPENAI_TITLE_MODEList jetzt veraltet und wird in zukünftigen Versionen entfernt. Verwenden Sie stattdessen dietitleModelEndpoint Setting in derlibrechat.yamlKonfiguration.OPENAI_REVERSE_PROXYist jetzt veraltet und wird in zukünftigen Versionen entfernt. Verwenden Sie stattdessen einen benutzerdefinierten endpoint.
Assistants
Siehe: Assistants Setup
| Key | Type | Description | Example |
|---|---|---|---|
| ASSISTANTS_API_KEY | string | Ihr OpenAI API-Schlüssel für die Assistants API. Lassen Sie das Feld leer, um diesen endpoint zu deaktivieren, oder setzen Sie es auf "user_provided", damit Benutzer ihren eigenen API-Schlüssel über das WebUI eingeben können. | ASSISTANTS_API_KEY=user_provided |
| ASSISTANTS_MODELS | string | Passen Sie die verfügbaren Modelle an, durch Kommas getrennt, ohne Leerzeichen. Das erste wird als Standard verwendet. Lassen Sie es leer, um die internen Einstellungen zu verwenden. | # 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_URL | string | Alternative Basis-URL für die Assistants API. | # ASSISTANTS_BASE_URL= |
Hinweis: Sie können die verfügbaren Modelle durch Kommas getrennt und ohne Leerzeichen anpassen. Das erste Modell wird als Standard verwendet. Lassen Sie das Feld leer oder auskommentiert, um die internen Einstellungen zu verwenden.
Tavily
Holen Sie sich Ihren API-Schlüssel hier: https://tavily.com/#api
Umgebungsvariablen:
| Key | Type | Description | Example |
|---|---|---|---|
| TAVILY_API_KEY | string | Tavily API-Schlüssel. | TAVILY_API_KEY= |
Traversaal
Beschreibung: LLM-gestütztes Suchwerkzeug.
Holen Sie sich den API-Schlüssel hier: https://api.traversaal.ai/dashboard
Umgebungsvariablen:
| Key | Type | Description | Example |
|---|---|---|---|
| TRAVERSAAL_API_KEY | string | Traversaal API-Schlüssel. | TRAVERSAAL_API_KEY= |
WolframAlpha
Detaillierte Anweisungen finden Sie hier: Wolfram Alpha
Umgebungsvariablen:
| Key | Type | Description | Example |
|---|---|---|---|
| WOLFRAM_APP_ID | string | Wolfram Alpha App ID | WOLFRAM_APP_ID= |
Zapier
Beschreibung: - Sie benötigen ein Zapier-Konto. Holen Sie sich Ihren API-Schlüssel hier: Zapier
- Erstellen Sie zulässige Aktionen – Befolgen Sie Schritt 3 in dieser Anleitung für den Einstieg von Zapier
Hinweis: Es ist bekannt, dass Zapier bei bestimmten Aktionen etwas eigenwillig ist. Das Entwerfen von E-Mails ist wahrscheinlich der beste Anwendungsfall dafür.
Umgebungsvariablen:
| Key | Type | Description | Example |
|---|---|---|---|
| ZAPIER_NLA_API_KEY | string | Zapier NLA API-Schlüssel. | ZAPIER_NLA_API_KEY= |
OpenWeather
Detaillierte Anweisungen finden Sie hier: OpenWeather
| Key | Type | Description | Example |
|---|---|---|---|
| OPENWEATHER_API_KEY | string | OpenWeather API-Schlüssel für die One Call API 3.0. | OPENWEATHER_API_KEY= |
Code Interpreter
Die Code Interpreter API bietet eine sichere Umgebung für die Ausführung von Code und die Verwaltung von Dateien. Siehe: Code Interpreter API
| Key | Type | Description | Example |
|---|---|---|---|
| LIBRECHAT_CODE_API_KEY | string | API-Schlüssel für den Code Interpreter-Dienst. Wenn global festgelegt, bietet er allen Benutzern Zugriff. | LIBRECHAT_CODE_API_KEY=your-api-key |
| LIBRECHAT_CODE_BASEURL | string | Benutzerdefinierte Basis-URL für die Code Interpreter API (nur Enterprise-Pläne). | # LIBRECHAT_CODE_BASEURL=https://your-custom-domain.com |
Artifacts
Artifacts nutzen die CodeSandbox-Bibliothek für das sichere Rendern von HTML/JS-Code. Standardmäßig wird das öffentliche CDN von CodeSandbox verwendet.
Glücklicherweise können Sie für Anforderungen an interne Netzwerke den Bundler selbst hosten, der den Frontend-Code kompiliert, und eine benutzerdefinierte Bundler-URL für Sandpack angeben.
Für weitere Informationen, einschließlich vorgefertigter Container-Images für das Self-Hosting ohne Metrik-Anfragen, siehe: https://github.com/LibreChat-AI/codesandbox-client
| Key | Type | Description | Example |
|---|---|---|---|
| SANDPACK_BUNDLER_URL | string | Gibt eine benutzerdefinierte Bundler-URL für Sandpack an, die von Artifacts verwendet wird | SANDPACK_BUNDLER_URL=your-bundler-url |
Suche (Meilisearch)
Aktiviert die Suche in Nachrichten und Unterhaltungen:
| Key | Type | Description | Example |
|---|---|---|---|
| SEARCH | boolean | Ermöglicht die Suche in Nachrichten und Unterhaltungen. | SEARCH=true |
Hinweis: Wenn Sie kein Docker verwenden, ist die Installation der kostenlosen, selbst gehosteten Meilisearch oder ein kostenpflichtiger Remote-Plan erforderlich.
Um anonymisierte Telemetrie-Analysen für MeiliSearch für absolute Privatsphäre zu deaktivieren, setzen Sie dies auf true:
| Key | Type | Description | Example |
|---|---|---|---|
| MEILI_NO_ANALYTICS | boolean | Deaktiviert anonymisierte Telemetrie-Analysen für MeiliSearch. | MEILI_NO_ANALYTICS=true |
Damit der API-Server eine Verbindung zum Suchserver herstellen kann. Ersetzen Sie '0.0.0.0' durch 'meilisearch', falls Sie MeiliSearch mit docker-compose betreiben.
| Key | Type | Description | Example |
|---|---|---|---|
| MEILI_HOST | string | Die API-Serververbindung zum Suchserver. | MEILI_HOST=http://0.0.0.0:7700 |
Dieser Master-Key muss mindestens 16 Bytes lang sein und aus gültigen UTF-8-Zeichen bestehen. MeiliSearch gibt einen Fehler aus und verweigert den Start, wenn kein Master-Key bereitgestellt wird oder dieser weniger als 16 Bytes umfasst. MeiliSearch schlägt einen sicheren, automatisch generierten Master-Key vor. Dies ist ein fertiger, sicherer Key für docker-compose; Sie können ihn durch Ihren eigenen ersetzen.
| Key | Type | Description | Example |
|---|---|---|---|
| MEILI_MASTER_KEY | string | Der Master-Key für MeiliSearch. | MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt |
Um zu verhindern, dass LibreChat versucht, eine Datenbank-Index-Synchronisierung mit Meilisearch durchzuführen, können Sie die folgende Umgebungsvariable auf true setzen. Dies ist nützlich in einem Node-Cluster oder einer Multi-Node-Einrichtung, bei der nur eine Instanz für die Indizierung verantwortlich sein sollte.
| Key | Type | Description | Example |
|---|---|---|---|
| MEILI_NO_SYNC | string | Umschalter zum Deaktivieren der Meilisearch-Index-Synchronisierung | MEILI_NO_SYNC=true |
RAG API
Konfigurieren Sie Retrieval-Augmented Generation für die Dokumentenindizierung und kontextbezogene Antworten. Siehe: RAG API Configuration
| Key | Type | Description | Example |
|---|---|---|---|
| RAG_API_URL | string | URL des RAG-API-Dienstes. | RAG_API_URL=http://host.docker.internal:8000 |
| RAG_OPENAI_API_KEY | string | OpenAI API-Schlüssel für RAG-Embeddings. Überschreibt OPENAI_API_KEY für RAG. | # RAG_OPENAI_API_KEY=sk-your-openai-api-key |
| RAG_OPENAI_BASEURL | string | Benutzerdefinierte OpenAI-Basis-URL für RAG-Embeddings. | # RAG_OPENAI_BASEURL= |
| RAG_USE_FULL_CONTEXT | boolean | Gesamten Dateikontext anstelle der obersten 4 Ergebnisse abrufen. Standard: false. | # RAG_USE_FULL_CONTEXT=true |
| EMBEDDINGS_PROVIDER | string | Embeddings-Anbieter: openai, azure, huggingface, huggingfacetei oder ollama. Standard: openai. | # EMBEDDINGS_PROVIDER=openai |
| EMBEDDINGS_MODEL | string | Zu verwendendes Embeddings-Modell. Der Standardwert hängt vom Anbieter ab. | # EMBEDDINGS_MODEL=text-embedding-3-small |
Hinweis: Bei Verwendung der Standard-Docker-Einrichtung wird die
.env-Datei zwischen LibreChat und der RAG API geteilt. Für vollständige Konfigurationsoptionen siehe die RAG API-Dokumentation.
Speech to Text & Text to Speech
Konfigurieren Sie Speech-to-Text (STT) und Text-to-Speech (TTS) Dienste. Siehe: Spracheinstellungen
| Key | Type | Description | Example |
|---|---|---|---|
| STT_API_KEY | string | API-Schlüssel für den Speech-to-Text-Dienst (z. B. OpenAI Whisper). | # STT_API_KEY= |
| TTS_API_KEY | string | API-Schlüssel für den Text-to-Speech-Dienst (z. B. OpenAI TTS). | # TTS_API_KEY= |
Hinweis: STT und TTS werden primär über den Abschnitt
speech:in derlibrechat.yamlkonfiguriert. Diese Umgebungsvariablen werden in dieser Konfiguration referenziert. Siehe Spracheinstellungen für vollständige YAML-Konfigurationsoptionen.
Geteilte Links
Konfigurieren Sie die Funktionalität für geteilte Konversationslinks.
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_SHARED_LINKS | boolean | Aktiviert oder deaktiviert geteilte Konversationslinks. Standard: true. | ALLOW_SHARED_LINKS=true |
| ALLOW_SHARED_LINKS_PUBLIC | boolean | Erlaubt den öffentlichen Zugriff auf geteilte Links ohne Authentifizierung. Standard: false. | ALLOW_SHARED_LINKS_PUBLIC=false |
| SHARED_LINKS_SNAPSHOT_FILES | boolean | Snapshot-Dateien, auf die ein geteilter Chat verweist, damit Betrachter sie über den geteilten Link in der Vorschau anzeigen oder herunterladen können. Überschreibt interface.sharedLinks.snapshotFiles, wenn festgelegt. | SHARED_LINKS_SNAPSHOT_FILES=true |
ALLOW_SHARED_LINKS ist der funktionsweite Schalter. Rollenberechtigungen steuern nun, wer geteilte Links erstellen, sie mit authentifizierten Benutzern teilen oder sie für alle sichtbar machen kann; siehe interface.sharedLinks. ALLOW_SHARED_LINKS_PUBLIC steuert lediglich, ob öffentlich geteilte Links ohne Authentifizierung angesehen werden können. SHARED_LINKS_SNAPSHOT_FILES ist eine globale Außerkraftsetzung für Dateisnapshots geteilter Links und kann die Bereitstellung von Snapshots für jeden Link deaktivieren, wenn es auf false gesetzt ist.
Benutzer-System
Dieser Abschnitt enthält die Konfiguration für:
- Automatisierte Moderation
- Guthaben/Token-Nutzung
- Registrierung und Social Logins
- E-Mail-Passwort-Zurücksetzung
Moderation
Das automatisierte Moderationssystem verwendet einen Bewertungsmechanismus, um Benutzerverstöße zu verfolgen. Wenn Benutzer Aktionen wie übermäßige Anmeldungen, Registrierungen oder Nachrichtenversand durchführen, sammeln sie Verstoßpunkte an. Beim Erreichen eines festgelegten Schwellenwerts werden der Benutzer und dessen IP-Adresse vorübergehend gesperrt. Dieses System gewährleistet die Plattformsicherheit, indem es schnelle oder verdächtige Aktivitäten überwacht und sanktioniert.
siehe: Automated Moderation
Grundlegende Moderationseinstellungen
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | Ob die OpenAI-Moderation für die **OpenAI**- und **Plugins**-endpoint aktiviert werden soll oder nicht. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | Ihr OpenAI API-Schlüssel. | OPENAI_MODERATION_API_KEY= |
| OPENAI_MODERATION_REVERSE_PROXY | string | Hinweis: Standardmäßig auskommentiert, dies funktioniert nicht mit allen Reverse Proxys. | # OPENAI_MODERATION_REVERSE_PROXY= |
Einstellungen zum Sperren
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | Ob Benutzer bei Verstößen gesperrt werden sollen oder nicht (sie werden weiterhin protokolliert). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | Dauer der Sperre für den Benutzer und die zugehörige IP (in Millisekunden). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | Der Benutzer wird jedes Mal gesperrt, wenn sein Punktestand den Intervall-Schwellenwert erreicht oder überschreitet. | BAN_INTERVAL=20 |
Ratenbegrenzung für Anmeldung und Registrierung
Verhindert Brute-Force-Angriffe und Spam-Registrierungen durch die Begrenzung von Anmeldeversuchen und neuen Kontoregistrierungen.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | integer | Die maximale Anzahl an erlaubten Anmeldungen pro IP innerhalb eines LOGIN_WINDOW. | LOGIN_MAX=7 |
| LOGIN_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für LOGIN_MAX Anmeldungen. | LOGIN_WINDOW=5 |
| REGISTER_MAX | integer | Die maximale Anzahl an Registrierungen pro IP innerhalb eines REGISTER_WINDOW. | REGISTER_MAX=5 |
| REGISTER_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für REGISTER_MAX Registrierungen. | REGISTER_WINDOW=60 |
Bewertung für jeden Verstoß
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | Punktzahl für Anmeldeverstöße. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | Punktzahl für Registrierungsverstöße. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | Punktzahl für gleichzeitige Verstöße. | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | Bewertung für Nachrichtenverstöße. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | Punktzahl für Nicht-Browser-Verstöße. | NON_BROWSER_VIOLATION_SCORE=20 |
| ILLEGAL_MODEL_REQ_SCORE | integer | Bewertung für unzulässige Modellanfragen. | ILLEGAL_MODEL_REQ_SCORE=5 |
| IMPORT_VIOLATION_SCORE | integer | Bewertung für Verstöße beim Import von Unterhaltungen. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | Bewertung für Verstöße bei der Konversationsverzweigung. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | Bewertung für Text-to-Speech-Verstöße. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | Bewertung für Speech-to-Text-Verstöße. | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | Punktzahl für Verstöße beim Hochladen von Dateien. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | Punktzahl für Verstöße beim Zurücksetzen des Passworts. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | Punktzahl für Verstöße bei der E-Mail-Verifizierung. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | Bewertung für Tool-Call-Verstöße. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | Punktzahl für Verstöße gegen den Konversationszugriff. | CONVO_ACCESS_VIOLATION_SCORE=0 |
Hinweis: Zugriffe, die nicht über einen Browser erfolgen, sowie illegale Modellanfragen sind fast immer bösartig, da dies bedeutet, dass ein Dritter versucht, über ein automatisiertes Skript auf den Server zuzugreifen.
Nachrichten-Ratenbegrenzung (pro Benutzer & IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | Ob die Anzahl der Nachrichten, die ein Benutzer pro Anfrage senden kann, begrenzt werden soll. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | Die maximale Anzahl an Nachrichten, die ein Benutzer pro Anfrage senden kann. | CONCURRENT_MESSAGE_MAX=2 |
Limiters
Hinweis: Sie können beide Begrenzungen verwenden, standardmäßig erfolgt die Begrenzung jedoch nur nach IP.
IP-Begrenzer:
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | Ob die Anzahl der Nachrichten, die eine IP-Adresse pro `MESSAGE_IP_WINDOW` senden kann, begrenzt werden soll. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | Die maximale Anzahl an Nachrichten, die eine IP pro `MESSAGE_IP_WINDOW` senden kann. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `MESSAGE_IP_MAX` Nachrichten. | MESSAGE_IP_WINDOW=1 |
Benutzer-Limiter:
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | Ob die Anzahl der Nachrichten, die ein Benutzer pro `MESSAGE_USER_WINDOW` senden kann, begrenzt werden soll. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | Die maximale Anzahl an Nachrichten, die ein Benutzer pro `MESSAGE_USER_WINDOW` senden kann. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `MESSAGE_USER_MAX` Nachrichten. | MESSAGE_USER_WINDOW=1 |
Import-Ratenbegrenzung für Konversationen
Begrenzt, wie oft Benutzer Konversationen importieren können, um Missbrauch zu verhindern.
Hinweis: Sie können beide Begrenzungen verwenden, standardmäßig erfolgt die Begrenzung jedoch nur nach IP.
IP-Begrenzer:
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | Ob die Anzahl der Konversationsimporte, die eine IP pro `IMPORT_IP_WINDOW` durchführen kann, begrenzt werden soll. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | Die maximale Anzahl an Konversationsimporten, die eine IP pro `IMPORT_IP_WINDOW` durchführen kann. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `IMPORT_IP_MAX`-Importe. | IMPORT_IP_WINDOW=1 |
Benutzer-Limiter:
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | Ob die Anzahl der Konversationsimporte, die ein Benutzer pro `IMPORT_USER_WINDOW` durchführen kann, begrenzt werden soll. | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | Die maximale Anzahl an Konversationsimporten, die ein Benutzer pro `IMPORT_USER_WINDOW` durchführen kann. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `IMPORT_USER_MAX` Importe. | IMPORT_USER_WINDOW=1 |
Ratenbegrenzung für das Forken von Unterhaltungen
Begrenzt, wie oft Benutzer Konversationen forken können, um Missbrauch zu verhindern.
Hinweis: Sie können beide Begrenzungen verwenden, standardmäßig erfolgt die Begrenzung jedoch nur nach IP.
IP-Begrenzer:
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | Ob die Anzahl der Konversations-Forks, die eine IP pro `FORK_IP_WINDOW` erstellen kann, begrenzt werden soll. | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | Die maximale Anzahl an Konversations-Forks, die eine IP pro `FORK_IP_WINDOW` erstellen kann. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `FORK_IP_MAX` Forks. | FORK_IP_WINDOW=1 |
Benutzer-Limiter:
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | Ob die Anzahl der Konversations-Forks, die ein Benutzer pro `FORK_USER_WINDOW` erstellen kann, begrenzt werden soll. | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | Die maximale Anzahl an Konversations-Forks, die ein Benutzer pro `FORK_USER_WINDOW` erstellen kann. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `FORK_USER_MAX` Forks. | FORK_USER_WINDOW=1 |
Ratenbegrenzung für Datei-Uploads
Begrenzt, wie oft Benutzer Dateien hochladen können, um Missbrauch zu verhindern.
Hinweis: Diese können auch über
librechat.yamlim AbschnittrateLimits.fileUploadskonfiguriert werden.
IP-Begrenzer:
| Key | Type | Description | Example |
|---|---|---|---|
| FILE_UPLOAD_IP_MAX | integer | Maximale Datei-Uploads pro IP pro `FILE_UPLOAD_IP_WINDOW`. Standard: 100. | # FILE_UPLOAD_IP_MAX=100 |
| FILE_UPLOAD_IP_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `FILE_UPLOAD_IP_MAX`. Standard: 15. | # FILE_UPLOAD_IP_WINDOW=15 |
Benutzer-Limiter:
| Key | Type | Description | Example |
|---|---|---|---|
| FILE_UPLOAD_USER_MAX | integer | Maximale Datei-Uploads pro Benutzer pro `FILE_UPLOAD_USER_WINDOW`. Standard: 50. | # FILE_UPLOAD_USER_MAX=50 |
| FILE_UPLOAD_USER_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `FILE_UPLOAD_USER_MAX`. Standard: 15. | # FILE_UPLOAD_USER_WINDOW=15 |
TTS (Text-to-Speech) Ratenbegrenzung
Begrenzt, wie oft Benutzer Text-to-Speech verwenden können, um Missbrauch zu verhindern.
Hinweis: Diese können auch über
librechat.yamlim AbschnittrateLimits.ttskonfiguriert werden.
IP-Begrenzer:
| Key | Type | Description | Example |
|---|---|---|---|
| TTS_IP_MAX | integer | Maximale TTS-Anfragen pro IP innerhalb von `TTS_IP_WINDOW`. Standard: 100. | # TTS_IP_MAX=100 |
| TTS_IP_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `TTS_IP_MAX`. Standard: 1. | # TTS_IP_WINDOW=1 |
Benutzer-Limiter:
| Key | Type | Description | Example |
|---|---|---|---|
| TTS_USER_MAX | integer | Maximale TTS-Anfragen pro Benutzer pro `TTS_USER_WINDOW`. Standard: 50. | # TTS_USER_MAX=50 |
| TTS_USER_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `TTS_USER_MAX`. Standard: 1. | # TTS_USER_WINDOW=1 |
STT (Speech-to-Text) Ratenbegrenzung
Begrenzt, wie oft Benutzer Speech-to-Text verwenden können, um Missbrauch zu verhindern.
Hinweis: Diese können auch über
librechat.yamlim AbschnittrateLimits.sttkonfiguriert werden.
IP-Begrenzer:
| Key | Type | Description | Example |
|---|---|---|---|
| STT_IP_MAX | integer | Maximale STT-Anfragen pro IP pro `STT_IP_WINDOW`. Standardwert: 100. | # STT_IP_MAX=100 |
| STT_IP_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `STT_IP_MAX`. Standard: 1. | # STT_IP_WINDOW=1 |
Benutzer-Limiter:
| Key | Type | Description | Example |
|---|---|---|---|
| STT_USER_MAX | integer | Maximale STT-Anfragen pro Benutzer pro `STT_USER_WINDOW`. Standardwert: 50. | # STT_USER_MAX=50 |
| STT_USER_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `STT_USER_MAX`. Standard: 1. | # STT_USER_WINDOW=1 |
Guthaben
Die folgende Funktion ermöglicht die Verwaltung von Benutzerguthaben innerhalb der endpoint des Systems. Sie haben die Option, Guthaben manuell hinzuzufügen, oder Sie können ein System implementieren, das Guthaben automatisch für Benutzer ansammelt. Wenn in der Konfiguration ein spezifisches Anfangsguthaben definiert ist, werden dem Benutzer bei der Registrierung automatisch Token auf sein Guthaben gutgeschrieben.
siehe: Token Usage
| Key | Type | Description | Example |
|---|---|---|---|
| CHECK_BALANCE | boolean | Aktiviere Token-Guthaben für die OpenAI/Plugins endpoints. | CHECK_BALANCE=false |
| START_BALANCE | integer | Wenn der Wert festgelegt ist, werden dem Guthaben des Benutzers nach der Registrierung Token gutgeschrieben. | START_BALANCE=20000 |
Guthaben verwalten
- Führen Sie
npm run add-balanceaus, um Guthaben manuell hinzuzufügen.- Sie können auch die E-Mail-Adresse und den Token-Guthabenbetrag angeben, der hinzugefügt werden soll, z. B.:
npm run add-balance [email protected] 1000
- Sie können auch die E-Mail-Adresse und den Token-Guthabenbetrag angeben, der hinzugefügt werden soll, z. B.:
- Führen Sie
npm run set-balanceaus, um Guthaben manuell festzulegen, ähnlich wie beiadd-balance. - Führen Sie
npm run list-balancesaus, um das Guthaben jedes Benutzers aufzulisten.
Hinweis: 1000 Credits = $0,001 (1 Mill USD)
Registrierung und Anmeldung
siehe: Authentication System
Klärung der Konfigurationsdatei
Alle Authentifizierungseinstellungen in diesem Abschnitt sollten in Ihrer .env Datei konfiguriert werden, nicht in der librechat.yaml Datei oder docker-compose.override.yml. Die docker-compose.override.yml Datei wird nur verwendet, um Volumes einzubinden und Umgebungsvariablen für Docker zu setzen, während die librechat.yaml Datei für benutzerdefinierte endpoints und andere Anwendungseinstellungen verwendet wird.
- Allgemeine Einstellungen:
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_EMAIL_LOGIN | boolean | Aktivieren oder deaktivieren Sie NUR die E-Mail-Anmeldung. | ALLOW_EMAIL_LOGIN=true |
| ALLOW_REGISTRATION | boolean | E-Mail-Registrierung für neue Benutzer aktivieren oder deaktivieren. | ALLOW_REGISTRATION=true |
| ALLOW_SOCIAL_LOGIN | boolean | Erlauben Sie Benutzern, sich mit verschiedenen sozialen Netzwerken bei LibreChat anzumelden. | ALLOW_SOCIAL_LOGIN=false |
| ALLOW_SOCIAL_REGISTRATION | boolean | Aktivieren oder deaktivieren Sie die Registrierung neuer Benutzer über verschiedene soziale Netzwerke. | ALLOW_SOCIAL_REGISTRATION=false |
| ALLOW_PASSWORD_RESET | boolean | Aktivieren oder deaktivieren Sie die Möglichkeit für Benutzer, ihr Passwort selbst zurückzusetzen | ALLOW_PASSWORD_RESET=false |
| ALLOW_ACCOUNT_DELETION | boolean | Aktivieren oder deaktivieren Sie die Möglichkeit für Benutzer, ihr Konto selbst zu löschen. Standardmäßig aktiviert, wenn weggelassen oder auskommentiert. | ALLOW_ACCOUNT_DELETION=true |
| ALLOW_UNVERIFIED_EMAIL_LOGIN | boolean | Auf true setzen, um Benutzern die Anmeldung ohne Verifizierung ihrer E-Mail-Adresse zu ermöglichen. Wenn auf false gesetzt, müssen Benutzer ihre E-Mail-Adresse verifizieren, bevor sie sich anmelden können. | ALLOW_UNVERIFIED_EMAIL_LOGIN=true |
| MIN_PASSWORD_LENGTH | number | Minimale Passwortlänge für die Benutzerauthentifizierung. Bei der Verwendung von LDAP-Authentifizierung sollten Sie diesen Wert eventuell auf 1 setzen, um die lokale Passwortvalidierung zu umgehen, da LDAP-Server ihre eigenen Passwortrichtlinien verwalten. | MIN_PASSWORD_LENGTH=8 |
Kurzer Tipp: Auch wenn die Registrierung deaktiviert ist, können Sie Benutzer direkt über die Datenbank mit
npm run create-userhinzufügen.
Kurzer Tipp: Wenn die Registrierung deaktiviert ist, können Sie einen Benutzer mit
npm run delete-user [email protected]löschen.
- Einstellungen für Sitzungs- und Refresh-Token:
| Key | Type | Description | Example |
|---|---|---|---|
| SESSION_EXPIRY | integer (milliseconds) | Zeit bis zum Sitzungsablauf. | SESSION_EXPIRY=1000 * 60 * 15 |
| REFRESH_TOKEN_EXPIRY | integer (milliseconds) | Ablaufzeit des Refresh-Tokens. | REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7 |
| SESSION_COOKIE_SECURE | boolean | Überschreibt das Secure-Attribut für Sitzungs-/Authentifizierungs-Cookies. Lassen Sie es leer, um die standardmäßige NODE_ENV/DOMAIN_SERVER-Heuristik zu verwenden. | # SESSION_COOKIE_SECURE=false |
-
Für weitere Informationen: Refresh Token
-
JWT-Einstellungen:
Sie sollten neue sichere Werte verwenden. Die angegebenen Beispiele sind 32-Byte-Schlüssel (64 Zeichen in Hex). Verwenden Sie dieses Replit, um schnell welche zu generieren: JWT Keys
| Key | Type | Description | Example |
|---|---|---|---|
| JWT_SECRET | string (hex) | JWT-Geheimschlüssel. | JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef |
| JWT_REFRESH_SECRET | string (hex) | JWT-Refresh-Secret-Key. | JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 |
Social Logins
Für weitere Details: OAuth2-OIDC
Apple-Authentifizierung
Für weitere Informationen: Apple Authentication
| Key | Type | Description | Example |
|---|---|---|---|
| APPLE_CLIENT_ID | string | Ihre Apple Services ID (z. B. com.yourdomain.librechat.services). | APPLE_CLIENT_ID=com.yourdomain.librechat.services |
| APPLE_TEAM_ID | string | Deine Apple Developer Team ID. | APPLE_TEAM_ID=YOUR_TEAM_ID |
| APPLE_KEY_ID | string | Deine Apple Key ID aus dem heruntergeladenen Schlüssel. | APPLE_KEY_ID=YOUR_KEY_ID |
| APPLE_PRIVATE_KEY_PATH | string | Absoluter Pfad zu Ihrer heruntergeladenen .p8-Datei. | APPLE_PRIVATE_KEY_PATH=/path/to/AuthKey.p8 |
| APPLE_CALLBACK_URL | string | Die Callback-URL für die Apple-Authentifizierung. | APPLE_CALLBACK_URL=/oauth/apple/callback |
Discord-Authentifizierung
Für weitere Informationen: Discord
| Key | Type | Description | Example |
|---|---|---|---|
| DISCORD_CLIENT_ID | string | Deine Discord-Client-ID. | DISCORD_CLIENT_ID= |
| DISCORD_CLIENT_SECRET | string | Ihr Discord Client Secret. | DISCORD_CLIENT_SECRET= |
| DISCORD_CALLBACK_URL | string | Die Callback-URL für die Discord-Authentifizierung. | DISCORD_CALLBACK_URL=/oauth/discord/callback |
Facebook-Authentifizierung
Für weitere Informationen: Facebook Authentication
| Key | Type | Description | Example |
|---|---|---|---|
| FACEBOOK_CLIENT_ID | string | Ihre Facebook-Client-ID. | FACEBOOK_CLIENT_ID= |
| FACEBOOK_CLIENT_SECRET | string | Ihr Facebook Client Secret. | FACEBOOK_CLIENT_SECRET= |
| FACEBOOK_CALLBACK_URL | string | Die Callback-URL für die Facebook-Authentifizierung. | FACEBOOK_CALLBACK_URL=/oauth/facebook/callback |
GitHub-Authentifizierung
Für weitere Informationen: GitHub Authentication
| Key | Type | Description | Example |
|---|---|---|---|
| GITHUB_CLIENT_ID | string | Deine GitHub Client ID. | GITHUB_CLIENT_ID= |
| GITHUB_CLIENT_SECRET | string | Ihr GitHub Client Secret. | GITHUB_CLIENT_SECRET= |
| GITHUB_CALLBACK_URL | string | Die Callback-URL für die GitHub-Authentifizierung. | GITHUB_CALLBACK_URL=/oauth/github/callback |
| GITHUB_ENTERPRISE_BASE_URL | string | Optional: Die Basis-URL für Ihre GitHub Enterprise-Instanz. | GITHUB_ENTERPRISE_BASE_URL= |
| GITHUB_ENTERPRISE_USER_AGENT | string | Optional: Der User-Agent für GitHub Enterprise-Anfragen. | GITHUB_ENTERPRISE_USER_AGENT= |
Google-Authentifizierung
Für weitere Informationen: Google Authentication
| Key | Type | Description | Example |
|---|---|---|---|
| GOOGLE_CLIENT_ID | string | Ihre Google-Client-ID. | GOOGLE_CLIENT_ID= |
| GOOGLE_CLIENT_SECRET | string | Ihr Google Client Secret. | GOOGLE_CLIENT_SECRET= |
| GOOGLE_CALLBACK_URL | string | Die Callback-URL für die Google-Authentifizierung. | GOOGLE_CALLBACK_URL=/oauth/google/callback |
OpenID Connect
Für weitere Informationen:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENID_CLIENT_ID | string | Ihre OpenID-Client-ID. | OPENID_CLIENT_ID= |
| OPENID_CLIENT_SECRET | string | Ihr OpenID Client Secret. | OPENID_CLIENT_SECRET= |
| OPENID_ISSUER | string | Die OpenID Issuer-URL. | OPENID_ISSUER= |
| OPENID_SESSION_SECRET | string | Das Secret für die OpenID-Sitzungsspeicherung. | OPENID_SESSION_SECRET= |
| OPENID_SCOPE | string | Der OpenID-Scope. | OPENID_SCOPE="openid profile email" |
| OPENID_CALLBACK_URL | string | Die Callback-URL für die OpenID-Authentifizierung. | OPENID_CALLBACK_URL=/oauth/openid/callback |
| OPENID_AUDIENCE | string | Audience-Wert für OpenID JWT-Validierungs- und Autorisierungsanfragen. Kommagetrennte Werte werden für die JWT-Validierung akzeptiert; Autorisierungsanfragen verwenden den ersten nicht leeren Wert. Erforderlich für Auth0 bei Verwendung von OPENID_REUSE_TOKENS=true, um JWT-Zugriffstoken anstelle von opaken Token zu erhalten. | OPENID_AUDIENCE=https://api.librechat.com |
| OPENID_REQUIRED_ROLE | string | Die erforderliche(n) Rolle(n) für die Validierung. Unterstützt eine einzelne Rolle oder mehrere durch Kommas getrennte Rollen. Wenn mehrere Rollen angegeben sind, benötigt der Benutzer EINE der angegebenen Rollen (ODER-Logik). | OPENID_REQUIRED_ROLE=admin or OPENID_REQUIRED_ROLE=role1,role2,admin |
| OPENID_REQUIRED_ROLE_TOKEN_KIND | string | Die Token-Art für die erforderliche Rollenvalidierung. | OPENID_REQUIRED_ROLE_TOKEN_KIND= |
| OPENID_REQUIRED_ROLE_PARAMETER_PATH | string | Der Parameterpfad für die erforderliche Rollenvalidierung. | OPENID_REQUIRED_ROLE_PARAMETER_PATH= |
| OPENID_ADMIN_ROLE | string | Die Rolle, die der Benutzer haben sollte, um ein Administrator in LibreChat zu sein. | OPENID_ADMIN_ROLE= |
| OPENID_ADMIN_ROLE_TOKEN_KIND | string | Die Informationsquelle für die Überprüfung der Admin-Rolle. Mögliche Werte sind: access, id oder userinfo. | OPENID_ADMIN_ROLE_TOKEN_KIND= |
| OPENID_ADMIN_ROLE_PARAMETER_PATH | string | Der Parameterpfad für die erforderliche Rollenvalidierung. | OPENID_ADMIN_ROLE_PARAMETER_PATH= |
| OPENID_ROLE_SYNC_ENABLED | boolean | Aktiviere die generische OpenID-Rollensynchronisierung für Nicht-Admin-Rollen. ADMIN kann nicht per Rollensynchronisierung zugewiesen werden; verwende OPENID_ADMIN_ROLE für die Admin-Erhöhung. | OPENID_ROLE_SYNC_ENABLED=false |
| OPENID_ROLE_SYNC_API_ENABLED | boolean | Aktiviert API-basierte Rollensynchronisierungs-Helfer. Erfordert OPENID_ROLE_SYNC_ENABLED=true. | OPENID_ROLE_SYNC_API_ENABLED=false |
| OPENID_ROLE_SYNC_SOURCE | string | Token-Quelle für den Rollen-Claim. Muss einer der folgenden Werte sein: access, id, userinfo. Standard: id. | OPENID_ROLE_SYNC_SOURCE=id |
| OPENID_ROLE_SYNC_CLAIM | string | Anspruchspfad, der die Anbieterrollen oder -gruppen enthält. Erforderlich, wenn die Rollensynchronisierung aktiviert ist. | OPENID_ROLE_SYNC_CLAIM= |
| OPENID_ROLE_SYNC_ROLE_PRIORITY | string | Durch Kommas getrennte LibreChat-Rollen, sortiert von der wichtigsten zur unwichtigsten. Die erste übereinstimmende Rolle wird zugewiesen. | OPENID_ROLE_SYNC_ROLE_PRIORITY=Support,User |
| OPENID_ROLE_SYNC_FALLBACK_ROLE | string | LibreChat-Rolle, die zugewiesen wird, wenn keine Prioritätsrolle übereinstimmt. Der Fallback ist maßgeblich, wenn er konfiguriert ist. | OPENID_ROLE_SYNC_FALLBACK_ROLE=USER |
| OPENID_BUTTON_LABEL | string | Die Beschriftung für den OpenID-Anmeldebutton. | OPENID_BUTTON_LABEL= |
| OPENID_IMAGE_URL | string | Die URL des Bildes für den OpenID-Anmeldebutton. | OPENID_IMAGE_URL= |
| OPENID_USE_END_SESSION_ENDPOINT | string | Ob der Issuer End Session Endpoint als Logout-Weiterleitung verwendet werden soll | OPENID_USE_END_SESSION_ENDPOINT=TRUE |
| OPENID_MAX_LOGOUT_URL_LENGTH | number | Maximale Länge der Logout-URL, bevor logout_hint anstelle von id_token_hint verwendet wird. Standard: 2000. | # OPENID_MAX_LOGOUT_URL_LENGTH=2000 |
| OPENID_AUTO_REDIRECT | boolean | Ob automatisch zum OpenID-Anbieter weitergeleitet werden soll. | OPENID_AUTO_REDIRECT=true |
| OPENID_USE_PKCE | boolean | Verwenden Sie PKCE (Proof Key for Code Exchange) für die OpenID-Authentifizierung. Lassen Sie OPENID_CLIENT_SECRET für öffentliche Clients ohne Client-Secret leer und setzen Sie dies auf true. | # OPENID_USE_PKCE=true |
| OPENID_POST_LOGOUT_REDIRECT_URI | string | Redirect-URI nach dem OpenID-Logout. Standardmäßig ${DOMAIN_CLIENT}/login. | # OPENID_POST_LOGOUT_REDIRECT_URI= |
| OPENID_CLOCK_TOLERANCE | number | Toleranz der Uhrzeit in Sekunden für die Token-Validierung. Standard: 300. | # OPENID_CLOCK_TOLERANCE=300 |
| OPENID_GENERATE_NONCE | boolean | Erzwingt, dass der OpenID-Client einen nonce-Parameter generiert. Erforderlich für einige Identitätsanbieter wie AWS Cognito (insbesondere bei Föderation) und Authentik. | OPENID_GENERATE_NONCE=true |
| DEBUG_OPENID_REQUESTS | boolean | Aktiviert die detaillierte Protokollierung von OpenID-Anfrage-Headern. Wenn deaktiviert (Standard), werden nur Anfrage-URLs auf der Debug-Ebene protokolliert. Wenn aktiviert, werden auch Anfrage-Header (mit maskierten sensiblen Daten) für eine tiefergehende Fehlersuche bei Authentifizierungsproblemen protokolliert. | DEBUG_OPENID_REQUESTS=false |
| OPENID_USERNAME_CLAIM | string | Die user info Eigenschaft des OpenID-Anbieters, die als Benutzername des Benutzers gespeichert werden soll. | OPENID_USERNAME_CLAIM= |
| OPENID_NAME_CLAIM | string | Die user info Eigenschaft des OpenID-Anbieters, die als Anzeigename des Benutzers gespeichert werden soll. | OPENID_NAME_CLAIM= |
| OPENID_EMAIL_CLAIM | string | Der User-Info-Claim, der als E-Mail/Identifikator für den Benutzerabgleich verwendet werden soll (z. B. "upn" für Entra ID). Wenn nicht festgelegt, wird standardmäßig verwendet: email → preferred_username → upn. | OPENID_EMAIL_CLAIM= |
OpenID-Rollensynchronisierung
OPENID_ROLE_SYNC_CLAIM ist erforderlich, wenn die Rollensynchronisierung aktiviert ist.
OPENID_ROLE_SYNC_API_ENABLED=true erfordert ebenfalls OPENID_ROLE_SYNC_ENABLED=true. Die generische Rollensynchronisierung kann keine ADMIN-Rolle zuweisen; verwenden Sie OPENID_ADMIN_ROLE für die Erhöhung der Administratorrechte.
Wiederverwendung von OpenID Connect-Tokens
LibreChat unterstützt die Wiederverwendung von Zugriffs- und Aktualisierungs-Tokens (Access und Refresh Tokens), die von Ihrem OpenID Connect-Anbieter (wie Azure Entra ID oder Auth0) ausgestellt wurden, um den Authentifizierungsstatus der Benutzer zu verwalten. Wenn diese Funktion aktiv ist, wird das als Cookie an den Benutzer übergebene Refresh Token von Ihrem OpenID-Anbieter anstelle von LibreChat ausgestellt.
| Key | Type | Description | Example |
|---|---|---|---|
| OPENID_REUSE_TOKENS | boolean | Wiederverwendung von OpenID-Provider-Tokens für die Sitzungsverwaltung aktivieren. | OPENID_REUSE_TOKENS=false |
| OPENID_SCOPE | string | Durch Leerzeichen getrennte Liste von OpenID-Scopes. Muss offline_access für die Token-Wiederverwendung enthalten. | OPENID_SCOPE=api://librechat/.default openid profile email offline_access |
| OPENID_AUDIENCE | string | Audience-Wert für OpenID JWT-Validierung und Autorisierungsanfragen. Kommagetrennte Werte werden für die JWT-Validierung akzeptiert; Autorisierungsanfragen verwenden den ersten nicht leeren Wert. Erforderlich für Auth0, wenn OPENID_REUSE_TOKENS=true gesetzt ist. Siehe den Hinweis im Hauptabschnitt zu OpenID oben. | OPENID_AUDIENCE=https://api.librechat.com |
| OPENID_REUSE_MAX_SESSION_AGE_MS | number | Maximales Alter eines wiederverwendeten OpenID-Session-Tokens, bevor LibreChat eine IdP-Aktualisierung erzwingt. Standard: 900000 ms / 15 Minuten. | OPENID_REUSE_MAX_SESSION_AGE_MS=900000 |
| OPENID_JWKS_URL_CACHE_ENABLED | boolean | Caching der Ergebnisse der Signaturschlüsselüberprüfung aktivieren. | OPENID_JWKS_URL_CACHE_ENABLED=true |
| OPENID_JWKS_URL_CACHE_TIME | number | Cache-Dauer in Millisekunden (Standard: 600000 ms / 10 Minuten). | OPENID_JWKS_URL_CACHE_TIME=600000 |
| OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED | boolean | On-behalf-of-Flow für Benutzerinformationen aktivieren. | OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true |
| OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE | string | Bereich für Benutzerinformationen im On-Behalf-Of-Flow. | OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE=user.read |
| OPENID_USE_END_SESSION_ENDPOINT | boolean | Aktivieren Sie die Nutzung des End-Session-endpoint für die Abmeldung. | OPENID_USE_END_SESSION_ENDPOINT=true |
| OPENID_MAX_LOGOUT_URL_LENGTH | number | Maximale Länge der Logout-URL in Zeichen, bevor zu logout_hint gewechselt wird. Nützlich, um Fehler aufgrund zu langer URIs zu vermeiden, wenn id_token_hint die Serverlimits überschreitet. Standard: 2000. | OPENID_MAX_LOGOUT_URL_LENGTH=2000 |
OPENID_REUSE_MAX_SESSION_AGE_MS akzeptiert arithmetische Ausdrücke wie SESSION_EXPIRY. Erhöhen Sie diesen Wert in Richtung der Lebensdauer des IdP-Zugriffstokens, wenn Ihr Anbieter das vorherige Zugriffstoken bei einer Aktualisierung widerruft, damit nachgelagerte Konsumenten wie MCP-Server die Verwendung eines noch gültigen Bearer-Tokens abschließen können.
Hinweis
Für detaillierte Konfigurationsschritte und Voraussetzungen siehe Re-use OpenID Tokens for Login Session.
Microsoft Graph API / Entra ID Integration
Wenn Sie Azure Entra ID (ehemals Azure AD) als Ihren OpenID-Anbieter verwenden, können Sie zusätzliche Microsoft Graph API-Funktionen für erweiterte Personen- und Gruppensuchfunktionen innerhalb des Berechtigungs- und Freigabesystems aktivieren.
| Key | Type | Description | Example |
|---|---|---|---|
| USE_ENTRA_ID_FOR_PEOPLE_SEARCH | boolean | Aktiviere die Entra ID Personensuche-Integration im Berechtigungs-/Freigabesystem. Wenn aktiviert, durchsucht die Personenauswahl sowohl die lokale Datenbank als auch Entra ID. | USE_ENTRA_ID_FOR_PEOPLE_SEARCH=false |
| ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS | boolean | Wenn aktiviert, werden Entra ID Gruppenbesitzer als Mitglieder der Gruppe betrachtet. | ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=false |
| OPENID_GRAPH_SCOPES | string | Für die Personen-/Gruppensuche erforderliche Microsoft Graph API-Bereiche. Die Standardbereiche ermöglichen den Zugriff auf Benutzerprofile und Gruppenmitgliedschaften. | OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All |
Wichtige Voraussetzungen
- Sie müssen Azure Entra ID als Ihren OpenID-Anbieter konfiguriert haben - OpenID-Token-Wiederverwendung MUSS aktiviert sein (
OPENID_REUSE_TOKENS=true) - diese Funktion funktioniert ohne sie nicht - Ihre Azure-App-Registrierung muss über die entsprechenden Microsoft Graph API-Berechtigungen verfügen - Für die Gruppensuchfunktion kann für bestimmte Graph API-Scopes eine Administratorzustimmung erforderlich sein
SharePoint-Integration
LibreChat unterstützt die direkte Integration mit SharePoint Online und OneDrive for Business, wodurch Benutzer Dateien aus ihren SharePoint-Bibliotheken direkt innerhalb von Unterhaltungen auswählen und anhängen können. Diese Unternehmensfunktion nutzt die bestehende Azure Entra ID-Authentifizierung.
| Key | Type | Description | Example |
|---|---|---|---|
| ENABLE_SHAREPOINT_FILEPICKER | boolean | Aktiviere die SharePoint-Dateiauswahl in Chat- und Agenten-Panels. Wenn aktiviert, wird die Option "Von SharePoint" im Dateianhang-Menü hinzugefügt. | ENABLE_SHAREPOINT_FILEPICKER=true |
| SHAREPOINT_BASE_URL | string | Basis-URL des SharePoint-Tenants. Erforderlich, wenn die SharePoint-Integration aktiviert ist. | SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com |
| SHAREPOINT_PICKER_SHAREPOINT_SCOPE | string | SharePoint-spezifischer OAuth-Scope für die Dateiauswahl. Wird zur Authentifizierung beim Öffnen der SharePoint-Dateiauswahlschnittstelle verwendet. | SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read |
| SHAREPOINT_PICKER_GRAPH_SCOPE | string | Microsoft Graph API-Bereich für Dateidownloads. Wird zum Herunterladen von Dateien aus SharePoint nach der Auswahl verwendet. | SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All |
Kritische Anforderungen
All of the following must be configured for SharePoint integration to work:
- Die Azure Entra ID-Authentifizierung muss vollständig konfiguriert sein
OPENID_REUSE_TOKENS=trueist obligatorisch (verwendet den „On-Behalf-Of“-Token-Flow)OPENID_SCOPEmuss Ihren LibreChat App-API-Scope enthalten, zum Beispielapi://<client-id>/access_as_userOPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=trueist erforderlich, wenn dieser app-audience scope mit Azure Entra ID verwendet wird.- Ihre Azure-App-Registrierung muss über SharePoint- und Graph-API-Berechtigungen verfügen
- Ihre Azure-App-Registrierung muss den LibreChat-API-Scope offenlegen, der in
OPENID_SCOPEverwendet wird. - Alle vier SharePoint-Umgebungsvariablen müssen gesetzt sein
- HTTPS ist in Produktionsumgebungen erforderlich.
Funktionsumfang
Wenn aktiviert, können Benutzer:
- Auf Dateien aus SharePoint-Dokumentenbibliotheken und OneDrive for Business zugreifen
- Mehrere Dateien gleichzeitig auswählen (Standard-Maximum: 10 Dateien)
- Den Download-Fortschritt in Echtzeit sehen
- Dateien werden heruntergeladen und wie reguläre Uploads an die Konversation angehängt.
Für detaillierte Anweisungen zur SharePoint-Konfiguration siehe: SharePoint Integration Guide
SAML
Für weitere Informationen:
Gegenseitiger Ausschluss von OpenID und SAML
Wenn OpenID aktiviert ist, wird die SAML-Authentifizierung automatisch deaktiviert.
Es kann jeweils nur eine Authentifizierungsmethode aktiv sein.
| Key | Type | Description | Example |
|---|---|---|---|
| SAML_ENTRY_POINT | string | Die Einstiegs-URL des SAML-Identitätsanbieters (IdP). | SAML_ENTRY_POINT= |
| SAML_ISSUER | string | Die SAML Service Provider (SP) Entity ID. | SAML_ISSUER= |
| SAML_CERT | string | Das SAML-Signaturzertifikat, bereitgestellt als Dateipfad oder einzeiliger PEM-String. | SAML_CERT= |
| SAML_CALLBACK_URL | string | Die Callback-URL für die SAML-Authentifizierung. | SAML_CALLBACK_URL=/oauth/saml/callback |
| SAML_SESSION_SECRET | string | Das Geheimnis für die SAML-Sitzungsspeicherung. | SAML_SESSION_SECRET= |
| SAML_EMAIL_CLAIM | string | <Optional>: Das Attribut in der SAML-Assertion, das die Benutzer-E-Mail enthält. (Standard: email) | SAML_EMAIL_CLAIM= |
| SAML_USERNAME_CLAIM | string | <Optional>: Das Attribut in der SAML-Assertion, das den Benutzernamen enthält. (Standard: username) | SAML_USERNAME_CLAIM= |
| SAML_GIVEN_NAME_CLAIM | string | <Optional>: Das Attribut in der SAML-Assertion, das den Vornamen enthält. (Standard: given_name) | SAML_GIVEN_NAME_CLAIM= |
| SAML_FAMILY_NAME_CLAIM | string | <Optional>: Das Attribut in der SAML-Assertion, das den Nachnamen enthält. (Standard: family_name) | SAML_FAMILY_NAME_CLAIM= |
| SAML_PICTURE_CLAIM | string | <Optional>: Das Attribut in der SAML-Assertion, das die URL des Profilbildes enthält. (Standard: picture) | SAML_PICTURE_CLAIM= |
| SAML_NAME_CLAIM | string | <Optional>: Das Attribut in der SAML-Assertion, das den vollständigen Namen enthält. | SAML_NAME_CLAIM= |
| SAML_BUTTON_LABEL | string | <Optional>: Die Beschriftung für den SAML-Anmeldebutton. | SAML_BUTTON_LABEL= |
| SAML_IMAGE_URL | string | <Optional>: Die URL des Bildes für den SAML-Anmeldebutton. | SAML_IMAGE_URL= |
| SAML_USE_AUTHN_RESPONSE_SIGNED | boolean | <Optional>: Wenn "true", wird die gesamte SAML-Response signiert. Andernfalls wird nur die Assertion signiert (Standard). | SAML_USE_AUTHN_RESPONSE_SIGNED= |
LDAP/AD-Authentifizierung
Für weitere Informationen: LDAP/AD Authentication
| Key | Type | Description | Example |
|---|---|---|---|
| LDAP_URL | string | LDAP-Server-URL. | LDAP_URL=ldap://localhost:389 |
| LDAP_BIND_DN | string | Bind-DN | LDAP_BIND_DN=cn=root |
| LDAP_BIND_CREDENTIALS | string | Passwort für bindDN | LDAP_BIND_CREDENTIALS=password |
| LDAP_USER_SEARCH_BASE | string | LDAP-Benutzersuchbasis | LDAP_USER_SEARCH_BASE=o=users,o=example.com |
| LDAP_SEARCH_FILTER | string | LDAP-Suchfilter | LDAP_SEARCH_FILTER=mail={{username}} |
| LDAP_CA_CERT_PATH | string | Pfad zum CA-Zertifikat. | LDAP_CA_CERT_PATH=/path/to/root_ca_cert.crt |
| LDAP_TLS_REJECT_UNAUTHORIZED | string | LDAP TLS-Verifizierung | LDAP_TLS_REJECT_UNAUTHORIZED=true |
| LDAP_STARTTLS | string | Aktiviere LDAP StartTLS für das Upgrade der Verbindung auf TLS. Auf true setzen, um diese Funktion zu aktivieren. | LDAP_STARTTLS=true |
| LDAP_LOGIN_USES_USERNAME | boolean | Benutzernamen anstelle der E-Mail-Adresse für die LDAP-Anmeldung verwenden. | # LDAP_LOGIN_USES_USERNAME=true |
| LDAP_ID | string | LDAP-Attribut für die eindeutige Benutzer-ID. Standard: uid oder sAMAccountName, mail. | # LDAP_ID=uid |
| LDAP_USERNAME | string | LDAP-Attribut für den Benutzernamen. Standard: givenName oder mail. | # LDAP_USERNAME=givenName |
| LDAP_EMAIL | string | LDAP-Attribut für E-Mail. Standard: mail. | # LDAP_EMAIL=userPrincipalName |
| LDAP_FULL_NAME | string | LDAP-Attribut(e) für den vollständigen Namen. Kann durch Kommas getrennt sein. Standard: givenName + surname. | # LDAP_FULL_NAME=givenName,surname |
Passwort zurücksetzen
E-Mail wird für die Kontobestätigung und das Zurücksetzen von Passwörtern verwendet. LibreChat unterstützt sowohl die Mailgun API als auch herkömmliche SMTP-Dienste. Siehe: E-Mail-Einrichtung
Wichtiger Hinweis: Sie müssen entweder Mailgun (empfohlen für Server, die SMTP blockieren) oder SMTP konfigurieren, damit E-Mails funktionieren.
Warnung: Wenn keine gültigen Werte für Mailgun oder SMTP festgelegt werden, verwendet LibreChat die ungesicherte Passwort-Zurücksetzung!
Mailgun-Konfiguration (Empfohlen)
Mailgun ist besonders nützlich für Bereitstellungen auf Servern, die SMTP-Ports blockieren. Wenn sowohl MAILGUN_API_KEY als auch MAILGUN_DOMAIN gesetzt sind, verwendet LibreChat Mailgun anstelle von SMTP.
| Key | Type | Description | Example |
|---|---|---|---|
| MAILGUN_API_KEY | string | Ihr Mailgun API-Schlüssel (erforderlich für Mailgun). | MAILGUN_API_KEY= |
| MAILGUN_DOMAIN | string | Ihre Mailgun-Domain (erforderlich für Mailgun). | MAILGUN_DOMAIN=mg.yourdomain.com |
| MAILGUN_HOST | string | Benutzerdefinierter Mailgun API-Host (optional). Verwenden Sie https://api.eu.mailgun.net für die EU-Region. | MAILGUN_HOST=https://api.mailgun.net |
| EMAIL_FROM | string | Absender-E-Mail-Adresse. Erforderlich. | [email protected] |
| EMAIL_FROM_NAME | string | Absendername (standardmäßig APP_TITLE, falls nicht festgelegt). | EMAIL_FROM_NAME= |
SMTP-Konfiguration
Wenn Mailgun nicht konfiguriert ist, greift LibreChat auf die SMTP-Einstellungen zurück.
Warnung: Wenn Sie
EMAIL_SERVICEverwenden, setzen Sie NICHT die erweiterten Verbindungsparameter: HOST, PORT, ENCRYPTION, ENCRYPTION_HOSTNAME, ALLOW_SELFSIGNED.
Siehe: nodemailer well-known-services
| Key | Type | Description | Example |
|---|---|---|---|
| EMAIL_SERVICE | string | E-Mail-Dienst (z. B. Gmail, Outlook). | EMAIL_SERVICE= |
| EMAIL_HOST | string | Mailserver-Host. | EMAIL_HOST= |
| EMAIL_PORT | number | Mailserver-Port. | EMAIL_PORT=25 |
| EMAIL_ENCRYPTION | string | Verschlüsselungsmethode (starttls, tls, etc.). | EMAIL_ENCRYPTION= |
| EMAIL_ENCRYPTION_HOSTNAME | string | Hostname für die Verschlüsselung. | EMAIL_ENCRYPTION_HOSTNAME= |
| EMAIL_ALLOW_SELFSIGNED | boolean | Selbstsignierte Zertifikate zulassen. | EMAIL_ALLOW_SELFSIGNED= |
| EMAIL_USERNAME | string | Benutzername für die Authentifizierung. | EMAIL_USERNAME= |
| EMAIL_PASSWORD | string | Passwort für die Authentifizierung. | EMAIL_PASSWORD= |
| EMAIL_FROM_NAME | string | Absendername | EMAIL_FROM_NAME= |
| EMAIL_FROM | string | Absender-E-Mail-Adresse. Erforderlich. | [email protected] |
Firebase CDN
Siehe: Firebase CDN Konfiguration
Wichtig
- Wenn Sie Firebase als Strategie für Ihre Dateispeicherung verwenden, setzen Sie
fileStrategyoderfileStrategiesin Ihrerlibrechat.yamlKonfigurationsdatei auffirebase. Weitere Informationen zur Konfiguration derlibrechat.yamlDatei finden Sie im YAML-Konfigurationsleitfaden: Custom Endpoints & Configuration
| Key | Type | Description | Example |
|---|---|---|---|
| FIREBASE_API_KEY | string | Der API-Schlüssel für Ihr Firebase-Projekt. | FIREBASE_API_KEY= |
| FIREBASE_AUTH_DOMAIN | string | Die Firebase Auth-Domain für Ihr Projekt. | FIREBASE_AUTH_DOMAIN= |
| FIREBASE_PROJECT_ID | string | Die ID Ihres Firebase-Projekts. | FIREBASE_PROJECT_ID= |
| FIREBASE_STORAGE_BUCKET | string | Der Firebase Storage Bucket für Ihr Projekt. | FIREBASE_STORAGE_BUCKET= |
| FIREBASE_MESSAGING_SENDER_ID | string | Die Firebase Cloud Messaging Sender-ID. | FIREBASE_MESSAGING_SENDER_ID= |
| FIREBASE_APP_ID | string | Die Firebase App ID für Ihr Projekt. | FIREBASE_APP_ID= |
Amazon S3 und CloudFront
Siehe: Amazon S3 Konfiguration und CloudFront mit S3
Wichtig
Wenn Sie S3 als Strategie für Ihre Dateispeicherung verwenden, legen Sie fileStrategy oder fileStrategies in Ihrer librechat.yaml Konfigurationsdatei fest. Wenn Sie CloudFront verwenden, ist S3 dennoch als Speicherursprung erforderlich.
| Key | Type | Description | Example |
|---|---|---|---|
| AWS_ACCESS_KEY_ID | string | Ihre IAM-Benutzer-Zugriffsschlüssel-ID. Optional bei Verwendung von IRSA. | AWS_ACCESS_KEY_ID=your_access_key_id |
| AWS_SECRET_ACCESS_KEY | string | Ihr IAM-Benutzer-Secret-Access-Key. Optional bei Verwendung von IRSA. | AWS_SECRET_ACCESS_KEY=your_secret_access_key |
| AWS_REGION | string | Die AWS-Region, in der sich Ihr S3-Bucket befindet. | AWS_REGION=us-east-1 |
| AWS_BUCKET_NAME | string | Der Name des S3-Buckets für die Dateispeicherung. | AWS_BUCKET_NAME=your_bucket_name |
| AWS_ENDPOINT_URL | string | Benutzerdefinierte AWS endpoint URL (optional). Für S3-kompatible Dienste. Geben Sie das URL-Schema an, wie z. B. https://a7g8.da.idrivee2-32.com. | # AWS_ENDPOINT_URL=https://your_endpoint_url |
| AWS_FORCE_PATH_STYLE | boolean | Auf true setzen für S3-kompatible Anbieter, die Pfad-Stil-URLs erfordern (z. B. MinIO, Hetzner, Backblaze B2). Nicht erforderlich für AWS S3. Standard: false. | # AWS_FORCE_PATH_STYLE=false |
| CLOUDFRONT_KEY_PAIR_ID | string | CloudFront-Paar-ID für öffentliche Schlüssel. Erforderlich für signierte Cookies und signierte CloudFront-Download-URLs. | # CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC |
| CLOUDFRONT_PRIVATE_KEY | string | CloudFront Private Key PEM. Erforderlich für signierte Cookies und signierte CloudFront-Download-URLs. Behalten Sie beim Einfügen dieses Geheimnisses die PEM-Zeilenumbrüche bei. | # CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" |
Hinweis: Für Kubernetes-Bereitstellungen (z. B. auf EKS) können Sie IRSA (IAM Roles for Service Accounts) anstelle von expliziten Anmeldeinformationen verwenden. In diesem Fall sind nur
AWS_REGIONundAWS_BUCKET_NAMEerforderlich.
Azure Blob Storage CDN
Siehe: Azure Blob Storage CDN Configuration
Wichtig
Wenn Sie Azure Blob Storage als Strategie für Ihre Dateispeicherung verwenden, setzen Sie fileStrategy oder fileStrategies in Ihrer librechat.yaml Konfigurationsdatei auf azure_blob.
| Key | Type | Description | Example |
|---|---|---|---|
| AZURE_STORAGE_CONNECTION_STRING | string | Azure Blob Storage Verbindungszeichenfolge. Verwenden Sie diese ODER AZURE_STORAGE_ACCOUNT_NAME für Managed Identity. | AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=... |
| AZURE_STORAGE_ACCOUNT_NAME | string | Azure Storage-Kontoname. Zur Verwendung für die Authentifizierung mittels Managed Identity (keine Verbindungszeichenfolge festlegen). | # AZURE_STORAGE_ACCOUNT_NAME=yourAccountName |
| AZURE_STORAGE_PUBLIC_ACCESS | boolean | Öffentlichen Zugriff für Blobs aktivieren. Standard: false. | AZURE_STORAGE_PUBLIC_ACCESS=false |
| AZURE_CONTAINER_NAME | string | Container-Name für die Dateispeicherung. Standard: files. | AZURE_CONTAINER_NAME=files |
Hinweis: Verwenden Sie entweder
AZURE_STORAGE_CONNECTION_STRING(Option A) oderAZURE_STORAGE_ACCOUNT_NAMEmit Managed Identity (Option B), nicht beides.
UI
Hilfe- und FAQ-Schaltfläche
| Key | Type | Description | Example |
|---|---|---|---|
| HELP_AND_FAQ_URL | string | URL für Hilfe und FAQ. Wenn leer oder auskommentiert, ist die Schaltfläche aktiviert. Um die Hilfe- und FAQ-Schaltfläche zu deaktivieren, setzen Sie den Wert auf "/". | HELP_AND_FAQ_URL=https://librechat.ai |
Verhalten:
Legt die Cache-Control-Header für statische Dateien fest. Diese Konfigurationen werden nur ausgelöst, wenn NODE_ENV auf production gesetzt ist.
Das korrekte Setzen von Cache-Headern ist entscheidend für die Optimierung der Leistung und Effizienz Ihrer Webanwendung. Indem Sie steuern, wie lange Browser und CDNs Kopien Ihrer statischen Dateien speichern, können Sie die Serverlast erheblich reduzieren, die Seitenladezeiten verkürzen und die allgemeine Benutzererfahrung verbessern.
- Entkommentieren Sie
STATIC_CACHE_MAX_AGE, um dasmax-agefür statische Dateien zu ändern. Standardmäßig ist dies auf 4 Wochen eingestellt. - Entkommentieren Sie
STATIC_CACHE_S_MAX_AGE, um dass-maxagefür statische Dateien zu ändern. Standardmäßig ist dies auf 1 Woche eingestellt.- Dies ist für den shared cache, der von CDNs und Proxys verwendet wird.
App-Titel und Fußzeile
| Key | Type | Description | Example |
|---|---|---|---|
| APP_TITLE | string | App-Titel. | APP_TITLE=LibreChat |
| CUSTOM_FOOTER | string | Benutzerdefinierte Fußzeile. | # CUSTOM_FOOTER="My custom footer" |
| TEMP_CHAT_RETENTION_HOURS | number | **Veraltet:** Verwenden Sie stattdessen `interface.temporaryChatRetention` in librechat.yaml. Stunden, für die temporäre Chats aufbewahrt werden. Standard: 720 (30 Tage). | # TEMP_CHAT_RETENTION_HOURS=168 |
Verhalten:
- Entkommentieren Sie
CUSTOM_FOOTER, um eine benutzerdefinierte Fußzeile hinzuzufügen. - Entkommentieren Sie
CUSTOM_FOOTERund lassen Sie es leer, um die Fußzeile zu entfernen. - 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-Beispiel:
CUSTOM_FOOTER=[Link 1](http://example1.com) | [Link 2](http://example2.com)
Geburtstagshut
| Key | Type | Description | Example |
|---|---|---|---|
| SHOW_BIRTHDAY_ICON | boolean | Zeige das Geburtstagshut-Symbol. | # SHOW_BIRTHDAY_ICON=true |
Verhalten:
- Das Geburtstagshut-Symbol wird am 11. Februar (dem Geburtstag von LibreChat) automatisch angezeigt.
- Setze
SHOW_BIRTHDAY_ICONauffalse, um den Geburtstagshut zu deaktivieren. - Setze
SHOW_BIRTHDAY_ICONauftrue, um den Geburtstagshut dauerhaft zu aktivieren.
Analysen
Google Tag Manager
LibreChat unterstützt Google Tag Manager für Analysen. Sie benötigen eine Google Tag Manager-ID, um dies in LibreChat zu aktivieren. Folgen Sie dieser Anleitung, um eine Google Tag Manager-ID zu generieren und Google Analytics zu konfigurieren. Setzen Sie anschließend die Umgebungsvariable ANALYTICS_GTM_ID auf Ihre Google Tag Manager-ID.
Hinweis: Wenn ANALYTICS_GTM_ID nicht gesetzt ist, wird der Google Tag Manager nicht aktiviert. Wenn er falsch gesetzt ist, werden Sie fehlschlagende Anfragen an gtm.js sehen.
| Key | Type | Description | Example |
|---|---|---|---|
| ANALYTICS_GTM_ID | string | Google Tag Manager ID. | ANALYTICS_GTM_ID= |
Konversationsimport
Konfigurieren Sie Limits für den Import von Konversationsdateien, um Speicherprobleme zu vermeiden.
| Key | Type | Description | Example |
|---|---|---|---|
| CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES | number | Maximale Dateigröße in Bytes für Konversationsimporte. Standard: 0 (kein Limit). Beispiel: 262144000 (250 MiB). | # CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES=262144000 |
Inline-Dateivorschau
Steuern Sie, wie groß generierte Dateien sein dürfen, bevor LibreChat die Inline-Vorschau-Extraktion überspringt und sie nur zum Download bereitstellt.
| Key | Type | Description | Example |
|---|---|---|---|
| FILE_PREVIEW_MAX_EXTRACT_BYTES | number | Maximale Quelldateigröße in Bytes für Inline-Vorschauen von Code-Execution-Artefakten. Standard: 2097152 (2 MiB). Gerenderte HTML-Vorschauen sind weiterhin separat begrenzt, daher können sehr umfangreiche Dateien auch unterhalb dieses Wertes die Vorschau überspringen. | # FILE_PREVIEW_MAX_EXTRACT_BYTES=2097152 |
MCP (Model Context Protocol)
Konfigurieren Sie die Model Context Protocol-Einstellungen für eine verbesserte Serververwaltung und OAuth-Unterstützung.
MCP Server Konfiguration
| Key | Type | Description | Example |
|---|---|---|---|
| MCP_OAUTH_ON_AUTH_ERROR | boolean | Behandle 401/403-Antworten als OAuth-Anforderung, wenn keine OAuth-Metadaten gefunden wurden. | MCP_OAUTH_ON_AUTH_ERROR=true |
| MCP_OAUTH_DETECTION_TIMEOUT | number | Zeitüberschreitung für OAuth-Erkennungsanfragen in Millisekunden. | MCP_OAUTH_DETECTION_TIMEOUT=5000 |
| MCP_OAUTH_HANDLING_TIMEOUT | number | Wie lange LibreChat auf den Abschluss eines MCP OAuth-Flows durch den Benutzer wartet, bevor ein Timeout erfolgt. Standard: 600000 ms (10 Minuten). | MCP_OAUTH_HANDLING_TIMEOUT=600000 |
| MCP_OAUTH_FLOW_TTL | number | Wie lange der MCP OAuth Flow-Status beibehalten wird. LibreChat begrenzt diesen Wert auf mindestens MCP_OAUTH_HANDLING_TIMEOUT, damit Callbacks kurz vor Ablauf der Frist noch abgeschlossen werden können. Standard: 900000 ms (15 Minuten). | MCP_OAUTH_FLOW_TTL=900000 |
| MCP_CONNECTION_CHECK_TTL | number | Cache-Verbindungsstatusprüfungen für diese Anzahl an Millisekunden, um aufwendige Verifizierungen zu vermeiden. | MCP_CONNECTION_CHECK_TTL=30000 |
| MCP_TOOLS_LIST_MAX_PAGES | number | Maximale Anzahl an Tools/Listenseiten, die angefordert werden sollen, wenn ein MCP Server seine Tool-Liste paginiert (Cursor-Pagination). Begrenzt die Paginierungsschleife, damit ein fehlerhafter Server die Tool-Erkennung nicht blockieren kann. Auf ein Minimum von 1 begrenzt. Standard: 50. | MCP_TOOLS_LIST_MAX_PAGES=50 |
| MCP_SKIP_CODE_CHALLENGE_CHECK | boolean | Überspringe die Validierung der Code-Challenge-Methode. Wenn auf true gesetzt, wird S256 als Code-Challenge erzwungen, selbst wenn dies nicht in der .well-known/openid-configuration angegeben ist. | MCP_SKIP_CODE_CHALLENGE_CHECK=false |
| MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES | number | Maximale Anzahl an Bytes, die in einer nicht-GET streamfähigen HTTP MCP-Antwort erlaubt sind, bevor diese abgelehnt wird. Auf 0 setzen, um dies zu deaktivieren. Standard: 16777216 (16 MiB). | # MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES=16777216 |
| MCP_STREAMABLE_HTTP_MAX_LINE_BYTES | number | Maximale Anzahl an Bytes, die in einer einzelnen SSE-Zeile für nicht-GET-streamfähige HTTP-MCP-Antworten zulässig sind. Auf 0 setzen, um dies zu deaktivieren. Standard: 5242880 (5 MiB). | # MCP_STREAMABLE_HTTP_MAX_LINE_BYTES=5242880 |
Sonstiges
Redis
Redis bietet signifikante Leistungsverbesserungen und ermöglicht horizontale Skalierungsfunktionen für LibreChat.
Hinweis: Die Redis-Unterstützung ist experimentell, und es können bei der Verwendung einige Probleme auftreten.
Wichtig: Wenn Sie Redis verwenden, sollten Sie den Cache leeren, nachdem Sie LibreChat-Einstellungen geändert haben.
Für detaillierte Konfigurationen und Beispiele siehe: Redis Configuration Guide
| Key | Type | Description | Example |
|---|---|---|---|
| USE_REDIS | boolean | Aktiviere Redis für Caching und Sitzungsspeicherung. Wenn auf true gesetzt, muss REDIS_URI angegeben werden. | USE_REDIS=true |
| USE_REDIS_STREAMS | boolean | Aktivieren Sie Redis für fortsetzbare LLM-Streams. Verwendet standardmäßig den Wert von USE_REDIS, falls nicht festgelegt. Auf false setzen, um In-Memory-Speicher für Streams zu verwenden. | # USE_REDIS_STREAMS=true |
| REDIS_URI | string | Redis-Verbindungs-URI. Für eine einzelne Instanz: `redis://host:port`. Für einen Cluster: durch Kommas getrennte URIs. | REDIS_URI=redis://127.0.0.1:6379 |
| USE_REDIS_CLUSTER | boolean | Redis-Clustermodus bei Verwendung eines einzelnen URI aktivieren | # USE_REDIS_CLUSTER="true" |
| REDIS_CLUSTER_SAFE_DELETE | boolean | Löschen Sie Redis-Cache-Keys einzeln, um CROSSSLOT-Fehler bei verwalteten Redis-Diensten mit einem einzelnen Endpunkt zu vermeiden, die Keys intern sharden. | # REDIS_CLUSTER_SAFE_DELETE=true |
| REDIS_USERNAME | string | Redis-Benutzername für die Authentifizierung. Überschreibt den Benutzernamen im URI, falls beide angegeben sind. | # REDIS_USERNAME=your_redis_username |
| REDIS_PASSWORD | string | Redis-Passwort für die Authentifizierung. Überschreibt das Passwort im URI, falls beides angegeben ist. | # REDIS_PASSWORD=your_redis_password |
| REDIS_CA | string | Pfad zum CA-Zertifikat für die TLS-Verifizierung bei Verwendung des rediss://-Protokolls. | # REDIS_CA=/path/to/ca-cert.pem |
| REDIS_KEY_PREFIX | string | Statisches Präfix für alle Redis-Keys, um eine Kontamination zwischen verschiedenen Deployments zu verhindern. | # REDIS_KEY_PREFIX=librechat-prod-v2 |
| REDIS_KEY_PREFIX_VAR | string | Name der Umgebungsvariable, die ein dynamisches Präfix enthält (z. B. K_REVISION für Cloud Run). Kann nicht zusammen mit REDIS_KEY_PREFIX verwendet werden. | # REDIS_KEY_PREFIX_VAR=K_REVISION |
| REDIS_MAX_LISTENERS | number | Maximale Event-Listener pro Redis-Client. Verhindert Speicherlecks. Standard: 40. | # REDIS_MAX_LISTENERS=40 |
| REDIS_PING_INTERVAL | number | Ping-Intervall in Sekunden zur Aufrechterhaltung von Verbindungen. Standard: 0 (deaktiviert). Nur festlegen, wenn Timeouts auftreten. | # REDIS_PING_INTERVAL=300 |
| FORCED_IN_MEMORY_CACHE_NAMESPACES | string | Durch Kommas getrennte Cache-Schlüssel, um die In-Memory-Speicherung zu erzwingen, selbst wenn Redis aktiviert ist. | # FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES |
| REDIS_USE_ALTERNATIVE_DNS_LOOKUP | boolean | Aktivieren Sie das alternative dnsLookup für TLS-Verbindungen mit AWS Elasticache. Erforderlich für Elasticache-Cluster mit TLS. | # REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true |
Hinweise:
- Wenn
USE_REDIS=truegesetzt ist, müssen SieREDIS_URIangeben, andernfalls wird die Anwendung einen Fehler ausgeben. - Für den Redis-Cluster-Modus geben Sie mehrere URIs an:
redis://node1:7001,redis://node2:7002,redis://node3:7003(der Clustermodus wird automatisch erkannt). - Für verwaltete Redis-Dienste mit einem einzelnen Endpoint, die Keys intern sharden, behalten Sie
USE_REDIS_CLUSTER=falsebei und setzen SieREDIS_CLUSTER_SAFE_DELETE=true, falls Cache-Löschungen mitCROSSSLOT-Fehlern fehlschlagen. - Verwenden Sie das
rediss://-Protokoll für TLS-Verbindungen und setzen SieREDIS_CA, falls Ihre CA nicht öffentlich vertrauenswürdig ist. REDIS_KEY_PREFIX_VARundREDIS_KEY_PREFIXschließen sich gegenseitig aus.- AWS Elasticache mit TLS: Elasticache erfordert möglicherweise ein alternatives dnsLookup für TLS-Verbindungen. Setzen Sie
REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true, wenn Sie Elasticache mit TLS verwenden. Weitere Details finden Sie in der ioredis documentation.
Leader Election
Konfigurieren Sie die verteilte Leader-Wahl für Multi-Instanz-Bereitstellungen mit Redis. Die Leader-Wahl stellt sicher, dass nur eine Instanz bestimmte Vorgänge wie geplante Aufgaben ausführt.
| Key | Type | Description | Example |
|---|---|---|---|
| LEADER_LEASE_DURATION | number | Dauer in Sekunden, für die das Leader-Lease gültig ist, bevor es abläuft. Standard: 25. | LEADER_LEASE_DURATION=25 |
| LEADER_RENEW_INTERVAL | number | Intervall in Sekunden, in dem der Leader seinen Lease erneuert. Standard: 10. | LEADER_RENEW_INTERVAL=10 |
| LEADER_RENEW_ATTEMPTS | number | Maximale Anzahl an Wiederholungsversuchen, wenn die Erneuerung der Lease fehlschlägt. Standard: 3. | LEADER_RENEW_ATTEMPTS=3 |
| LEADER_RENEW_RETRY_DELAY | number | Verzögerung in Sekunden zwischen Wiederholungsversuchen bei der Erneuerung des Leases. Standard: 0.5. | LEADER_RENEW_RETRY_DELAY=0.5 |
Hinweise:
- Die Leader-Wahl erfordert, dass Redis aktiviert ist (
USE_REDIS=true). - Diese Einstellungen sind nur für Multi-Instanz-Bereitstellungen relevant.
- Der Leader-Lease muss vor Ablauf erneuert werden, um die Führungsposition aufrechtzuerhalten.
- Wenn die Leas-Erneuerung nach maximalen Versuchen fehlschlägt, gibt die Instanz die Führung ab.
Wie finden Sie diese Anleitung?