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

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:


Server-Konfiguration

Port

  • Der Server hört auf einem bestimmten Port.
  • Die Umgebungsvariable PORT legt den Port fest, auf dem der Server lauscht. Standardmäßig ist sie auf 3080 eingestellt.
KeyTypeDescriptionExample
HOSTstringGibt den Host an.HOST=localhost
PORTnumberGibt 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.

KeyTypeDescriptionExample
TRUST_PROXYnumberGibt 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.

KeyTypeDescriptionExample
CREDS_KEYstring32-Byte-Schlüssel (64 Zeichen in Hex) zur sicheren Speicherung von Anmeldedaten. Erforderlich für den App-Start.CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
CREDS_IVstring16-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

KeyTypeDescriptionExample
STATIC_CACHE_MAX_AGEstringCache-Control max-age in SekundenSTATIC_CACHE_MAX_AGE=172800
STATIC_CACHE_S_MAX_AGEstringCache-Control s-maxage in Sekunden für gemeinsam genutzte Caches (CDNs und Proxys)STATIC_CACHE_S_MAX_AGE="86400"
DISABLE_COMPRESSIONbooleanDeaktiviert die Komprimierung für statische Dateien.DISABLE_COMPRESSION=false
ENABLE_IMAGE_OUTPUT_GZIP_SCANbooleanErmöglicht das Bereitstellen von gzipped-Versionen hochgeladener Bilder, falls diese im selben Ordner vorhanden sind.ENABLE_IMAGE_OUTPUT_GZIP_SCAN=true
ENABLE_STATIC_ASSET_BROTLIbooleanErmö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 lokale max-age für statische Dateien zu ändern. Standardmäßig ist dies auf 2 Tage (172800 Sekunden) eingestellt.
  • Entkommentieren Sie STATIC_CACHE_S_MAX_AGE, um das s-maxage fü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

KeyTypeDescriptionExample
INDEX_CACHE_CONTROLstringCache-Control-Header für index.htmlINDEX_CACHE_CONTROL=no-cache, no-store, must-revalidate
INDEX_PRAGMAstringPragma-Header für index.htmlINDEX_PRAGMA=no-cache
INDEX_EXPIRESstringExpires-Header für index.htmlINDEX_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

KeyTypeDescriptionExample
MONGO_URIstringGibt 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 (retryWrites ist die einzige Option, die Sie bei der Verwendung der Online-Datenbank benötigen.)

MongoDB Verbindungspool-Konfiguration

KeyTypeDescriptionExample
MONGO_MAX_POOL_SIZEnumberDie maximale Anzahl an Verbindungen im Verbindungspool.# MONGO_MAX_POOL_SIZE=
MONGO_MIN_POOL_SIZEnumberDie Mindestanzahl an Verbindungen im Verbindungspool.# MONGO_MIN_POOL_SIZE=
MONGO_MAX_CONNECTINGnumberDie maximale Anzahl an Verbindungen, die gleichzeitig vom Verbindungspool aufgebaut werden können.# MONGO_MAX_CONNECTING=
MONGO_MAX_IDLE_TIME_MSnumberDie 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_MSnumberDie maximale Zeit in Millisekunden, die ein Thread auf die Verfügbarkeit einer Verbindung warten kann.# MONGO_WAIT_QUEUE_TIMEOUT_MS=

MongoDB Schema Konfiguration

KeyTypeDescriptionExample
MONGO_AUTO_INDEXbooleanAuf 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_CREATEbooleanAuf 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 retryWrites nicht - verwenden Sie retryWrites=false
  • erfordert eine TLS-Verbindung, verwenden Sie daher die Parameter tls=true, um TLS zu aktivieren, und tlsCAFile=/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:

Anwendungsbereiche

Um LibreChat für die lokale Nutzung oder die Bereitstellung unter einer benutzerdefinierten Domain zu konfigurieren, setzen Sie die folgenden Umgebungsvariablen:

KeyTypeDescriptionExample
DOMAIN_CLIENTstringGibt die clientseitige Domain an.DOMAIN_CLIENT=http://localhost:3080
DOMAIN_SERVERstringGibt die serverseitige Domain an.DOMAIN_SERVER=http://localhost:3080
ADMIN_PANEL_URLstringExterne 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_SECRETstringErforderlicher 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_PORTnumberHost-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.

KeyTypeDescriptionExample
NO_INDEXbooleanVerhindert, 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%.log unter folgendem Link ein: LibreChat GitHub Issues
  • Fehlerprotokolle werden am selben Speicherort abgelegt.

Umgebungsvariablen

KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanDebug-Logs aktiv lassen.DEBUG_LOGGING=true
DEBUG_CONSOLEbooleanAktiviere ausführliche Konsolen-/stdout-Protokolle im gleichen Format wie Datei-Debug-Protokolle.DEBUG_CONSOLE=false
LOG_TO_FILEbooleanAuf false setzen, um dateibasierte Winston-Transports zu deaktivieren, während die Konsolenprotokollierung weiterhin verfügbar bleibt.LOG_TO_FILE=true
CONSOLE_JSONbooleanAktiviere ausführliche JSON-Konsolen-/stdout-Protokolle, die für Cloud-Bereitstellungen wie GCP/AWS geeignet sind.CONSOLE_JSON=false
CONSOLE_JSON_STRING_LENGTHnumberKonfiguriere die Kürzungslänge für String-Werte in JSON-Konsolen-/stdout-Logs. Standard: 255.# CONSOLE_JSON_STRING_LENGTH=255
LIBRECHAT_LOG_DIRstringBenutzerdefiniertes Verzeichnis für Protokolldateien. Standardmäßig /app/logs (Docker) oder api/logs (lokale Entwicklung).# LIBRECHAT_LOG_DIR=/custom/log/path
MEM_DIAGbooleanSpeicherdiagnose aktivieren — protokolliert Heap/RSS-Snapshots alle 60 Sekunden. Automatisch aktiviert bei Ausführung mit --inspect.# MEM_DIAG=true
AGENT_DEBUG_LOGGINGbooleanAktiviert ausführliche Debug-Protokollierung im Agent-Controller (Token-Anzahl, Diagnostik zur Kontextkürzung).# AGENT_DEBUG_LOGGING=true

Hinweis:

  • DEBUG_LOGGING kann entweder mit DEBUG_CONSOLE oder CONSOLE_JSON verwendet werden, jedoch nicht mit beiden gleichzeitig.
  • DEBUG_CONSOLE und CONSOLE_JSON schließ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.

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.

KeyTypeDescriptionExample
UIDnumberDie Benutzer-ID.# UID=1000
GIDnumberDie 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.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanAktiviert das Backend-OpenTelemetry-Tracing. Das Tracing bleibt deaktiviert, wenn OTEL_SDK_DISABLED=true gesetzt ist.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringDienstname, der an OpenTelemetry gemeldet wird. Standard: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringAn OpenTelemetry gemeldete Service-Version. Standardmäßig die Paketversion, wenn nicht festgelegt.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringBasis-OTLP-Exporter-endpoint.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringTrace-spezifischer OTLP endpoint. Überschreibt den Basis-endpoint für Traces, wenn dieser festgelegt ist.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringDurch Kommas getrennte OTLP-Exporter-Header, wie z. B. Autorisierungs-Metadaten.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringAuswahl des Trace-Exporters.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringOpenTelemetry Trace-Sampler. Standardbeispiel: parentbased_always_on.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringOpenTelemetry SDK-Protokollebene.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanDeaktivieren Sie das OpenTelemetry SDK, selbst wenn Tracing aktiviert ist.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanAktiviert 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.

KeyTypeDescriptionExample
RUM_ENABLEDbooleanBrowser Real User Monitoring aktivieren. Standard: false.# RUM_ENABLED=false
RUM_PROVIDERstringBrowser-RUM-Anbieter. Unterstützt derzeit `hyperdx`.# RUM_PROVIDER=hyperdx
RUM_URLstringÖffentliche Collector-URL, die für den public-token-Modus verwendet wird.# RUM_URL=http://localhost:4318
RUM_SERVICE_NAMEstringVom Browser-SDK gemeldeter Dienstname. Standard: librechat-web.# RUM_SERVICE_NAME=librechat-web
RUM_ENVIRONMENTstringUmgebungskennzeichnung, die mit Browser-Telemetrie gemeldet wird.# RUM_ENVIRONMENT=development
RUM_AUTH_MODEstringAuthentifizierungsmodus für Browser-Telemetrie. Verwenden Sie `publicToken` oder `proxy`.# RUM_AUTH_MODE=publicToken
RUM_PUBLIC_TOKENstringÖ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_URLstringCollector-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_MSnumberProxy-Anfrage-Timeout in Millisekunden. Standard: 10000.# RUM_PROXY_TIMEOUT_MS=10000
RUM_TRACE_PROPAGATION_TARGETSstringDurch Kommas getrennte First-Party-HTTPS-Ursprünge oder URLs, die traceparent-Header empfangen sollen.# RUM_TRACE_PROPAGATION_TARGETS=https://api.example.com
RUM_DISABLE_REPLAYbooleanDeaktiviert die Browser-Sitzungswiederholung. Standard: true.# RUM_DISABLE_REPLAY=true
RUM_CONSOLE_CAPTUREbooleanBrowser-Konsolenprotokolle erfassen. Kann sensible Prompts, Antworten oder Payloads sammeln.# RUM_CONSOLE_CAPTURE=false
RUM_ADVANCED_NETWORK_CAPTUREbooleanErfasst detaillierte Netzwerk-Payloads. Kann sensible Prompts, Antworten oder Payloads sammeln.# RUM_ADVANCED_NETWORK_CAPTURE=false
RUM_SAMPLE_RATEnumberBrowser-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.

KeyTypeDescriptionExample
CONFIG_PATHstringEin 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.

KeyTypeDescriptionExample
DEPLOYMENT_SKILLS_DIRstringVerzeichnis 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.

KeyTypeDescriptionExample
CONFIG_BYPASS_VALIDATIONbooleanWenn 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.

KeyTypeDescriptionExample
CONTINUE_ON_UNCAUGHT_EXCEPTIONbooleanWenn 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.

KeyTypeDescriptionExample
ENDPOINTSstringDurch Kommas getrennte Liste der verfügbaren endpoints.# ENDPOINTS=openAI,agents,assistants,gptPlugins,azureOpenAI,google,anthropic,bingAI,custom
PROXYstringAusgehender Proxy für unterstützte serverseitige Clients. Gilt sowohl für HTTP- als auch für HTTPS-Ziele.PROXY=
HTTP_PROXYstringHTTP-Proxy-Fallback, der von unterstützten serverseitigen Clients verwendet wird, wenn PROXY nicht gesetzt ist.# HTTP_PROXY=
HTTPS_PROXYstringHTTPS-Proxy-Fallback, der von unterstützten serverseitigen Clients verwendet wird, wenn PROXY nicht gesetzt ist.# HTTPS_PROXY=
NO_PROXYstringDurch 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_CONVObooleanAktiviere die Titelgenerierung für alle endpoints.TITLE_CONVO=true

Bekannte Endpoints - librechat.yaml

KeyTypeDescriptionExample
ANYSCALE_API_KEYstringAPI-Schlüssel für Anyscale.# ANYSCALE_API_KEY=
APIPIE_API_KEYstringAPI-Schlüssel für Apipie.# APIPIE_API_KEY=
COHERE_API_KEYstringAPI-Schlüssel für Cohere.# COHERE_API_KEY=
FIREWORKS_API_KEYstringAPI-Schlüssel für Fireworks.# FIREWORKS_API_KEY=
GROQ_API_KEYstringAPI-Schlüssel für Groq.# GROQ_API_KEY=
MISTRAL_API_KEYstringAPI-Schlüssel für Mistral.# MISTRAL_API_KEY=
OPENROUTER_KEYstringAPI-Schlüssel für OpenRouter.# OPENROUTER_KEY=
PERPLEXITY_API_KEYstringAPI-Schlüssel für Perplexity.# PERPLEXITY_API_KEY=
SHUTTLEAI_API_KEYstringAPI-Schlüssel für ShuttleAI.# SHUTTLEAI_API_KEY=
TOGETHERAI_API_KEYstringAPI-Schlüssel für TogetherAI.# TOGETHERAI_API_KEY=
DEEPSEEK_API_KEYstringAPI-Schlüssel für Deepseek API# DEEPSEEK_API_KEY=

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

KeyTypeDescriptionExample
SERPER_API_KEYstringAPI-Schlüssel für den Serper-Suchanbieter. Holen Sie sich Ihren Schlüssel unter https://serper.dev/api-keys# SERPER_API_KEY=
TAVILY_API_KEYstringAPI-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_URLstringBenutzerdefinierte Tavily Search API-URL (optional). Nur für benutzerdefinierte oder Proxy-Tavily-kompatible Such-endpoints erforderlich.# TAVILY_SEARCH_URL=
TAVILY_EXTRACT_URLstringBenutzerdefinierte Tavily Extract API-URL (optional). Nur für benutzerdefinierte oder Proxy-Tavily-kompatible Extract-Endpunkte erforderlich.# TAVILY_EXTRACT_URL=
FIRECRAWL_API_KEYstringAPI-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_URLstringBenutzerdefinierte Firecrawl API-URL (optional). Nur für benutzerdefinierte Firecrawl-Instanzen erforderlich.# FIRECRAWL_API_URL=
FIRECRAWL_VERSIONstringFirecrawl API-Version (v0 oder v1).# FIRECRAWL_VERSION=v1
JINA_API_KEYstringAPI-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_URLstringBenutzerdefinierte Jina API-URL (optional). Nur für benutzerdefinierte Jina-Instanzen erforderlich.# JINA_API_URL=
COHERE_API_KEYstringAPI-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 Anthropic haben, können Sie diesen mit ANTHROPIC_REVERSE_PROXY= festlegen.
    • leer lassen oder auskommentieren, um die Standard-Basis-URL zu verwenden
KeyTypeDescriptionExample
ANTHROPIC_API_KEYstringAnthropic API-Schlüssel oder "user_provided", damit Benutzer ihren eigenen API-Schlüssel bereitstellen können.Defaults to an empty string.
ANTHROPIC_MODELSstringDurch 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_PROXYstringReverse-Proxy für Anthropic.# ANTHROPIC_REVERSE_PROXY=
ANTHROPIC_TITLE_MODELstringVERALTET: Zu verwendendes Modell für die Titelgenerierung mit Anthropic.# ANTHROPIC_TITLE_MODEL=claude-3-haiku-20240307
  • ANTHROPIC_TITLE_MODEL ist jetzt veraltet und wird in zukünftigen Versionen entfernt. Verwenden Sie stattdessen die titleModel Endpoint Setting in der librechat.yaml Konfiguration.

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-haiku Modelle 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

KeyTypeDescriptionExample
ANTHROPIC_USE_VERTEXbooleanAuf true setzen, um Anthropic-Modelle über Google Vertex AI anstelle der direkten API zu verwenden.ANTHROPIC_USE_VERTEX=true
ANTHROPIC_VERTEX_REGIONstringDie 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_FILE konfigurieren (siehe Google Configuration), und zwar mit einem Dienstkonto, das über die Rolle Vertex AI User verfügt.

AWS Bedrock

Siehe: AWS Bedrock Setup

KeyTypeDescriptionExample
BEDROCK_AWS_DEFAULT_REGIONstringEine Standard-AWS-Region muss für Bedrock angegeben werden.BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_ACCESS_KEY_IDstringAWS-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_KEYstringAWS 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_TOKENstringAWS-Sitzungstoken für temporäre Anmeldeinformationen. Optional.# BEDROCK_AWS_SESSION_TOKEN=your_session_token
BEDROCK_AWS_PROFILEstringName 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_TOKENstringAmazon 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_MODELSstringDurch 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

KeyTypeDescriptionExample
BINGAI_TOKENstringBing-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_HOSTstringBing 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.

Google

Befolgen Sie diese Anweisungen, um den Google Endpoint einzurichten.

KeyTypeDescriptionExample
GOOGLE_KEYstringGoogle 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_FILEstringPfad 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_PROXYstringGoogle Reverse-Proxy-URL.GOOGLE_REVERSE_PROXY=
GOOGLE_AUTH_HEADERbooleanVerwenden Sie den Authorization-Header anstelle von X-goog-api-key. Einige Reverse-Proxys erfordern dies.# GOOGLE_AUTH_HEADER=true
GOOGLE_MODELSstringVerfü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_MODELSstringVerfü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_MODELstringVERALTET: Das für die Titelvergabe mit Google verwendete Modell.GOOGLE_TITLE_MODEL=gemini-pro
GOOGLE_LOCstringGibt den Google Cloud-Standort für die Verarbeitung von API-Anfragen anGOOGLE_LOC=us-central1
GOOGLE_CLOUD_LOCATIONstringAlternative Region für die Gemini-Bildgenerierung (z. B. global).# GOOGLE_CLOUD_LOCATION=global
GOOGLE_EXCLUDE_SAFETY_SETTINGSstringLassen Sie die standardmäßig enthaltenen Sicherheitseinstellungen vollständig weg, wodurch die Standardeinstellungen des Anbieters verwendet werdenGOOGLE_EXCLUDE_SAFETY_SETTINGS=true
GOOGLE_SAFETY_SEXUALLY_EXPLICITstringSicherheitseinstellung 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_SPEECHstringSicherheitseinstellung 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_HARASSMENTstringSicherheitseinstellung 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_CONTENTstringSicherheitseinstellung 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_INTEGRITYstringSicherheitseinstellung 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_MODEL ist jetzt veraltet und wird in zukünftigen Versionen entfernt. Verwenden Sie stattdessen die titleModel Endpoint Setting in der librechat.yaml Konfiguration.

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:

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

KeyTypeDescriptionExample
GEMINI_API_KEYstringDedizierter 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_MODELstringGemini-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_FILE zurück. Das Dienstkonto muss über die Rolle Vertex AI User verfügen.

OpenAI

Siehe: OpenAI Setup

KeyTypeDescriptionExample
OPENAI_API_KEYstringIhr 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_MODELSstringPassen 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_OPENAIbooleanDebug-Modus für den OpenAI endpoint aktivieren.DEBUG_OPENAI=false
OPENAI_SUMMARIZEbooleanNachrichten-Zusammenfassung aktivieren. Standardmäßig auf False gesetzt# OPENAI_SUMMARIZE=true
OPENAI_SUMMARY_MODELstringDas für die OpenAI-Zusammenfassung verwendete Modell.# OPENAI_SUMMARY_MODEL=gpt-3.5-turbo
OPENAI_FORCE_PROMPTbooleanErzwingen, dass die API mit einem Prompt-Payload anstelle eines Messages-Payload aufgerufen wird.# OPENAI_FORCE_PROMPT=false
OPENAI_ORGANIZATIONstringGeben Sie an, welche Organisation für jede API-Anfrage an OpenAI verwendet werden soll. Optional# OPENAI_ORGANIZATION=
OPENAI_REVERSE_PROXYstringVERALTET: Reverse-Proxy-Einstellungen für OpenAI.# OPENAI_REVERSE_PROXY=
OPENAI_TITLE_MODELstringVERALTET: Das für die OpenAI-Titelgenerierung verwendete Modell.# OPENAI_TITLE_MODEL=gpt-3.5-turbo
  • OPENAI_TITLE_MODEL ist jetzt veraltet und wird in zukünftigen Versionen entfernt. Verwenden Sie stattdessen die titleModel Endpoint Setting in der librechat.yaml Konfiguration.
  • OPENAI_REVERSE_PROXY ist jetzt veraltet und wird in zukünftigen Versionen entfernt. Verwenden Sie stattdessen einen benutzerdefinierten endpoint.

Assistants

Siehe: Assistants Setup

KeyTypeDescriptionExample
ASSISTANTS_API_KEYstringIhr 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_MODELSstringPassen 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_URLstringAlternative 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:

KeyTypeDescriptionExample
TAVILY_API_KEYstringTavily 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:

KeyTypeDescriptionExample
TRAVERSAAL_API_KEYstringTraversaal API-Schlüssel.TRAVERSAAL_API_KEY=

WolframAlpha

Detaillierte Anweisungen finden Sie hier: Wolfram Alpha

Umgebungsvariablen:

KeyTypeDescriptionExample
WOLFRAM_APP_IDstringWolfram Alpha App IDWOLFRAM_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:

KeyTypeDescriptionExample
ZAPIER_NLA_API_KEYstringZapier NLA API-Schlüssel.ZAPIER_NLA_API_KEY=

OpenWeather

Detaillierte Anweisungen finden Sie hier: OpenWeather

KeyTypeDescriptionExample
OPENWEATHER_API_KEYstringOpenWeather 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

KeyTypeDescriptionExample
LIBRECHAT_CODE_API_KEYstringAPI-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_BASEURLstringBenutzerdefinierte 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

KeyTypeDescriptionExample
SANDPACK_BUNDLER_URLstringGibt eine benutzerdefinierte Bundler-URL für Sandpack an, die von Artifacts verwendet wirdSANDPACK_BUNDLER_URL=your-bundler-url

Suche (Meilisearch)

Aktiviert die Suche in Nachrichten und Unterhaltungen:

KeyTypeDescriptionExample
SEARCHbooleanErmö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:

KeyTypeDescriptionExample
MEILI_NO_ANALYTICSbooleanDeaktiviert 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.

KeyTypeDescriptionExample
MEILI_HOSTstringDie 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.

KeyTypeDescriptionExample
MEILI_MASTER_KEYstringDer 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.

KeyTypeDescriptionExample
MEILI_NO_SYNCstringUmschalter zum Deaktivieren der Meilisearch-Index-SynchronisierungMEILI_NO_SYNC=true

RAG API

Konfigurieren Sie Retrieval-Augmented Generation für die Dokumentenindizierung und kontextbezogene Antworten. Siehe: RAG API Configuration

KeyTypeDescriptionExample
RAG_API_URLstringURL des RAG-API-Dienstes.RAG_API_URL=http://host.docker.internal:8000
RAG_OPENAI_API_KEYstringOpenAI 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_BASEURLstringBenutzerdefinierte OpenAI-Basis-URL für RAG-Embeddings.# RAG_OPENAI_BASEURL=
RAG_USE_FULL_CONTEXTbooleanGesamten Dateikontext anstelle der obersten 4 Ergebnisse abrufen. Standard: false.# RAG_USE_FULL_CONTEXT=true
EMBEDDINGS_PROVIDERstringEmbeddings-Anbieter: openai, azure, huggingface, huggingfacetei oder ollama. Standard: openai.# EMBEDDINGS_PROVIDER=openai
EMBEDDINGS_MODELstringZu 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

KeyTypeDescriptionExample
STT_API_KEYstringAPI-Schlüssel für den Speech-to-Text-Dienst (z. B. OpenAI Whisper).# STT_API_KEY=
TTS_API_KEYstringAPI-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 der librechat.yaml konfiguriert. Diese Umgebungsvariablen werden in dieser Konfiguration referenziert. Siehe Spracheinstellungen für vollständige YAML-Konfigurationsoptionen.

Konfigurieren Sie die Funktionalität für geteilte Konversationslinks.

KeyTypeDescriptionExample
ALLOW_SHARED_LINKSbooleanAktiviert oder deaktiviert geteilte Konversationslinks. Standard: true.ALLOW_SHARED_LINKS=true
ALLOW_SHARED_LINKS_PUBLICbooleanErlaubt den öffentlichen Zugriff auf geteilte Links ohne Authentifizierung. Standard: false.ALLOW_SHARED_LINKS_PUBLIC=false
SHARED_LINKS_SNAPSHOT_FILESbooleanSnapshot-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:

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

KeyTypeDescriptionExample
OPENAI_MODERATIONbooleanOb die OpenAI-Moderation für die **OpenAI**- und **Plugins**-endpoint aktiviert werden soll oder nicht.OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringIhr OpenAI API-Schlüssel.OPENAI_MODERATION_API_KEY=
OPENAI_MODERATION_REVERSE_PROXYstringHinweis: Standardmäßig auskommentiert, dies funktioniert nicht mit allen Reverse Proxys.# OPENAI_MODERATION_REVERSE_PROXY=

Einstellungen zum Sperren

KeyTypeDescriptionExample
BAN_VIOLATIONSbooleanOb Benutzer bei Verstößen gesperrt werden sollen oder nicht (sie werden weiterhin protokolliert).BAN_VIOLATIONS=true
BAN_DURATIONintegerDauer der Sperre für den Benutzer und die zugehörige IP (in Millisekunden).BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALintegerDer 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.

KeyTypeDescriptionExample
LOGIN_MAXintegerDie maximale Anzahl an erlaubten Anmeldungen pro IP innerhalb eines LOGIN_WINDOW.LOGIN_MAX=7
LOGIN_WINDOWintegerIn Minuten, bestimmt das Zeitfenster für LOGIN_MAX Anmeldungen.LOGIN_WINDOW=5
REGISTER_MAXintegerDie maximale Anzahl an Registrierungen pro IP innerhalb eines REGISTER_WINDOW.REGISTER_MAX=5
REGISTER_WINDOWintegerBestimmt in Minuten das Zeitfenster für REGISTER_MAX Registrierungen.REGISTER_WINDOW=60

Bewertung für jeden Verstoß

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREintegerPunktzahl für Anmeldeverstöße.LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREintegerPunktzahl für Registrierungsverstöße.REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREintegerPunktzahl für gleichzeitige Verstöße.CONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREintegerBewertung für Nachrichtenverstöße.MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREintegerPunktzahl für Nicht-Browser-Verstöße.NON_BROWSER_VIOLATION_SCORE=20
ILLEGAL_MODEL_REQ_SCOREintegerBewertung für unzulässige Modellanfragen.ILLEGAL_MODEL_REQ_SCORE=5
IMPORT_VIOLATION_SCOREintegerBewertung für Verstöße beim Import von Unterhaltungen.IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREintegerBewertung für Verstöße bei der Konversationsverzweigung.FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREintegerBewertung für Text-to-Speech-Verstöße.TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREintegerBewertung für Speech-to-Text-Verstöße.STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREintegerPunktzahl für Verstöße beim Hochladen von Dateien.FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREintegerPunktzahl für Verstöße beim Zurücksetzen des Passworts.RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREintegerPunktzahl für Verstöße bei der E-Mail-Verifizierung.VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREintegerBewertung für Tool-Call-Verstöße.TOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREintegerPunktzahl 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)

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESbooleanOb die Anzahl der Nachrichten, die ein Benutzer pro Anfrage senden kann, begrenzt werden soll.LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXintegerDie 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:
KeyTypeDescriptionExample
LIMIT_MESSAGE_IPbooleanOb die Anzahl der Nachrichten, die eine IP-Adresse pro `MESSAGE_IP_WINDOW` senden kann, begrenzt werden soll.LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXintegerDie maximale Anzahl an Nachrichten, die eine IP pro `MESSAGE_IP_WINDOW` senden kann.MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWintegerBestimmt in Minuten das Zeitfenster für `MESSAGE_IP_MAX` Nachrichten.MESSAGE_IP_WINDOW=1
Benutzer-Limiter:
KeyTypeDescriptionExample
LIMIT_MESSAGE_USERbooleanOb die Anzahl der Nachrichten, die ein Benutzer pro `MESSAGE_USER_WINDOW` senden kann, begrenzt werden soll.LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXintegerDie maximale Anzahl an Nachrichten, die ein Benutzer pro `MESSAGE_USER_WINDOW` senden kann.MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWintegerBestimmt 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:
KeyTypeDescriptionExample
LIMIT_IMPORT_IPbooleanOb die Anzahl der Konversationsimporte, die eine IP pro `IMPORT_IP_WINDOW` durchführen kann, begrenzt werden soll.LIMIT_IMPORT_IP=true
IMPORT_IP_MAXintegerDie maximale Anzahl an Konversationsimporten, die eine IP pro `IMPORT_IP_WINDOW` durchführen kann.IMPORT_IP_MAX=100
IMPORT_IP_WINDOWintegerBestimmt in Minuten das Zeitfenster für `IMPORT_IP_MAX`-Importe.IMPORT_IP_WINDOW=1
Benutzer-Limiter:
KeyTypeDescriptionExample
LIMIT_IMPORT_USERbooleanOb die Anzahl der Konversationsimporte, die ein Benutzer pro `IMPORT_USER_WINDOW` durchführen kann, begrenzt werden soll.LIMIT_IMPORT_USER=false
IMPORT_USER_MAXintegerDie maximale Anzahl an Konversationsimporten, die ein Benutzer pro `IMPORT_USER_WINDOW` durchführen kann.IMPORT_USER_MAX=50
IMPORT_USER_WINDOWintegerBestimmt 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:
KeyTypeDescriptionExample
LIMIT_FORK_IPbooleanOb die Anzahl der Konversations-Forks, die eine IP pro `FORK_IP_WINDOW` erstellen kann, begrenzt werden soll.LIMIT_FORK_IP=true
FORK_IP_MAXintegerDie maximale Anzahl an Konversations-Forks, die eine IP pro `FORK_IP_WINDOW` erstellen kann.FORK_IP_MAX=30
FORK_IP_WINDOWintegerBestimmt in Minuten das Zeitfenster für `FORK_IP_MAX` Forks.FORK_IP_WINDOW=1
Benutzer-Limiter:
KeyTypeDescriptionExample
LIMIT_FORK_USERbooleanOb die Anzahl der Konversations-Forks, die ein Benutzer pro `FORK_USER_WINDOW` erstellen kann, begrenzt werden soll.LIMIT_FORK_USER=false
FORK_USER_MAXintegerDie maximale Anzahl an Konversations-Forks, die ein Benutzer pro `FORK_USER_WINDOW` erstellen kann.FORK_USER_MAX=7
FORK_USER_WINDOWintegerIn 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.yaml im Abschnitt rateLimits.fileUploads konfiguriert werden.

IP-Begrenzer:
KeyTypeDescriptionExample
FILE_UPLOAD_IP_MAXintegerMaximale Datei-Uploads pro IP pro `FILE_UPLOAD_IP_WINDOW`. Standard: 100.# FILE_UPLOAD_IP_MAX=100
FILE_UPLOAD_IP_WINDOWintegerIn Minuten, bestimmt das Zeitfenster für `FILE_UPLOAD_IP_MAX`. Standard: 15.# FILE_UPLOAD_IP_WINDOW=15
Benutzer-Limiter:
KeyTypeDescriptionExample
FILE_UPLOAD_USER_MAXintegerMaximale Datei-Uploads pro Benutzer pro `FILE_UPLOAD_USER_WINDOW`. Standard: 50.# FILE_UPLOAD_USER_MAX=50
FILE_UPLOAD_USER_WINDOWintegerIn 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.yaml im Abschnitt rateLimits.tts konfiguriert werden.

IP-Begrenzer:
KeyTypeDescriptionExample
TTS_IP_MAXintegerMaximale TTS-Anfragen pro IP innerhalb von `TTS_IP_WINDOW`. Standard: 100.# TTS_IP_MAX=100
TTS_IP_WINDOWintegerIn Minuten, bestimmt das Zeitfenster für `TTS_IP_MAX`. Standard: 1.# TTS_IP_WINDOW=1
Benutzer-Limiter:
KeyTypeDescriptionExample
TTS_USER_MAXintegerMaximale TTS-Anfragen pro Benutzer pro `TTS_USER_WINDOW`. Standard: 50.# TTS_USER_MAX=50
TTS_USER_WINDOWintegerIn 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.yaml im Abschnitt rateLimits.stt konfiguriert werden.

IP-Begrenzer:
KeyTypeDescriptionExample
STT_IP_MAXintegerMaximale STT-Anfragen pro IP pro `STT_IP_WINDOW`. Standardwert: 100.# STT_IP_MAX=100
STT_IP_WINDOWintegerIn Minuten, bestimmt das Zeitfenster für `STT_IP_MAX`. Standard: 1.# STT_IP_WINDOW=1
Benutzer-Limiter:
KeyTypeDescriptionExample
STT_USER_MAXintegerMaximale STT-Anfragen pro Benutzer pro `STT_USER_WINDOW`. Standardwert: 50.# STT_USER_MAX=50
STT_USER_WINDOWintegerIn 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

KeyTypeDescriptionExample
CHECK_BALANCEbooleanAktiviere Token-Guthaben für die OpenAI/Plugins endpoints.CHECK_BALANCE=false
START_BALANCEintegerWenn 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-balance aus, 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
  • Führen Sie npm run set-balance aus, um Guthaben manuell festzulegen, ähnlich wie bei add-balance.
  • Führen Sie npm run list-balances aus, um das Guthaben jedes Benutzers aufzulisten.

Hinweis: 1000 Credits = $0,001 (1 Mill USD)

Registrierung und Anmeldung

siehe: Authentication System

BenutzerregistrierungsbildschirmBenutzerregistrierungsbildschirm

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:
KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanAktivieren oder deaktivieren Sie NUR die E-Mail-Anmeldung.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONbooleanE-Mail-Registrierung für neue Benutzer aktivieren oder deaktivieren.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanErlauben Sie Benutzern, sich mit verschiedenen sozialen Netzwerken bei LibreChat anzumelden.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanAktivieren oder deaktivieren Sie die Registrierung neuer Benutzer über verschiedene soziale Netzwerke.ALLOW_SOCIAL_REGISTRATION=false
ALLOW_PASSWORD_RESETbooleanAktivieren oder deaktivieren Sie die Möglichkeit für Benutzer, ihr Passwort selbst zurückzusetzenALLOW_PASSWORD_RESET=false
ALLOW_ACCOUNT_DELETIONbooleanAktivieren 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_LOGINbooleanAuf 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_LENGTHnumberMinimale 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-user hinzufü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:
KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)Zeit bis zum Sitzungsablauf.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (milliseconds)Ablaufzeit des Refresh-Tokens.REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7
SESSION_COOKIE_SECUREbooleanÜ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

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

KeyTypeDescriptionExample
JWT_SECRETstring (hex)JWT-Geheimschlüssel.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (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

KeyTypeDescriptionExample
APPLE_CLIENT_IDstringIhre Apple Services ID (z. B. com.yourdomain.librechat.services).APPLE_CLIENT_ID=com.yourdomain.librechat.services
APPLE_TEAM_IDstringDeine Apple Developer Team ID.APPLE_TEAM_ID=YOUR_TEAM_ID
APPLE_KEY_IDstringDeine Apple Key ID aus dem heruntergeladenen Schlüssel.APPLE_KEY_ID=YOUR_KEY_ID
APPLE_PRIVATE_KEY_PATHstringAbsoluter Pfad zu Ihrer heruntergeladenen .p8-Datei.APPLE_PRIVATE_KEY_PATH=/path/to/AuthKey.p8
APPLE_CALLBACK_URLstringDie Callback-URL für die Apple-Authentifizierung.APPLE_CALLBACK_URL=/oauth/apple/callback

Discord-Authentifizierung

Für weitere Informationen: Discord

KeyTypeDescriptionExample
DISCORD_CLIENT_IDstringDeine Discord-Client-ID.DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRETstringIhr Discord Client Secret.DISCORD_CLIENT_SECRET=
DISCORD_CALLBACK_URLstringDie Callback-URL für die Discord-Authentifizierung.DISCORD_CALLBACK_URL=/oauth/discord/callback

Facebook-Authentifizierung

Für weitere Informationen: Facebook Authentication

KeyTypeDescriptionExample
FACEBOOK_CLIENT_IDstringIhre Facebook-Client-ID.FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRETstringIhr Facebook Client Secret.FACEBOOK_CLIENT_SECRET=
FACEBOOK_CALLBACK_URLstringDie Callback-URL für die Facebook-Authentifizierung.FACEBOOK_CALLBACK_URL=/oauth/facebook/callback

GitHub-Authentifizierung

Für weitere Informationen: GitHub Authentication

KeyTypeDescriptionExample
GITHUB_CLIENT_IDstringDeine GitHub Client ID.GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRETstringIhr GitHub Client Secret.GITHUB_CLIENT_SECRET=
GITHUB_CALLBACK_URLstringDie Callback-URL für die GitHub-Authentifizierung.GITHUB_CALLBACK_URL=/oauth/github/callback
GITHUB_ENTERPRISE_BASE_URLstringOptional: Die Basis-URL für Ihre GitHub Enterprise-Instanz.GITHUB_ENTERPRISE_BASE_URL=
GITHUB_ENTERPRISE_USER_AGENTstringOptional: Der User-Agent für GitHub Enterprise-Anfragen.GITHUB_ENTERPRISE_USER_AGENT=

Google-Authentifizierung

Für weitere Informationen: Google Authentication

KeyTypeDescriptionExample
GOOGLE_CLIENT_IDstringIhre Google-Client-ID.GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRETstringIhr Google Client Secret.GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URLstringDie Callback-URL für die Google-Authentifizierung.GOOGLE_CALLBACK_URL=/oauth/google/callback

OpenID Connect

Für weitere Informationen:

KeyTypeDescriptionExample
OPENID_CLIENT_IDstringIhre OpenID-Client-ID.OPENID_CLIENT_ID=
OPENID_CLIENT_SECRETstringIhr OpenID Client Secret.OPENID_CLIENT_SECRET=
OPENID_ISSUERstringDie OpenID Issuer-URL.OPENID_ISSUER=
OPENID_SESSION_SECRETstringDas Secret für die OpenID-Sitzungsspeicherung.OPENID_SESSION_SECRET=
OPENID_SCOPEstringDer OpenID-Scope.OPENID_SCOPE="openid profile email"
OPENID_CALLBACK_URLstringDie Callback-URL für die OpenID-Authentifizierung.OPENID_CALLBACK_URL=/oauth/openid/callback
OPENID_AUDIENCEstringAudience-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_ROLEstringDie 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_KINDstringDie Token-Art für die erforderliche Rollenvalidierung.OPENID_REQUIRED_ROLE_TOKEN_KIND=
OPENID_REQUIRED_ROLE_PARAMETER_PATHstringDer Parameterpfad für die erforderliche Rollenvalidierung.OPENID_REQUIRED_ROLE_PARAMETER_PATH=
OPENID_ADMIN_ROLEstringDie Rolle, die der Benutzer haben sollte, um ein Administrator in LibreChat zu sein.OPENID_ADMIN_ROLE=
OPENID_ADMIN_ROLE_TOKEN_KINDstringDie 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_PATHstringDer Parameterpfad für die erforderliche Rollenvalidierung.OPENID_ADMIN_ROLE_PARAMETER_PATH=
OPENID_ROLE_SYNC_ENABLEDbooleanAktiviere 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_ENABLEDbooleanAktiviert API-basierte Rollensynchronisierungs-Helfer. Erfordert OPENID_ROLE_SYNC_ENABLED=true.OPENID_ROLE_SYNC_API_ENABLED=false
OPENID_ROLE_SYNC_SOURCEstringToken-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_CLAIMstringAnspruchspfad, der die Anbieterrollen oder -gruppen enthält. Erforderlich, wenn die Rollensynchronisierung aktiviert ist.OPENID_ROLE_SYNC_CLAIM=
OPENID_ROLE_SYNC_ROLE_PRIORITYstringDurch 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_ROLEstringLibreChat-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_LABELstringDie Beschriftung für den OpenID-Anmeldebutton.OPENID_BUTTON_LABEL=
OPENID_IMAGE_URLstringDie URL des Bildes für den OpenID-Anmeldebutton.OPENID_IMAGE_URL=
OPENID_USE_END_SESSION_ENDPOINTstringOb der Issuer End Session Endpoint als Logout-Weiterleitung verwendet werden sollOPENID_USE_END_SESSION_ENDPOINT=TRUE
OPENID_MAX_LOGOUT_URL_LENGTHnumberMaximale 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_REDIRECTbooleanOb automatisch zum OpenID-Anbieter weitergeleitet werden soll.OPENID_AUTO_REDIRECT=true
OPENID_USE_PKCEbooleanVerwenden 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_URIstringRedirect-URI nach dem OpenID-Logout. Standardmäßig ${DOMAIN_CLIENT}/login.# OPENID_POST_LOGOUT_REDIRECT_URI=
OPENID_CLOCK_TOLERANCEnumberToleranz der Uhrzeit in Sekunden für die Token-Validierung. Standard: 300.# OPENID_CLOCK_TOLERANCE=300
OPENID_GENERATE_NONCEbooleanErzwingt, 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_REQUESTSbooleanAktiviert 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_CLAIMstringDie user info Eigenschaft des OpenID-Anbieters, die als Benutzername des Benutzers gespeichert werden soll.OPENID_USERNAME_CLAIM=
OPENID_NAME_CLAIMstringDie user info Eigenschaft des OpenID-Anbieters, die als Anzeigename des Benutzers gespeichert werden soll.OPENID_NAME_CLAIM=
OPENID_EMAIL_CLAIMstringDer 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.

KeyTypeDescriptionExample
OPENID_REUSE_TOKENSbooleanWiederverwendung von OpenID-Provider-Tokens für die Sitzungsverwaltung aktivieren.OPENID_REUSE_TOKENS=false
OPENID_SCOPEstringDurch 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_AUDIENCEstringAudience-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_MSnumberMaximales 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_ENABLEDbooleanCaching der Ergebnisse der Signaturschlüsselüberprüfung aktivieren.OPENID_JWKS_URL_CACHE_ENABLED=true
OPENID_JWKS_URL_CACHE_TIMEnumberCache-Dauer in Millisekunden (Standard: 600000 ms / 10 Minuten).OPENID_JWKS_URL_CACHE_TIME=600000
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIREDbooleanOn-behalf-of-Flow für Benutzerinformationen aktivieren.OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true
OPENID_ON_BEHALF_FLOW_USERINFO_SCOPEstringBereich für Benutzerinformationen im On-Behalf-Of-Flow.OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE=user.read
OPENID_USE_END_SESSION_ENDPOINTbooleanAktivieren Sie die Nutzung des End-Session-endpoint für die Abmeldung.OPENID_USE_END_SESSION_ENDPOINT=true
OPENID_MAX_LOGOUT_URL_LENGTHnumberMaximale 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.

KeyTypeDescriptionExample
USE_ENTRA_ID_FOR_PEOPLE_SEARCHbooleanAktiviere 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_MEMBERSbooleanWenn aktiviert, werden Entra ID Gruppenbesitzer als Mitglieder der Gruppe betrachtet.ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=false
OPENID_GRAPH_SCOPESstringFü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.

KeyTypeDescriptionExample
ENABLE_SHAREPOINT_FILEPICKERbooleanAktiviere 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_URLstringBasis-URL des SharePoint-Tenants. Erforderlich, wenn die SharePoint-Integration aktiviert ist.SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com
SHAREPOINT_PICKER_SHAREPOINT_SCOPEstringSharePoint-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_SCOPEstringMicrosoft 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=true ist obligatorisch (verwendet den „On-Behalf-Of“-Token-Flow)
  • OPENID_SCOPE muss Ihren LibreChat App-API-Scope enthalten, zum Beispiel api://<client-id>/access_as_user
  • OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true ist 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_SCOPE verwendet 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.

KeyTypeDescriptionExample
SAML_ENTRY_POINTstringDie Einstiegs-URL des SAML-Identitätsanbieters (IdP).SAML_ENTRY_POINT=
SAML_ISSUERstringDie SAML Service Provider (SP) Entity ID.SAML_ISSUER=
SAML_CERTstringDas SAML-Signaturzertifikat, bereitgestellt als Dateipfad oder einzeiliger PEM-String.SAML_CERT=
SAML_CALLBACK_URLstringDie Callback-URL für die SAML-Authentifizierung.SAML_CALLBACK_URL=/oauth/saml/callback
SAML_SESSION_SECRETstringDas Geheimnis für die SAML-Sitzungsspeicherung.SAML_SESSION_SECRET=
SAML_EMAIL_CLAIMstring<Optional>: Das Attribut in der SAML-Assertion, das die Benutzer-E-Mail enthält. (Standard: email)SAML_EMAIL_CLAIM=
SAML_USERNAME_CLAIMstring<Optional>: Das Attribut in der SAML-Assertion, das den Benutzernamen enthält. (Standard: username)SAML_USERNAME_CLAIM=
SAML_GIVEN_NAME_CLAIMstring<Optional>: Das Attribut in der SAML-Assertion, das den Vornamen enthält. (Standard: given_name)SAML_GIVEN_NAME_CLAIM=
SAML_FAMILY_NAME_CLAIMstring<Optional>: Das Attribut in der SAML-Assertion, das den Nachnamen enthält. (Standard: family_name)SAML_FAMILY_NAME_CLAIM=
SAML_PICTURE_CLAIMstring<Optional>: Das Attribut in der SAML-Assertion, das die URL des Profilbildes enthält. (Standard: picture)SAML_PICTURE_CLAIM=
SAML_NAME_CLAIMstring<Optional>: Das Attribut in der SAML-Assertion, das den vollständigen Namen enthält.SAML_NAME_CLAIM=
SAML_BUTTON_LABELstring<Optional>: Die Beschriftung für den SAML-Anmeldebutton.SAML_BUTTON_LABEL=
SAML_IMAGE_URLstring<Optional>: Die URL des Bildes für den SAML-Anmeldebutton.SAML_IMAGE_URL=
SAML_USE_AUTHN_RESPONSE_SIGNEDboolean<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

KeyTypeDescriptionExample
LDAP_URLstringLDAP-Server-URL.LDAP_URL=ldap://localhost:389
LDAP_BIND_DNstringBind-DNLDAP_BIND_DN=cn=root
LDAP_BIND_CREDENTIALSstringPasswort für bindDNLDAP_BIND_CREDENTIALS=password
LDAP_USER_SEARCH_BASEstringLDAP-BenutzersuchbasisLDAP_USER_SEARCH_BASE=o=users,o=example.com
LDAP_SEARCH_FILTERstringLDAP-SuchfilterLDAP_SEARCH_FILTER=mail={{username}}
LDAP_CA_CERT_PATHstringPfad zum CA-Zertifikat.LDAP_CA_CERT_PATH=/path/to/root_ca_cert.crt
LDAP_TLS_REJECT_UNAUTHORIZEDstringLDAP TLS-VerifizierungLDAP_TLS_REJECT_UNAUTHORIZED=true
LDAP_STARTTLSstringAktiviere LDAP StartTLS für das Upgrade der Verbindung auf TLS. Auf true setzen, um diese Funktion zu aktivieren.LDAP_STARTTLS=true
LDAP_LOGIN_USES_USERNAMEbooleanBenutzernamen anstelle der E-Mail-Adresse für die LDAP-Anmeldung verwenden.# LDAP_LOGIN_USES_USERNAME=true
LDAP_IDstringLDAP-Attribut für die eindeutige Benutzer-ID. Standard: uid oder sAMAccountName, mail.# LDAP_ID=uid
LDAP_USERNAMEstringLDAP-Attribut für den Benutzernamen. Standard: givenName oder mail.# LDAP_USERNAME=givenName
LDAP_EMAILstringLDAP-Attribut für E-Mail. Standard: mail.# LDAP_EMAIL=userPrincipalName
LDAP_FULL_NAMEstringLDAP-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 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.

KeyTypeDescriptionExample
MAILGUN_API_KEYstringIhr Mailgun API-Schlüssel (erforderlich für Mailgun).MAILGUN_API_KEY=
MAILGUN_DOMAINstringIhre Mailgun-Domain (erforderlich für Mailgun).MAILGUN_DOMAIN=mg.yourdomain.com
MAILGUN_HOSTstringBenutzerdefinierter Mailgun API-Host (optional). Verwenden Sie https://api.eu.mailgun.net für die EU-Region.MAILGUN_HOST=https://api.mailgun.net
EMAIL_FROMstringAbsender-E-Mail-Adresse. Erforderlich.[email protected]
EMAIL_FROM_NAMEstringAbsendername (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_SERVICE verwenden, setzen Sie NICHT die erweiterten Verbindungsparameter: HOST, PORT, ENCRYPTION, ENCRYPTION_HOSTNAME, ALLOW_SELFSIGNED.

Siehe: nodemailer well-known-services

KeyTypeDescriptionExample
EMAIL_SERVICEstringE-Mail-Dienst (z. B. Gmail, Outlook).EMAIL_SERVICE=
EMAIL_HOSTstringMailserver-Host.EMAIL_HOST=
EMAIL_PORTnumberMailserver-Port.EMAIL_PORT=25
EMAIL_ENCRYPTIONstringVerschlüsselungsmethode (starttls, tls, etc.).EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAMEstringHostname für die Verschlüsselung.EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNEDbooleanSelbstsignierte Zertifikate zulassen.EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAMEstringBenutzername für die Authentifizierung.EMAIL_USERNAME=
EMAIL_PASSWORDstringPasswort für die Authentifizierung.EMAIL_PASSWORD=
EMAIL_FROM_NAMEstringAbsendernameEMAIL_FROM_NAME=
EMAIL_FROMstringAbsender-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 fileStrategy oder fileStrategies in Ihrer librechat.yaml Konfigurationsdatei auf firebase. Weitere Informationen zur Konfiguration der librechat.yaml Datei finden Sie im YAML-Konfigurationsleitfaden: Custom Endpoints & Configuration
KeyTypeDescriptionExample
FIREBASE_API_KEYstringDer API-Schlüssel für Ihr Firebase-Projekt.FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAINstringDie Firebase Auth-Domain für Ihr Projekt.FIREBASE_AUTH_DOMAIN=
FIREBASE_PROJECT_IDstringDie ID Ihres Firebase-Projekts.FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKETstringDer Firebase Storage Bucket für Ihr Projekt.FIREBASE_STORAGE_BUCKET=
FIREBASE_MESSAGING_SENDER_IDstringDie Firebase Cloud Messaging Sender-ID.FIREBASE_MESSAGING_SENDER_ID=
FIREBASE_APP_IDstringDie 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.

KeyTypeDescriptionExample
AWS_ACCESS_KEY_IDstringIhre IAM-Benutzer-Zugriffsschlüssel-ID. Optional bei Verwendung von IRSA.AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEYstringIhr IAM-Benutzer-Secret-Access-Key. Optional bei Verwendung von IRSA.AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_REGIONstringDie AWS-Region, in der sich Ihr S3-Bucket befindet.AWS_REGION=us-east-1
AWS_BUCKET_NAMEstringDer Name des S3-Buckets für die Dateispeicherung.AWS_BUCKET_NAME=your_bucket_name
AWS_ENDPOINT_URLstringBenutzerdefinierte 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_STYLEbooleanAuf 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_IDstringCloudFront-Paar-ID für öffentliche Schlüssel. Erforderlich für signierte Cookies und signierte CloudFront-Download-URLs.# CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC
CLOUDFRONT_PRIVATE_KEYstringCloudFront 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_REGION und AWS_BUCKET_NAME erforderlich.

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.

KeyTypeDescriptionExample
AZURE_STORAGE_CONNECTION_STRINGstringAzure 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_NAMEstringAzure Storage-Kontoname. Zur Verwendung für die Authentifizierung mittels Managed Identity (keine Verbindungszeichenfolge festlegen).# AZURE_STORAGE_ACCOUNT_NAME=yourAccountName
AZURE_STORAGE_PUBLIC_ACCESSbooleanÖffentlichen Zugriff für Blobs aktivieren. Standard: false.AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAMEstringContainer-Name für die Dateispeicherung. Standard: files.AZURE_CONTAINER_NAME=files

Hinweis: Verwenden Sie entweder AZURE_STORAGE_CONNECTION_STRING (Option A) oder AZURE_STORAGE_ACCOUNT_NAME mit Managed Identity (Option B), nicht beides.

UI

Hilfe- und FAQ-Schaltfläche

KeyTypeDescriptionExample
HELP_AND_FAQ_URLstringURL 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 das max-age für statische Dateien zu ändern. Standardmäßig ist dies auf 4 Wochen eingestellt.
  • Entkommentieren Sie STATIC_CACHE_S_MAX_AGE, um das s-maxage fü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.
KeyTypeDescriptionExample
APP_TITLEstringApp-Titel.APP_TITLE=LibreChat
CUSTOM_FOOTERstringBenutzerdefinierte Fußzeile.# CUSTOM_FOOTER="My custom footer"
TEMP_CHAT_RETENTION_HOURSnumber**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_FOOTER und 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

KeyTypeDescriptionExample
SHOW_BIRTHDAY_ICONbooleanZeige das Geburtstagshut-Symbol.# SHOW_BIRTHDAY_ICON=true

Verhalten:

  • Das Geburtstagshut-Symbol wird am 11. Februar (dem Geburtstag von LibreChat) automatisch angezeigt.
  • Setze SHOW_BIRTHDAY_ICON auf false, um den Geburtstagshut zu deaktivieren.
  • Setze SHOW_BIRTHDAY_ICON auf true, 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.

KeyTypeDescriptionExample
ANALYTICS_GTM_IDstringGoogle Tag Manager ID.ANALYTICS_GTM_ID=

Konversationsimport

Konfigurieren Sie Limits für den Import von Konversationsdateien, um Speicherprobleme zu vermeiden.

KeyTypeDescriptionExample
CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTESnumberMaximale 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.

KeyTypeDescriptionExample
FILE_PREVIEW_MAX_EXTRACT_BYTESnumberMaximale 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

KeyTypeDescriptionExample
MCP_OAUTH_ON_AUTH_ERRORbooleanBehandle 401/403-Antworten als OAuth-Anforderung, wenn keine OAuth-Metadaten gefunden wurden.MCP_OAUTH_ON_AUTH_ERROR=true
MCP_OAUTH_DETECTION_TIMEOUTnumberZeitüberschreitung für OAuth-Erkennungsanfragen in Millisekunden.MCP_OAUTH_DETECTION_TIMEOUT=5000
MCP_OAUTH_HANDLING_TIMEOUTnumberWie 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_TTLnumberWie 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_TTLnumberCache-Verbindungsstatusprüfungen für diese Anzahl an Millisekunden, um aufwendige Verifizierungen zu vermeiden.MCP_CONNECTION_CHECK_TTL=30000
MCP_TOOLS_LIST_MAX_PAGESnumberMaximale 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_CHECKbooleanÜ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_BYTESnumberMaximale 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_BYTESnumberMaximale 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

KeyTypeDescriptionExample
USE_REDISbooleanAktiviere Redis für Caching und Sitzungsspeicherung. Wenn auf true gesetzt, muss REDIS_URI angegeben werden.USE_REDIS=true
USE_REDIS_STREAMSbooleanAktivieren 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_URIstringRedis-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_CLUSTERbooleanRedis-Clustermodus bei Verwendung eines einzelnen URI aktivieren# USE_REDIS_CLUSTER="true"
REDIS_CLUSTER_SAFE_DELETEbooleanLö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_USERNAMEstringRedis-Benutzername für die Authentifizierung. Überschreibt den Benutzernamen im URI, falls beide angegeben sind.# REDIS_USERNAME=your_redis_username
REDIS_PASSWORDstringRedis-Passwort für die Authentifizierung. Überschreibt das Passwort im URI, falls beides angegeben ist.# REDIS_PASSWORD=your_redis_password
REDIS_CAstringPfad zum CA-Zertifikat für die TLS-Verifizierung bei Verwendung des rediss://-Protokolls.# REDIS_CA=/path/to/ca-cert.pem
REDIS_KEY_PREFIXstringStatisches Präfix für alle Redis-Keys, um eine Kontamination zwischen verschiedenen Deployments zu verhindern.# REDIS_KEY_PREFIX=librechat-prod-v2
REDIS_KEY_PREFIX_VARstringName 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_LISTENERSnumberMaximale Event-Listener pro Redis-Client. Verhindert Speicherlecks. Standard: 40.# REDIS_MAX_LISTENERS=40
REDIS_PING_INTERVALnumberPing-Intervall in Sekunden zur Aufrechterhaltung von Verbindungen. Standard: 0 (deaktiviert). Nur festlegen, wenn Timeouts auftreten.# REDIS_PING_INTERVAL=300
FORCED_IN_MEMORY_CACHE_NAMESPACESstringDurch 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_LOOKUPbooleanAktivieren 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=true gesetzt ist, müssen Sie REDIS_URI angeben, 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=false bei und setzen Sie REDIS_CLUSTER_SAFE_DELETE=true, falls Cache-Löschungen mit CROSSSLOT-Fehlern fehlschlagen.
  • Verwenden Sie das rediss://-Protokoll für TLS-Verbindungen und setzen Sie REDIS_CA, falls Ihre CA nicht öffentlich vertrauenswürdig ist.
  • REDIS_KEY_PREFIX_VAR und REDIS_KEY_PREFIX schließ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.

KeyTypeDescriptionExample
LEADER_LEASE_DURATIONnumberDauer in Sekunden, für die das Leader-Lease gültig ist, bevor es abläuft. Standard: 25.LEADER_LEASE_DURATION=25
LEADER_RENEW_INTERVALnumberIntervall in Sekunden, in dem der Leader seinen Lease erneuert. Standard: 10.LEADER_RENEW_INTERVAL=10
LEADER_RENEW_ATTEMPTSnumberMaximale Anzahl an Wiederholungsversuchen, wenn die Erneuerung der Lease fehlschlägt. Standard: 3.LEADER_RENEW_ATTEMPTS=3
LEADER_RENEW_RETRY_DELAYnumberVerzö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?

Auf dieser Seite

Server-KonfigurationPortTrust proxyAnmeldedaten-KonfigurationStatische DateiverarbeitungIndex HTML Cache-SteuerungMongoDB-DatenbankMongoDB Verbindungspool-KonfigurationMongoDB Schema KonfigurationAnwendungsbereicheVerhindern, dass öffentliche Suchmaschinen indexierenLoggingProtokolldateienUmgebungsvariablenBerechtigungOpenTelemetry TracingReal User Monitoring (Browser)Konfigurationspfad - librechat.yamlDeployment SkillsKonfigurationsvalidierungBehandlung nicht abgefangener AusnahmenEndpointsAllgemeine KonfigurationBekannte Endpoints - librechat.yamlWebsucheAnthropicAnthropic via Vertex AIAWS BedrockBingAIGoogleGemini BildgenerierungOpenAIAssistantsTavilyTraversaalWolframAlphaZapierOpenWeatherCode InterpreterArtifactsSuche (Meilisearch)RAG APISpeech to Text & Text to SpeechGeteilte LinksBenutzer-SystemModerationGrundlegende ModerationseinstellungenEinstellungen zum SperrenRatenbegrenzung für Anmeldung und RegistrierungBewertung für jeden VerstoßNachrichten-Ratenbegrenzung (pro Benutzer & IP)LimitersIP-Begrenzer:Benutzer-Limiter:Import-Ratenbegrenzung für KonversationenIP-Begrenzer:Benutzer-Limiter:Ratenbegrenzung für das Forken von UnterhaltungenIP-Begrenzer:Benutzer-Limiter:Ratenbegrenzung für Datei-UploadsIP-Begrenzer:Benutzer-Limiter:TTS (Text-to-Speech) RatenbegrenzungIP-Begrenzer:Benutzer-Limiter:STT (Speech-to-Text) RatenbegrenzungIP-Begrenzer:Benutzer-Limiter:GuthabenGuthaben verwaltenRegistrierung und AnmeldungSocial LoginsApple-AuthentifizierungDiscord-AuthentifizierungFacebook-AuthentifizierungGitHub-AuthentifizierungGoogle-AuthentifizierungOpenID ConnectWiederverwendung von OpenID Connect-TokensMicrosoft Graph API / Entra ID IntegrationSharePoint-IntegrationSAMLLDAP/AD-AuthentifizierungPasswort zurücksetzenMailgun-Konfiguration (Empfohlen)SMTP-KonfigurationFirebase CDNAmazon S3 und CloudFrontAzure Blob Storage CDNUIHilfe- und FAQ-SchaltflächeApp-Titel und FußzeileGeburtstagshutAnalysenGoogle Tag ManagerKonversationsimportInline-DateivorschauMCP (Model Context Protocol)MCP Server KonfigurationSonstigesRedisLeader Election