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

Omgevingsvariabelen

Uitgebreide handleiding voor het configureren van de omgeving van uw applicatie met het `.env` bestand. Dit document is uw centrale bron voor het begrijpen en aanpassen van de omgevingsvariabelen die het gedrag van uw applicatie in verschillende contexten bepalen.

Welkom bij de uitgebreide handleiding voor het configureren van de omgeving van je applicatie met het .env bestand. Dit document is je centrale bron voor het begrijpen en aanpassen van de omgevingsvariabelen die het gedrag van je applicatie in verschillende contexten zullen bepalen.

Hoewel de standaardinstellingen een solide basis bieden voor een standaard docker installatie, zal het doornemen van deze handleiding het volledige potentieel van LibreChat onthullen. Deze handleiding stelt je in staat om LibreChat aan te passen aan jouw specifieke behoeften. Ontdek hoe je de beschikbaarheid van taalmodellen aanpast, social logins integreert, het automatische moderatiesysteem beheert en nog veel meer. Het draait erom dat jij de controle krijgt om LibreChat te verfijnen voor een optimale gebruikerservaring.

Herinnering: Herstart LibreChat om de configuratiewijzigingen door te voeren

Als alternatief kun je een nieuw bestand genaamd docker-compose.override.yml aanmaken in dezelfde map als je hoofd docker-compose.yml bestand voor LibreChat, waar je je .env variabelen naar behoefte kunt instellen onder environment, of de standaardconfiguratie van het hoofd docker-compose.yml bestand kunt aanpassen, zonder dat je het hele bestand direct hoeft te bewerken of te dupliceren.

Voor meer informatie, zie:


Serverconfiguratie

Poort

  • De server luistert op een specifieke poort.
  • De PORT omgevingsvariabele stelt de poort in waarop de server luistert. Standaard is deze ingesteld op 3080.
KeyTypeDescriptionExample
HOSTstringSpecificeert de host.HOST=localhost
PORTnumberSpecificeert de poort.PORT=3080

Trust proxy

Gebruik het adres dat zich op maximaal n hops afstand van de Express-applicatie bevindt. req.socket.remoteAddress is de eerste hop, en de rest wordt gezocht in de X-Forwarded-For header van rechts naar links. Een waarde van 0 betekent dat het eerste niet-vertrouwde adres req.socket.remoteAddress zou zijn, oftewel er is geen reverse proxy. De standaardwaarde van de TRUST_PROXY omgevingsvariabele is ingesteld op 1.

Raadpleeg Express.js - trust proxy voor meer informatie hierover.

KeyTypeDescriptionExample
TRUST_PROXYnumberSpecificeert het aantal hops.TRUST_PROXY=1

Credentials Configuratie

Om inloggegevens veilig op te slaan, heb je een vaste sleutel en IV nodig. Je kunt deze hier instellen voor prod- en dev-omgevingen.

KeyTypeDescriptionExample
CREDS_KEYstring32-byte sleutel (64 tekens in hex) voor het veilig opslaan van inloggegevens. Vereist voor het opstarten van de app.CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
CREDS_IVstring16-byte IV (32 tekens in hex) voor het veilig opslaan van inloggegevens. Vereist voor het opstarten van de app.CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb

Waarschuwing

Waarschuwing: Als je CREDS_KEY en CREDS_IV niet instelt, zal de app crashen bij het opstarten. - Je kunt deze Key Generator gebruiken om ze snel te genereren.

Statische bestandsafhandeling

KeyTypeDescriptionExample
STATIC_CACHE_MAX_AGEstringCache-Control max-age in secondenSTATIC_CACHE_MAX_AGE=172800
STATIC_CACHE_S_MAX_AGEstringCache-Control s-maxage in seconden voor gedeelde caches (CDN's en proxy's)STATIC_CACHE_S_MAX_AGE="86400"
DISABLE_COMPRESSIONbooleanSchakelt compressie voor statische bestanden uit.DISABLE_COMPRESSION=false
ENABLE_IMAGE_OUTPUT_GZIP_SCANbooleanSchakelt het serveren van gzipped-versies van geüploade afbeeldingen in indien deze in dezelfde map aanwezig zijn.ENABLE_IMAGE_OUTPUT_GZIP_SCAN=true
ENABLE_STATIC_ASSET_BROTLIbooleanSchakelt het serveren van vooraf gecomprimeerde Brotli-versies van statische app-assets in wanneer deze beschikbaar zijn.ENABLE_STATIC_ASSET_BROTLI=true

Gedrag:

Stelt de Cache-Control headers in voor statische bestanden. Deze configuraties worden alleen geactiveerd wanneer de NODE_ENV is ingesteld op production.

  • Haal het commentaar weg bij STATIC_CACHE_MAX_AGE om de lokale max-age voor statische bestanden te wijzigen. Standaard is dit ingesteld op 2 dagen (172800 seconden).
  • Haal het commentaar weg bij STATIC_CACHE_S_MAX_AGE om de s-maxage in te stellen voor gedeelde caches (CDN's en proxy's). Standaard is dit ingesteld op 1 dag (86400 seconden).
  • Haal het commentaar weg bij DISABLE_COMPRESSION om compressie voor statische bestanden uit te schakelen. Standaard is compressie ingeschakeld.
  • Haal het commentaar weg bij ENABLE_IMAGE_OUTPUT_GZIP_SCAN om het scannen en serveren van gezipte versies van afbeeldingen in te schakelen, mits deze vooraf zijn gecomprimeerd in dezelfde map, met dezelfde naam en een .gz-extensie. Standaard is de gzip-scan voor geüploade afbeeldingen uitgeschakeld.
  • Verwijder het commentaar bij ENABLE_STATIC_ASSET_BROTLI om vooraf gecomprimeerde .br versies van statische app-assets te serveren wanneer deze aanwezig zijn. Wanneer ingeschakeld, krijgt Brotli de voorkeur boven gzip voor statische bestanden die via de API worden geserveerd.

Waarschuwing

  • Dit heeft alleen invloed op statische bestanden die door de API-server worden geserveerd en is niet van toepassing op Firebase, NGINX of enige andere configuraties.

Index HTML Cache Control

KeyTypeDescriptionExample
INDEX_CACHE_CONTROLstringCache-Control header voor index.htmlINDEX_CACHE_CONTROL=no-cache, no-store, must-revalidate
INDEX_PRAGMAstringPragma-header voor index.htmlINDEX_PRAGMA=no-cache
INDEX_EXPIRESstringExpires-header voor index.htmlINDEX_EXPIRES=0

Gedrag:

Beheert caching-headers specifiek voor de index.html-respons. Standaard voorkomen deze instellingen caching om ervoor te zorgen dat gebruikers altijd de nieuwste versie van de applicatie ontvangen.

Let op

In tegenstelling tot statische assets die voor prestaties worden gecachet, zijn de cache-headers van het index.html-bestand afzonderlijk geconfigureerd om ervoor te zorgen dat gebruikers altijd de nieuwste applicatieshell ontvangen.

MongoDB Database

KeyTypeDescriptionExample
MONGO_URIstringSpecificeert de MongoDB URI.MONGO_URI=mongodb://127.0.0.1:27017/LibreChat

Wijzig dit naar je MongoDB URI als deze afwijkt. Je moet LibreChat of je eigen APP_TITLE toevoegen als de databasenaam in de URI.

Als je een online database gebruikt, is het URI-formaat mongodb+srv://<username>:<password>@<host>/<database>?<options>. Je MONGO_URI zou er als volgt uit moeten zien:

  • mongodb+srv://username:[email protected]/LibreChat?retryWrites=true (retryWrites is de enige optie die je nodig hebt wanneer je de online database gebruikt.)

MongoDB Connection Pool Configuratie

KeyTypeDescriptionExample
MONGO_MAX_POOL_SIZEnumberHet maximale aantal verbindingen in de connection pool.# MONGO_MAX_POOL_SIZE=
MONGO_MIN_POOL_SIZEnumberHet minimum aantal verbindingen in de connection pool.# MONGO_MIN_POOL_SIZE=
MONGO_MAX_CONNECTINGnumberHet maximale aantal verbindingen dat gelijktijdig in het proces van totstandkoming kan zijn door de connection pool.# MONGO_MAX_CONNECTING=
MONGO_MAX_IDLE_TIME_MSnumberHet maximale aantal milliseconden dat een verbinding inactief in de pool kan blijven voordat deze wordt verwijderd en gesloten.# MONGO_MAX_IDLE_TIME_MS=
MONGO_WAIT_QUEUE_TIMEOUT_MSnumberDe maximale tijd in milliseconden die een thread kan wachten tot er een verbinding beschikbaar is.# MONGO_WAIT_QUEUE_TIMEOUT_MS=

MongoDB Schema Configuratie

KeyTypeDescriptionExample
MONGO_AUTO_INDEXbooleanStel in op false om het automatisch aanmaken van indexen uit te schakelen voor alle modellen die aan deze verbinding zijn gekoppeld. Indien weggelaten, wordt het standaardgedrag van Mongoose gebruikt.# MONGO_AUTO_INDEX=
MONGO_AUTO_CREATEbooleanStel in op false om te voorkomen dat Mongoose automatisch createCollection() aanroept voor elk model dat op deze verbinding wordt aangemaakt. Indien weggelaten, wordt het standaardgedrag van Mongoose gebruikt.# MONGO_AUTO_CREATE=

Als alternatief kun je documentDb gebruiken dat mongoDb emuleert, maar het:

  • ondersteunt geen retryWrites - gebruik retryWrites=false
  • vereist een TLS-verbinding, gebruik daarom de parameters tls=true om TLS in te schakelen en tlsCAFile=/path-to-ca/bundle.pem om naar het door AWS verstrekte CA-bundelbestand te verwijzen

De URI voor documentDb ziet er als volgt uit:

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

Zie ook:

Toepassingsdomeinen

Om LibreChat te configureren voor lokaal gebruik of implementatie op een aangepast domein, stelt u de volgende omgevingsvariabelen in:

KeyTypeDescriptionExample
DOMAIN_CLIENTstringSpecificeert het client-side domein.DOMAIN_CLIENT=http://localhost:3080
DOMAIN_SERVERstringSpecificeert het domein aan de serverzijde.DOMAIN_SERVER=http://localhost:3080
ADMIN_PANEL_URLstringBasis-URL van het externe admin-paneel die wordt gebruikt voor admin OAuth/SSO-omleidingen wanneer het admin-paneel afzonderlijk wordt gehost. Voeg geen slash toe aan het einde.ADMIN_PANEL_URL=https://admin.example.com/admin
ADMIN_PANEL_SESSION_SECRETstringVereiste sessieversleutelingssleutel voor het gebundelde admin-paneel (minimaal 32 tekens). De docker-compose en deploy-compose admin-panel services lezen dit als hun SESSION_SECRET. Genereer deze met `openssl rand -hex 32` voordat de stack wordt gestart.ADMIN_PANEL_SESSION_SECRET=<your-32-char-random-string>
ADMIN_PANEL_PORTnumberHost-poort voor het gebundelde admin-paneel in de standaard docker-compose. In deploy-compose wordt het paneel in plaats daarvan via nginx geserveerd op http://admin.localhost.ADMIN_PANEL_PORT=3000

Wanneer je LibreChat implementeert op een aangepast domein, vervang dan http://localhost:3080 door je geïmplementeerde URL

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

Voorkom dat openbare zoekmachines indexeren

Standaard wordt je website niet geïndexeerd door openbare zoekmachines (bijv. Google, Bing, …). Dit betekent dat mensen je website niet via deze zoekmachines kunnen vinden. Als je je website beter zichtbaar en vindbaar wilt maken, kun je de volgende instelling wijzigen naar false

KeyTypeDescriptionExample
NO_INDEXbooleanVoorkomt dat openbare zoekmachines uw website indexeren.NO_INDEX=true

Let op: Deze methode werkt niet gegarandeerd voor alle zoekmachines, en sommige zoekmachines kunnen uw website of webpagina nog steeds indexeren voor andere doeleinden, zoals caching of archivering. Daarom moet u niet uitsluitend op deze methode vertrouwen om gevoelige of vertrouwelijke informatie op uw website of webpagina te beschermen.

Logging

LibreChat heeft ingebouwde centrale logging, zie Logging System voor meer informatie.

Logbestanden

  • Debug logging is standaard ingeschakeld en cruciaal voor ontwikkeling.
  • Om problemen te melden, reproduceer de fout en dien logs in vanuit ./api/logs/debug-%DATE%.log op: LibreChat GitHub Issues
  • Foutlogboeken worden op dezelfde locatie opgeslagen.

Omgevingsvariabelen

KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanHoud debug-logs actief.DEBUG_LOGGING=true
DEBUG_CONSOLEbooleanSchakel uitgebreide console/stdout-logs in in hetzelfde formaat als debug-logs in bestanden.DEBUG_CONSOLE=false
LOG_TO_FILEbooleanStel in op false om Winston-transports op basis van bestanden uit te schakelen, terwijl console-logging beschikbaar blijft.LOG_TO_FILE=true
CONSOLE_JSONbooleanSchakel uitgebreide JSON-console/stdout-logs in die geschikt zijn voor cloud-implementaties zoals GCP/AWS.CONSOLE_JSON=false
CONSOLE_JSON_STRING_LENGTHnumberConfigureer de afkappingsgrootte voor stringwaarden in JSON console/stdout-logs. Standaard: 255.# CONSOLE_JSON_STRING_LENGTH=255
LIBRECHAT_LOG_DIRstringAangepaste map voor logbestanden. Standaard is /app/logs (Docker) of api/logs (lokale dev).# LIBRECHAT_LOG_DIR=/custom/log/path
MEM_DIAGbooleanSchakel geheugendiagnostiek in — logt heap/RSS-snapshots elke 60 seconden. Automatisch ingeschakeld bij uitvoering met --inspect.# MEM_DIAG=true
AGENT_DEBUG_LOGGINGbooleanSchakelt uitgebreide debug-logboekregistratie in de agent controller in (tokenaantallen, diagnostische gegevens over context-pruning).# AGENT_DEBUG_LOGGING=true

Let op:

  • DEBUG_LOGGING kan worden gebruikt met DEBUG_CONSOLE of CONSOLE_JSON, maar niet met beide tegelijk.
  • DEBUG_CONSOLE en CONSOLE_JSON sluiten elkaar uit.
  • CONSOLE_JSON: Bij het afhandelen van console-logs in cloud-implementaties (zoals GCP of AWS), zal het inschakelen hiervan de logs dumpen met een UTC-tijdstempel en ze formatteren als JSON.

Let op: DEBUG_CONSOLE wordt niet aanbevolen, aangezien de uitvoer behoorlijk uitgebreid kan zijn, en daarom is deze standaard uitgeschakeld.

Toestemming

UID en GID zijn nummers die door Linux worden toegewezen aan elke gebruiker en groep op het systeem. Als je problemen hebt met rechten, stel hier dan de UID en GID in van de gebruiker die het Docker Compose-commando uitvoert. De applicaties in de container zullen draaien met deze UID/GID.

KeyTypeDescriptionExample
UIDnumberDe gebruikers-ID.# UID=1000
GIDnumberDe groeps-ID.# GID=1000

OpenTelemetry Tracing

LibreChat kan backend OpenTelemetry-traces genereren voor algemene API-, HTTP-, MongoDB-, Mongoose-, Redis- en uitgaande verzoekzichtbaarheid. Redis-spans op commandoniveau zijn opt-in, zodat standaard traces op hoog niveau blijven. Gebruik Langfuse voor GenAI-specifieke prompt/model-observability.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanSchakel backend OpenTelemetry-tracing in. Tracing blijft uitgeschakeld wanneer OTEL_SDK_DISABLED=true.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringServicenaam gerapporteerd aan OpenTelemetry. Standaard: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringServiceversie gerapporteerd aan OpenTelemetry. Standaard ingesteld op de pakketversie indien niet ingesteld.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringBasis OTLP exporter endpoint.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringTrace-specifiek OTLP endpoint. Overschrijft het basis-endpoint voor traces wanneer ingesteld.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringDoor komma's gescheiden OTLP-exporter-headers, zoals autorisatiemetadata.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringSelectie van trace-exporter.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringOpenTelemetry trace sampler. Standaardvoorbeeld: parentbased_always_on.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringOpenTelemetry SDK logniveau.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanSchakel de OpenTelemetry SDK uit, zelfs als tracing is ingeschakeld.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanSchakel Redis command-level spans in. Standaard uitgeschakeld om backend-traces op hoog niveau te houden.# OTEL_IOREDIS_TRACING_ENABLED=false

Real User Monitoring (Browser)

LibreChat kan browser Real User Monitoring (RUM) telemetrie publiceren naar HyperDX-compatibele OTLP-collectors. RUM is standaard uitgeschakeld.

KeyTypeDescriptionExample
RUM_ENABLEDbooleanSchakel browser Real User Monitoring in. Standaard: false.# RUM_ENABLED=false
RUM_PROVIDERstringBrowser RUM-provider. Ondersteunt momenteel `hyperdx`.# RUM_PROVIDER=hyperdx
RUM_URLstringPublieke collector-URL gebruikt door de public-token modus.# RUM_URL=http://localhost:4318
RUM_SERVICE_NAMEstringServicenaam gerapporteerd door de browser SDK. Standaard: librechat-web.# RUM_SERVICE_NAME=librechat-web
RUM_ENVIRONMENTstringOmgevingslabel gerapporteerd met browser-telemetrie.# RUM_ENVIRONMENT=development
RUM_AUTH_MODEstringAuthenticatiemodus voor browsertelemetrie. Gebruik `publicToken` of `proxy`.# RUM_AUTH_MODE=publicToken
RUM_PUBLIC_TOKENstringPubliek browser-token voor public-token modus. Behandel dit als publiek en beperk de opname bij de collector.# RUM_PUBLIC_TOKEN=
RUM_PROXY_TARGET_URLstringCollector base URL gebruikt door de authenticated proxy mode. Vereist wanneer `RUM_AUTH_MODE=proxy`.# RUM_PROXY_TARGET_URL=http://otel-collector:4318
RUM_PROXY_TIMEOUT_MSnumberProxy request timeout in milliseconden. Standaard: 10000.# RUM_PROXY_TIMEOUT_MS=10000
RUM_TRACE_PROPAGATION_TARGETSstringDoor komma's gescheiden first-party HTTPS-origins of URL's die traceparent-headers moeten ontvangen.# RUM_TRACE_PROPAGATION_TARGETS=https://api.example.com
RUM_DISABLE_REPLAYbooleanSchakel browser-sessie-replay uit. Standaard: true.# RUM_DISABLE_REPLAY=true
RUM_CONSOLE_CAPTUREbooleanLeg browser-consolelogboeken vast. Kan gevoelige prompts, antwoorden of payloads verzamelen.# RUM_CONSOLE_CAPTURE=false
RUM_ADVANCED_NETWORK_CAPTUREbooleanLeg gedetailleerde netwerk-payloads vast. Kan gevoelige prompts, antwoorden of payloads verzamelen.# RUM_ADVANCED_NETWORK_CAPTURE=false
RUM_SAMPLE_RATEnumberBrowser-telemetrie-samplefrequentie van 0 tot 1. Standaard: 1.# RUM_SAMPLE_RATE=1

In de publicToken modus verstuurt de browser telemetrie rechtstreeks naar RUM_URL met RUM_PUBLIC_TOKEN. In de proxy modus verstuurt de browser telemetrie via LibreChat; de backend valideert de gebruikerssessie, verwijdert app-authenticatieheaders en stuurt de telemetrie door naar RUM_PROXY_TARGET_URL. Ongeldige of verlopen sessies worden geweigerd met een 204 respons, zodat fouten in browsertelemetrie geen normale API-authenticatiefouten veroorzaken. Proxy-resultaten worden geteld in rum_proxy_requests_total met endpoint en result labels op het LibreChat API /metrics endpoint.

Configuratiepad - librechat.yaml

Specificeer een alternatieve locatie voor het LibreChat configuratiebestand. Je kunt een absoluut pad, een relatief pad of een URL opgeven. De bestandsnaam in het pad is flexibel en hoeft niet librechat.yaml te zijn; elk geldig configuratiebestand zal werken.

Opmerking: Als je wilt dat LibreChat in de hoofdmap naar het configuratiebestand zoekt (wat het standaardgedrag is), laat deze optie dan simpelweg uitgeschakeld (gecommentarieerd).

KeyTypeDescriptionExample
CONFIG_PATHstringEen alternatieve locatie voor het LibreChat configuratiebestand.# CONFIG_PATH=https://raw.githubusercontent.com/danny-avila/LibreChat/main/librechat.example.yaml

Deployment Skills

Deployment Skills worden bij het opstarten alleen-lezen geladen vanuit het bestandssysteem en beschikbaar gesteld aan gebruikers bij wie de Skills-functionaliteit is ingeschakeld.

KeyTypeDescriptionExample
DEPLOYMENT_SKILLS_DIRstringMap met door de deployment geleverde Skills. Standaard ingesteld op `./skill` in de hoofdmap van het project.# DEPLOYMENT_SKILLS_DIR=./skill

Herstart LibreChat nadat je deze map of bestanden daarin hebt gewijzigd. Deployment-provided Skills krijgen voorrang op opgeslagen Skills met dezelfde naam.

Configuratievalidatie

Standaard zal LibreChat afsluiten met een foutmelding (exit code 1) als het librechat.yaml configuratiebestand validatiefouten bevat. Dit 'fail-fast' gedrag helpt bij het vroegtijdig opsporen van configuratieproblemen in implementatiepijplijnen en voorkomt dat er wordt gewerkt met onbedoelde standaardinstellingen.

KeyTypeDescriptionExample
CONFIG_BYPASS_VALIDATIONbooleanWanneer ingesteld op `true`, zal de server een waarschuwing loggen en doorgaan met opstarten met de standaardconfiguratie, zelfs als `librechat.yaml` validatiefouten bevat. Dit behoudt het verouderde gedrag.# CONFIG_BYPASS_VALIDATION=true

Waarschuwing

Het gebruik van CONFIG_BYPASS_VALIDATION=true wordt niet aanbevolen voor productieomgevingen. Het is bedoeld als een tijdelijke oplossing tijdens het debuggen van configuratieproblemen. Los validatiefouten in uw configuratiebestand altijd op.

Afhandeling van niet-opgevangen uitzonderingen

Standaard zal LibreChat het proces beëindigen wanneer er een niet-opgevangen uitzondering (uncaught exception) optreedt, wat het standaardgedrag van Node.js is. Je kunt dit overschrijven om de app draaiende te houden na niet-opgevangen uitzonderingen.

KeyTypeDescriptionExample
CONTINUE_ON_UNCAUGHT_EXCEPTIONbooleanWanneer ingesteld op `true`, zal de app blijven draaien na het tegenkomen van niet-opgevangen uitzonderingen in plaats van het proces te beëindigen.# CONTINUE_ON_UNCAUGHT_EXCEPTION=false

Waarschuwing

Niet aanbevolen voor productie, tenzij noodzakelijk. Niet-opgevangen uitzonderingen kunnen de applicatie in een onvoorspelbare staat achterlaten.

Endpoints

In deze sectie kun je de endpoints en modelselectie configureren, evenals hun API-sleutels en de proxy- en reverse proxy-instellingen voor de endpoints die dit ondersteunen.

Algemene configuratie

Verwijder het commentaarteken voor ENDPOINTS om de beschikbare endpoints in LibreChat aan te passen.

KeyTypeDescriptionExample
ENDPOINTSstringDoor komma's gescheiden lijst van beschikbare endpoints.# ENDPOINTS=openAI,agents,assistants,gptPlugins,azureOpenAI,google,anthropic,bingAI,custom
PROXYstringUitgaande proxy voor ondersteunde server-side clients. Is van toepassing op zowel HTTP- als HTTPS-doelen.PROXY=
HTTP_PROXYstringHTTP-proxy-fallback gebruikt door ondersteunde server-side clients wanneer PROXY niet is ingesteld.# HTTP_PROXY=
HTTPS_PROXYstringHTTPS-proxy-fallback gebruikt door ondersteunde server-side clients wanneer PROXY niet is ingesteld.# HTTPS_PROXY=
NO_PROXYstringDoor komma's gescheiden hosts, domeinen of IP-bereiken die ondersteunde server-side clients moeten omzeilen. De kleinelettervariant no_proxy wordt ook ondersteund.# NO_PROXY=
TITLE_CONVObooleanSchakel titels in voor alle endpoints.TITLE_CONVO=true

Bekende endpoints - librechat.yaml

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

De webzoekfunctie maakt internetzoekmogelijkheden binnen LibreChat mogelijk.

Belangrijk: De exacte omgevingsvariabelen die hieronder worden getoond zijn standaardverwijzingen en kunnen via het librechat.yaml configuratiebestand worden aangepast om elke gewenste variabelenaam te gebruiken.

Voor gedetailleerde configuratie- en aanpassingsopties, zie: Web Search Configuration

KeyTypeDescriptionExample
SERPER_API_KEYstringAPI-sleutel voor Serper zoekprovider. Haal je sleutel op via https://serper.dev/api-keys# SERPER_API_KEY=
TAVILY_API_KEYstringAPI-sleutel voor de Tavily zoek- en scraper-provider. Haal je sleutel op via https://app.tavily.com/home# TAVILY_API_KEY=
TAVILY_SEARCH_URLstringAangepaste Tavily Search API-URL (optioneel). Alleen nodig voor aangepaste of proxy Tavily-compatibele zoek-endpoints.# TAVILY_SEARCH_URL=
TAVILY_EXTRACT_URLstringAangepaste Tavily Extract API-URL (optioneel). Alleen nodig voor aangepaste of proxy Tavily-compatibele extract-endpoints.# TAVILY_EXTRACT_URL=
FIRECRAWL_API_KEYstringAPI-sleutel voor de Firecrawl scraper-service. Haal je sleutel op via https://docs.firecrawl.dev/introduction#api-key# FIRECRAWL_API_KEY=
FIRECRAWL_API_URLstringAangepaste Firecrawl API-URL (optioneel). Alleen nodig voor aangepaste Firecrawl-instanties.# FIRECRAWL_API_URL=
FIRECRAWL_VERSIONstringFirecrawl API-versie (v0 of v1).# FIRECRAWL_VERSION=v1
JINA_API_KEYstringAPI-sleutel voor de Jina reranker-service. Haal je sleutel op via https://jina.ai/api-dashboard/# JINA_API_KEY=
JINA_API_URLstringAangepaste Jina API-URL (optioneel). Alleen nodig voor aangepaste Jina-instanties.# JINA_API_URL=
COHERE_API_KEYstringAPI-sleutel voor de Cohere reranker-service. Haal je sleutel op via https://dashboard.cohere.com/welcome/login# COHERE_API_KEY=

Opmerking: Deze variabelenamen kunnen worden aangepast in je librechat.yaml configuratiebestand. Je zou bijvoorbeeld CUSTOM_SERPER_KEY kunnen gebruiken in plaats van SERPER_API_KEY door dit te configureren in de instellingen voor webzoeken. Zie de documentatie over Web Search Configuration voor details over het aanpassen van variabelenamen.

Anthropic

zie: Anthropic Endpoint

  • Je kunt een toegangssleutel aanvragen via https://platform.claude.com/
  • Laat ANTHROPIC_API_KEY= leeg om dit endpoint uit te schakelen
  • Stel ANTHROPIC_API_KEY= in op "user_provided" om gebruikers in staat te stellen hun eigen API-sleutel op te geven via de WebUI
  • Als je toegang hebt tot een reverse proxy voor Anthropic, kun je deze instellen met ANTHROPIC_REVERSE_PROXY=
    • laat leeg of zet in commentaar om de standaard base url te gebruiken
KeyTypeDescriptionExample
ANTHROPIC_API_KEYstringAnthropic API-sleutel of "user_provided" om gebruikers in staat te stellen hun eigen API-sleutel op te geven.Defaults to an empty string.
ANTHROPIC_MODELSstringDoor komma's gescheiden lijst met te gebruiken Anthropic-modellen.# 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 voor Anthropic.# ANTHROPIC_REVERSE_PROXY=
ANTHROPIC_TITLE_MODELstringVEROUDERD: Model om te gebruiken voor titels met Anthropic.# ANTHROPIC_TITLE_MODEL=claude-3-haiku-20240307
  • ANTHROPIC_TITLE_MODEL is nu verouderd en zal in toekomstige versies worden verwijderd. Gebruik in plaats daarvan de titleModel Endpoint Setting in de librechat.yaml configuratie.

Let op: Moet compatibel zijn met de Anthropic endpoint. Bovendien presteren Claude 2 en Claude 3 modellen het best bij deze taak, waarbij claude-3-haiku modellen het goedkoopst zijn.

Claude Fable 5 is opgenomen in de standaard Anthropic model-lijst. Fable/Mythos-klasse modellen gebruiken het moderne Anthropic-gedrag in LibreChat: 1M context, ondersteuning voor adaptief denken, ondersteuning voor prompt caching en thinkingDisplay-afhandeling voor samengevatte of weggelaten redeneeroutput.

Anthropic via Vertex AI

Je kunt ook Anthropic Claude modellen gebruiken via Google Cloud Vertex AI. Voor gedetailleerde YAML-configuratieopties, zie: Anthropic Vertex AI Configuration

KeyTypeDescriptionExample
ANTHROPIC_USE_VERTEXbooleanStel in op true om Anthropic-modellen via Google Vertex AI te gebruiken in plaats van de directe API.ANTHROPIC_USE_VERTEX=true
ANTHROPIC_VERTEX_REGIONstringDe Google Cloud regio voor Vertex AI. Standaard: us-east5.ANTHROPIC_VERTEX_REGION=us-east5

Let op: Wanneer je Vertex AI gebruikt, moet je ook GOOGLE_SERVICE_KEY_FILE configureren (zie Google Configuration) met een serviceaccount dat de rol Vertex AI User heeft.

AWS Bedrock

Zie: AWS Bedrock Setup

KeyTypeDescriptionExample
BEDROCK_AWS_DEFAULT_REGIONstringEen standaard AWS-regio moet worden opgegeven voor Bedrock.BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_ACCESS_KEY_IDstringAWS access key ID voor Bedrock. Optioneel bij gebruik van de standaard AWS-referentieketen.# BEDROCK_AWS_ACCESS_KEY_ID=your_access_key_id
BEDROCK_AWS_SECRET_ACCESS_KEYstringAWS secret access key voor Bedrock. Optioneel bij gebruik van de standaard AWS credentials chain.# BEDROCK_AWS_SECRET_ACCESS_KEY=your_secret_access_key
BEDROCK_AWS_SESSION_TOKENstringAWS-sessietoken voor tijdelijke inloggegevens. Optioneel.# BEDROCK_AWS_SESSION_TOKEN=your_session_token
BEDROCK_AWS_PROFILEstringAWS shared config profielnaam voor Bedrock. Optioneel bij gebruik van de standaard AWS credentials chain.# BEDROCK_AWS_PROFILE=your-profile-name
BEDROCK_AWS_BEARER_TOKENstringAmazon Bedrock API-sleutel voor bearer-authenticatie, of user_provided om gebruikers hun eigen Bedrock API-sleutel in de UI te laten invoeren.# BEDROCK_AWS_BEARER_TOKEN=your_bedrock_api_key
BEDROCK_AWS_MODELSstringDoor komma's gescheiden lijst van Bedrock model-ID's. Indien weggelaten, worden alle bekende ondersteunde modellen opgenomen.# 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

Let op: Je kunt de toegangssleutels weglaten om de standaard AWS-referentieketen te gebruiken (omgevingsvariabelen, SSO-referenties, gedeelde referentiebestanden of EC2/ECS Instance Metadata Service). Zie AWS Bedrock Setup voor meer details.

Claude Fable/Mythos-class modellen op Bedrock zijn uitsluitend voor inference-profiles. Gebruik een profile ID zoals us.anthropic.claude-fable-5 en schakel de vereiste Anthropic-instelling voor het delen van gegevens in via de Bedrock-console of de Data Retention API voordat je ze aanroept.

BingAI

Bing, ook gebruikt voor Sydney, jailbreak en Bing Image Creator

KeyTypeDescriptionExample
BINGAI_TOKENstringBing access token. Laat leeg om uit te schakelen. Kan worden ingesteld op "user_provided" om gebruikers in staat te stellen hun eigen token op te geven via de WebUI.BINGAI_TOKEN=user_provided
BINGAI_HOSTstringBing host-URL. Laat deze uitgeschakeld om de standaardserver te gebruiken.# BINGAI_HOST=https://cn.bing.com

Let op: Het wordt aanbevolen om dit op "user_provided" te laten staan en het token via de WebUI op te geven.

Google

Volg deze instructies om het Google Endpoint in te stellen.

KeyTypeDescriptionExample
GOOGLE_KEYstringGoogle API-sleutel. Stel in op "user_provided" om gebruikers in staat te stellen hun eigen API-sleutel op te geven via de WebUI.GOOGLE_KEY=user_provided
GOOGLE_SERVICE_KEY_FILEstringPad naar het JSON-sleutelbestand van het Google-serviceaccount, de URL om dit op te halen, of een string-versie van de JSON. Wordt gebruikt voor Vertex AI-authenticatie (bijv. OCR-functies).GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json
GOOGLE_REVERSE_PROXYstringGoogle reverse proxy URL.GOOGLE_REVERSE_PROXY=
GOOGLE_AUTH_HEADERbooleanGebruik de Authorization-header in plaats van X-goog-api-key. Sommige reverse proxies vereisen dit.# GOOGLE_AUTH_HEADER=true
GOOGLE_MODELSstringBeschikbare Gemini API Google-modellen, gescheiden door komma's.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_MODELSstringBeschikbare Vertex AI Google-modellen, gescheiden door komma's.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_MODELstringVEROUDERD: Het model dat wordt gebruikt voor titels met Google.GOOGLE_TITLE_MODEL=gemini-pro
GOOGLE_LOCstringSpecificeert de Google Cloud-locatie voor het verwerken van API-verzoekenGOOGLE_LOC=us-central1
GOOGLE_CLOUD_LOCATIONstringAlternatieve regio voor Gemini Image Generation (bijv. global).# GOOGLE_CLOUD_LOCATION=global
GOOGLE_EXCLUDE_SAFETY_SETTINGSstringLaat de veiligheidsinstellingen die standaard zijn inbegrepen volledig weg, waardoor de standaardinstellingen van de provider worden gebruiktGOOGLE_EXCLUDE_SAFETY_SETTINGS=true
GOOGLE_SAFETY_SEXUALLY_EXPLICITstringVeiligheidsinstelling voor seksueel expliciete inhoud. Opties zijn BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY en OFF.GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HATE_SPEECHstringVeiligheidsinstelling voor haatzaaiende inhoud. Opties zijn BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY en OFF.GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HARASSMENTstringVeiligheidsinstelling voor intimidatie-inhoud. Opties zijn BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY en OFF.GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_DANGEROUS_CONTENTstringVeiligheidsinstelling voor gevaarlijke inhoud. Opties zijn BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY en OFF.GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_CIVIC_INTEGRITYstringVeiligheidsinstelling voor inhoud over burgerlijke integriteit. Opties zijn BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY en OFF.# GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH

Pas de beschikbare modellen aan, gescheiden door komma's, zonder spaties. De eerste zal de standaard zijn. Laat het leeg of geef het als commentaar op om de interne instellingen te gebruiken.

  • GOOGLE_TITLE_MODEL is nu verouderd en zal in toekomstige versies worden verwijderd. Gebruik in plaats daarvan de titleModel Endpoint Setting in de librechat.yaml configuratie.

Let op: Voor de Vertex AI GOOGLE_SAFETY variabelen heb je standaard geen toegang tot de BLOCK_NONE instelling. Om deze beperkte HarmBlockThreshold instelling te gebruiken, moet je een van de volgende dingen doen:

Gemini Afbeeldingengeneratie

Gemini Image Generation is een tool voor Agents die zowel de Gemini API als Vertex AI ondersteunt. Zie: Gemini Image Generation

KeyTypeDescriptionExample
GEMINI_API_KEYstringToegewezen Gemini API-sleutel voor het genereren van afbeeldingen. Valt terug op GOOGLE_KEY indien niet ingesteld.# GEMINI_API_KEY=your_gemini_api_key
GEMINI_IMAGE_MODELstringGemini-model voor het genereren van afbeeldingen. Standaard: gemini-2.5-flash-image.# GEMINI_IMAGE_MODEL=gemini-2.5-flash-image

Let op: Wanneer er geen API-sleutel is geconfigureerd, valt de tool automatisch terug op Vertex AI met behulp van het serviceaccount uit GOOGLE_SERVICE_KEY_FILE. Het serviceaccount moet de rol Vertex AI User hebben.

OpenAI

Zie: OpenAI Setup

KeyTypeDescriptionExample
OPENAI_API_KEYstringJe OpenAI API-sleutel. Laat leeg om dit endpoint uit te schakelen of stel in op "user_provided" om gebruikers toe te staan hun eigen API-sleutel op te geven via de WebUI.OPENAI_API_KEY=user_provided
OPENAI_MODELSstringPas de beschikbare modellen aan, gescheiden door komma's, zonder spaties. De eerste zal de standaard zijn. Laat uitgeschakeld (met commentaar) om de interne instellingen te gebruiken.# 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_OPENAIbooleanSchakel de debug-modus in voor de OpenAI endpoint.DEBUG_OPENAI=false
OPENAI_SUMMARIZEbooleanSchakel berichtsamenvatting in. Standaard op False ingesteld# OPENAI_SUMMARIZE=true
OPENAI_SUMMARY_MODELstringHet model dat wordt gebruikt voor OpenAI-samenvattingen.# OPENAI_SUMMARY_MODEL=gpt-3.5-turbo
OPENAI_FORCE_PROMPTbooleanForceer de API om aangeroepen te worden met een prompt-payload in plaats van een messages-payload.# OPENAI_FORCE_PROMPT=false
OPENAI_ORGANIZATIONstringSpecificeer welke organisatie moet worden gebruikt voor elk API-verzoek aan OpenAI. Optioneel# OPENAI_ORGANIZATION=
OPENAI_REVERSE_PROXYstringVEROUDERD: Reverse proxy-instellingen voor OpenAI.# OPENAI_REVERSE_PROXY=
OPENAI_TITLE_MODELstringVEROUDERD: Het model dat wordt gebruikt voor OpenAI-titels.# OPENAI_TITLE_MODEL=gpt-3.5-turbo
  • OPENAI_TITLE_MODEL is nu verouderd en zal in toekomstige versies worden verwijderd. Gebruik in plaats daarvan de titleModel Endpoint Setting in de librechat.yaml configuratie.
  • OPENAI_REVERSE_PROXY is nu verouderd en zal in toekomstige versies worden verwijderd. Gebruik in plaats daarvan een custom endpoint.

Assistants

Zie: Assistants Setup

KeyTypeDescriptionExample
ASSISTANTS_API_KEYstringUw OpenAI API-sleutel voor de Assistants API. Laat leeg om dit endpoint uit te schakelen of stel in op "user_provided" om gebruikers in staat te stellen hun eigen API-sleutel op te geven via de WebUI.ASSISTANTS_API_KEY=user_provided
ASSISTANTS_MODELSstringPas de beschikbare modellen aan, gescheiden door komma's, zonder spaties. De eerste zal de standaard zijn. Laat leeg om de interne instellingen te gebruiken.# 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_URLstringAlternatieve basis-URL voor Assistants API.# ASSISTANTS_BASE_URL=

Let op: Je kunt de beschikbare modellen aanpassen, gescheiden door komma's, zonder spaties. De eerste zal de standaard zijn. Laat het leeg of becommentarieerd om de interne instellingen te gebruiken.

Tavily

Haal je API-sleutel hier: https://tavily.com/#api

Omgevingsvariabelen:

KeyTypeDescriptionExample
TAVILY_API_KEYstringTavily API-sleutel.TAVILY_API_KEY=

Traversaal

Beschrijving: LLM-verbeterde zoektool.

Haal de API-sleutel hier: https://api.traversaal.ai/dashboard

Omgevingsvariabelen:

KeyTypeDescriptionExample
TRAVERSAAL_API_KEYstringTraversaal API-sleutel.TRAVERSAAL_API_KEY=

WolframAlpha

Zie gedetailleerde instructies hier: Wolfram Alpha

Omgevingsvariabelen:

KeyTypeDescriptionExample
WOLFRAM_APP_IDstringWolfram Alpha App ID.WOLFRAM_APP_ID=

Zapier

Beschrijving: - Je hebt een Zapier-account nodig. Haal je API-sleutel hier vandaan: Zapier

  • Maak toegestane acties aan - Volg stap 3 in deze snelstartgids van Zapier

Let op: Het is bekend dat Zapier kieskeurig kan zijn bij bepaalde acties. Het schrijven van e-mailconcepten is waarschijnlijk het beste gebruik ervan.

Omgevingsvariabelen:

KeyTypeDescriptionExample
ZAPIER_NLA_API_KEYstringZapier NLA API-sleutel.ZAPIER_NLA_API_KEY=

OpenWeather

Zie gedetailleerde instructies hier: OpenWeather

KeyTypeDescriptionExample
OPENWEATHER_API_KEYstringOpenWeather API-sleutel voor de One Call API 3.0.OPENWEATHER_API_KEY=

Code Interpreter

De Code Interpreter API biedt een veilige omgeving voor het uitvoeren van code en het beheren van bestanden. Zie: Code Interpreter API

KeyTypeDescriptionExample
LIBRECHAT_CODE_API_KEYstringAPI-sleutel voor de Code Interpreter-service. Indien globaal ingesteld, biedt dit toegang aan alle gebruikers.LIBRECHAT_CODE_API_KEY=your-api-key
LIBRECHAT_CODE_BASEURLstringAangepaste basis-URL voor de Code Interpreter API (alleen voor Enterprise-abonnementen).# LIBRECHAT_CODE_BASEURL=https://your-custom-domain.com

Artifacts

Artifacts maken gebruik van de CodeSandbox library voor het veilig renderen van HTML/JS-code. Standaard wordt de openbare CDN gebruikt die door CodeSandbox wordt gehost.

Gelukkig kun je, voor degenen met interne netwerkvereisten, de bundler zelf hosten die de frontend-code compileert en een aangepaste bundler-URL opgeven voor Sandpack.

Voor meer informatie, inclusief kant-en-klare container-images voor self-hosting waarbij metrische verzoeken zijn verwijderd, zie: https://github.com/LibreChat-AI/codesandbox-client

KeyTypeDescriptionExample
SANDPACK_BUNDLER_URLstringSpecificeert een aangepaste bundler-URL voor Sandpack, gebruikt door ArtifactsSANDPACK_BUNDLER_URL=your-bundler-url

Zoeken (Meilisearch)

Schakelt zoeken in berichten en gesprekken in:

KeyTypeDescriptionExample
SEARCHbooleanSchakelt zoeken in berichten en gesprekken in.SEARCH=true

Let op: Als je geen Docker gebruikt, vereist dit de installatie van de gratis self-hosted Meilisearch of een betaald abonnement op afstand.

Om geanonimiseerde telemetrie-analyses voor MeiliSearch uit te schakelen voor absolute privacy, stel in op true:

KeyTypeDescriptionExample
MEILI_NO_ANALYTICSbooleanSchakelt geanonimiseerde telemetrie-analyse voor MeiliSearch uit.MEILI_NO_ANALYTICS=true

Voor de API-server om verbinding te maken met de zoekserver. Vervang '0.0.0.0' door 'meilisearch' als je MeiliSearch serveert met docker-compose.

KeyTypeDescriptionExample
MEILI_HOSTstringDe API-serververbinding met de zoekserver.MEILI_HOST=http://0.0.0.0:7700

Deze master key moet ten minste 16 bytes lang zijn en bestaan uit geldige UTF-8-tekens. MeiliSearch zal een foutmelding geven en weigeren op te starten als er geen master key wordt verstrekt of als deze korter is dan 16 bytes. MeiliSearch zal een veilige, automatisch gegenereerde master key voorstellen. Dit is een kant-en-klare veilige key voor docker-compose; je kunt deze vervangen door je eigen key.

KeyTypeDescriptionExample
MEILI_MASTER_KEYstringDe hoofdsleutel voor MeiliSearch.MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt

Om te voorkomen dat LibreChat een database-indexeringssynchronisatie met Meilisearch probeert uit te voeren, kun je de volgende omgevingsvariabele instellen op true. Dit is nuttig in een node-cluster of een multi-node setup, waar slechts één instantie verantwoordelijk moet zijn voor het indexeren.

KeyTypeDescriptionExample
MEILI_NO_SYNCstringSchakelaar voor het uitschakelen van Meilisearch index-synchronisatieMEILI_NO_SYNC=true

RAG API

Configureer Retrieval-Augmented Generation voor document-indexering en contextbewuste antwoorden. Zie: RAG API Configuration

KeyTypeDescriptionExample
RAG_API_URLstringURL van de RAG API-service.RAG_API_URL=http://host.docker.internal:8000
RAG_OPENAI_API_KEYstringOpenAI API-sleutel voor RAG-embeddings. Overschrijft OPENAI_API_KEY voor RAG.# RAG_OPENAI_API_KEY=sk-your-openai-api-key
RAG_OPENAI_BASEURLstringAangepaste OpenAI base URL voor RAG-embeddings.# RAG_OPENAI_BASEURL=
RAG_USE_FULL_CONTEXTbooleanHaal de volledige bestandscontext op in plaats van de top 4 resultaten. Standaard: false.# RAG_USE_FULL_CONTEXT=true
EMBEDDINGS_PROVIDERstringEmbeddings provider: openai, azure, huggingface, huggingfacetei, of ollama. Standaard: openai.# EMBEDDINGS_PROVIDER=openai
EMBEDDINGS_MODELstringTe gebruiken embeddings-model. De standaardwaarde hangt af van de provider.# EMBEDDINGS_MODEL=text-embedding-3-small

Let op: Bij gebruik van de standaard Docker-configuratie wordt het .env bestand gedeeld tussen LibreChat en de RAG API. Zie de RAG API-documentatie voor de volledige configuratieopties.

Spraak-naar-tekst & Tekst-naar-spraak

Configureer Speech-to-Text (STT) en Text-to-Speech (TTS) services. Zie: Speech Settings

KeyTypeDescriptionExample
STT_API_KEYstringAPI-sleutel voor Speech-to-Text-service (bijv. OpenAI Whisper).# STT_API_KEY=
TTS_API_KEYstringAPI-sleutel voor Text-to-Speech-service (bijv. OpenAI TTS).# TTS_API_KEY=

Let op: STT en TTS worden voornamelijk geconfigureerd via de speech: sectie in librechat.yaml. Deze omgevingsvariabelen worden in die configuratie gebruikt. Zie Speech Settings voor de volledige YAML-configuratieopties.

Configureer de functionaliteit voor gedeelde gesprekslinks.

KeyTypeDescriptionExample
ALLOW_SHARED_LINKSbooleanSchakel gedeelde gesprekslinks in of uit. Standaard: true.ALLOW_SHARED_LINKS=true
ALLOW_SHARED_LINKS_PUBLICbooleanSta toe dat gedeelde links openbaar toegankelijk zijn zonder authenticatie. Standaard: false.ALLOW_SHARED_LINKS_PUBLIC=false
SHARED_LINKS_SNAPSHOT_FILESbooleanSnapshot-bestanden waarnaar wordt verwezen door een gedeelde chat, zodat kijkers ze kunnen bekijken of downloaden via de gedeelde link. Overschrijft interface.sharedLinks.snapshotFiles wanneer ingesteld.SHARED_LINKS_SNAPSHOT_FILES=true

ALLOW_SHARED_LINKS is de overkoepelende schakelaar voor de functie. Rolrechten bepalen nu wie gedeelde links kan aanmaken, ze kan delen met geauthenticeerde gebruikers, of ze zichtbaar kan maken voor iedereen; zie interface.sharedLinks. ALLOW_SHARED_LINKS_PUBLIC regelt alleen of openbaar gedeelde links zonder authenticatie kunnen worden bekeken. SHARED_LINKS_SNAPSHOT_FILES is een globale overschrijving voor bestands-snapshots van gedeelde links en kan het serveren van snapshots voor elke link uitschakelen wanneer dit is ingesteld op false.

Gebruikerssysteem

Deze sectie bevat de configuratie voor:

Moderatie

Het Automated Moderation System gebruikt een scoresysteem om gebruikersovertredingen bij te houden. Wanneer gebruikers acties uitvoeren zoals overmatig inloggen, registreren of berichten versturen, verzamelen ze overtredingspunten. Bij het bereiken van een ingestelde drempelwaarde worden de gebruiker en hun IP-adres tijdelijk verbannen. Dit systeem waarborgt de platformbeveiliging door snelle of verdachte activiteiten te monitoren en te bestraffen.

zie: Geautomatiseerde Moderatie

Basisinstellingen voor moderatie

KeyTypeDescriptionExample
OPENAI_MODERATIONbooleanOf OpenAI-moderatie moet worden ingeschakeld voor de **OpenAI**- en **Plugins**-endpoints.OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringJe OpenAI API-sleutel.OPENAI_MODERATION_API_KEY=
OPENAI_MODERATION_REVERSE_PROXYstringLet op: Standaard uitgeschakeld, dit werkt niet met alle reverse proxy's.# OPENAI_MODERATION_REVERSE_PROXY=

Instellingen voor verbannen

KeyTypeDescriptionExample
BAN_VIOLATIONSbooleanOf het verbannen van gebruikers voor overtredingen moet worden ingeschakeld (ze worden nog steeds gelogd).BAN_VIOLATIONS=true
BAN_DURATIONintegerHoe lang de gebruiker en het bijbehorende IP-adres verbannen zijn (in milliseconden).BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALintegerDe gebruiker wordt elke keer verbannen wanneer hun score de intervaldrempel bereikt of overschrijdt.BAN_INTERVAL=20

Snelheidsbeperking voor inloggen en registratie

Voorkomt brute-force-aanvallen en spamregistraties door het aantal inlogpogingen en nieuwe accountregistraties te beperken.

KeyTypeDescriptionExample
LOGIN_MAXintegerHet maximale aantal toegestane aanmeldingen per IP per LOGIN_WINDOW.LOGIN_MAX=7
LOGIN_WINDOWintegerIn minuten, bepaalt het tijdsvenster voor LOGIN_MAX aanmeldingen.LOGIN_WINDOW=5
REGISTER_MAXintegerHet maximale aantal registraties toegestaan per IP per REGISTER_WINDOW.REGISTER_MAX=5
REGISTER_WINDOWintegerBepaalt in minuten het tijdsbestek voor REGISTER_MAX registraties.REGISTER_WINDOW=60

Score voor elke overtreding

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREintegerScore voor inlogschendingen.LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREintegerScore voor registratieovertredingen.REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREintegerScore voor gelijktijdige overtredingen.CONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREintegerScore voor berichtschendingen.MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREintegerScore voor niet-browser overtredingen.NON_BROWSER_VIOLATION_SCORE=20
ILLEGAL_MODEL_REQ_SCOREintegerScore voor illegale modelverzoeken.ILLEGAL_MODEL_REQ_SCORE=5
IMPORT_VIOLATION_SCOREintegerScore voor schendingen bij het importeren van gesprekken.IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREintegerScore voor schendingen bij het splitsen van gesprekken.FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREintegerScore voor text-to-speech-overtredingen.TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREintegerScore voor speech-to-text-overtredingen.STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREintegerScore voor overtredingen bij bestandsuploads.FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREintegerScore voor schendingen bij het opnieuw instellen van wachtwoorden.RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREintegerScore voor schendingen van e-mailverificatie.VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREintegerScore voor overtredingen bij tool-aanroepen.TOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREintegerScore voor schendingen van toegang tot gesprekken.CONVO_ACCESS_VIOLATION_SCORE=0

Let op: Toegang die niet via een browser verloopt en illegale modelverzoeken zijn bijna altijd kwaadaardig, omdat dit betekent dat een derde partij probeert toegang te krijgen tot de server via een geautomatiseerd script.

Berichtenlimiet (per gebruiker & IP)

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESbooleanOf het aantal berichten dat een gebruiker per verzoek kan verzenden moet worden beperkt.LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXintegerHet maximale aantal berichten dat een gebruiker per verzoek kan verzenden.CONCURRENT_MESSAGE_MAX=2

Limiters

Let op: Je kunt beide limiters gebruiken, maar de standaardinstelling is om alleen op IP te limiteren.

IP Limiter:
KeyTypeDescriptionExample
LIMIT_MESSAGE_IPbooleanOf het aantal berichten dat een IP mag verzenden per `MESSAGE_IP_WINDOW` moet worden beperkt.LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXintegerHet maximale aantal berichten dat een IP kan verzenden per `MESSAGE_IP_WINDOW`.MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWintegerBepaalt in minuten het tijdsvenster voor `MESSAGE_IP_MAX` berichten.MESSAGE_IP_WINDOW=1
Gebruikerslimiet:
KeyTypeDescriptionExample
LIMIT_MESSAGE_USERbooleanOf het aantal berichten dat een gebruiker per `MESSAGE_USER_WINDOW` kan verzenden moet worden beperkt.LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXintegerHet maximale aantal berichten dat een gebruiker kan verzenden per `MESSAGE_USER_WINDOW`.MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWintegerBepaalt in minuten het tijdsvenster voor `MESSAGE_USER_MAX` berichten.MESSAGE_USER_WINDOW=1

Import conversatie rate limiting

Beperkt hoe vaak gebruikers gesprekken kunnen importeren om misbruik te voorkomen.

Let op: Je kunt beide limiters gebruiken, maar de standaardinstelling is om alleen op IP te limiteren.

IP Limiter:
KeyTypeDescriptionExample
LIMIT_IMPORT_IPbooleanOf het aantal conversatie-imports dat een IP kan uitvoeren per `IMPORT_IP_WINDOW` moet worden beperkt.LIMIT_IMPORT_IP=true
IMPORT_IP_MAXintegerHet maximale aantal gespreksimporten dat een IP-adres kan uitvoeren per `IMPORT_IP_WINDOW`.IMPORT_IP_MAX=100
IMPORT_IP_WINDOWintegerBepaalt in minuten het tijdsvenster voor `IMPORT_IP_MAX` imports.IMPORT_IP_WINDOW=1
Gebruikerslimiet:
KeyTypeDescriptionExample
LIMIT_IMPORT_USERbooleanOf het aantal gespreksimportaties dat een gebruiker per `IMPORT_USER_WINDOW` mag uitvoeren, moet worden beperkt.LIMIT_IMPORT_USER=false
IMPORT_USER_MAXintegerHet maximale aantal conversatie-imports dat een gebruiker kan uitvoeren per `IMPORT_USER_WINDOW`.IMPORT_USER_MAX=50
IMPORT_USER_WINDOWintegerBepaalt in minuten het tijdsbestek voor `IMPORT_USER_MAX` imports.IMPORT_USER_WINDOW=1

Snelheidsbeperking voor het forken van gesprekken

Beperkt hoe vaak gebruikers conversaties kunnen forken om misbruik te voorkomen.

Let op: Je kunt beide limiters gebruiken, maar de standaardinstelling is om alleen op IP te limiteren.

IP Limiter:
KeyTypeDescriptionExample
LIMIT_FORK_IPbooleanOf het aantal conversatie-forks dat een IP kan aanmaken per `FORK_IP_WINDOW` moet worden beperkt.LIMIT_FORK_IP=true
FORK_IP_MAXintegerHet maximale aantal gespreks-forks dat een IP kan aanmaken per `FORK_IP_WINDOW`.FORK_IP_MAX=30
FORK_IP_WINDOWintegerBepaalt in minuten het tijdsbestek voor `FORK_IP_MAX` forks.FORK_IP_WINDOW=1
Gebruikerslimiet:
KeyTypeDescriptionExample
LIMIT_FORK_USERbooleanOf het aantal gespreks-forks dat een gebruiker per `FORK_USER_WINDOW` kan aanmaken, moet worden beperkt.LIMIT_FORK_USER=false
FORK_USER_MAXintegerHet maximale aantal gespreksvertakkingen dat een gebruiker per `FORK_USER_WINDOW` kan aanmaken.FORK_USER_MAX=7
FORK_USER_WINDOWintegerBepaalt in minuten het tijdsvenster voor `FORK_USER_MAX` forks.FORK_USER_WINDOW=1

Limiet op uploadsnelheid van bestanden

Beperkt hoe vaak gebruikers bestanden kunnen uploaden om misbruik te voorkomen.

Let op: Deze kunnen ook worden geconfigureerd via librechat.yaml in de sectie rateLimits.fileUploads.

IP Limiter:
KeyTypeDescriptionExample
FILE_UPLOAD_IP_MAXintegerMaximaal aantal bestandsuploads per IP per `FILE_UPLOAD_IP_WINDOW`. Standaard: 100.# FILE_UPLOAD_IP_MAX=100
FILE_UPLOAD_IP_WINDOWintegerIn minuten, bepaalt het tijdsvenster voor `FILE_UPLOAD_IP_MAX`. Standaard: 15.# FILE_UPLOAD_IP_WINDOW=15
Gebruikerslimiet:
KeyTypeDescriptionExample
FILE_UPLOAD_USER_MAXintegerMaximaal aantal bestandsuploads per gebruiker per `FILE_UPLOAD_USER_WINDOW`. Standaard: 50.# FILE_UPLOAD_USER_MAX=50
FILE_UPLOAD_USER_WINDOWintegerIn minuten, bepaalt het tijdsvenster voor `FILE_UPLOAD_USER_MAX`. Standaard: 15.# FILE_UPLOAD_USER_WINDOW=15

TTS (Text-to-Speech) rate limiting

Beperkt hoe vaak gebruikers Text-to-Speech kunnen gebruiken om misbruik te voorkomen.

Let op: Deze kunnen ook worden geconfigureerd via librechat.yaml in de sectie rateLimits.tts.

IP Limiter:
KeyTypeDescriptionExample
TTS_IP_MAXintegerMaximaal aantal TTS-verzoeken per IP per `TTS_IP_WINDOW`. Standaard: 100.# TTS_IP_MAX=100
TTS_IP_WINDOWintegerIn minuten, bepaalt het tijdsvenster voor `TTS_IP_MAX`. Standaard: 1.# TTS_IP_WINDOW=1
Gebruikerslimiet:
KeyTypeDescriptionExample
TTS_USER_MAXintegerMaximaal aantal TTS-verzoeken per gebruiker per `TTS_USER_WINDOW`. Standaard: 50.# TTS_USER_MAX=50
TTS_USER_WINDOWintegerIn minuten, bepaalt het tijdsvenster voor `TTS_USER_MAX`. Standaard: 1.# TTS_USER_WINDOW=1

STT (Speech-to-Text) rate limiting

Beperkt hoe vaak gebruikers Speech-to-Text kunnen gebruiken om misbruik te voorkomen.

Let op: Deze kunnen ook worden geconfigureerd via librechat.yaml in de rateLimits.stt sectie.

IP Limiter:
KeyTypeDescriptionExample
STT_IP_MAXintegerMaximaal aantal STT-verzoeken per IP per `STT_IP_WINDOW`. Standaard: 100.# STT_IP_MAX=100
STT_IP_WINDOWintegerIn minuten, bepaalt het tijdsvenster voor `STT_IP_MAX`. Standaard: 1.# STT_IP_WINDOW=1
Gebruikerslimiet:
KeyTypeDescriptionExample
STT_USER_MAXintegerMaximaal aantal STT-verzoeken per gebruiker per `STT_USER_WINDOW`. Standaard: 50.# STT_USER_MAX=50
STT_USER_WINDOWintegerIn minuten, bepaalt het tijdsvenster voor `STT_USER_MAX`. Standaard: 1.# STT_USER_WINDOW=1

Balans

De volgende functie maakt het beheer van gebruikerssaldi binnen de endpoints van het systeem mogelijk. Je hebt de optie om handmatig saldi toe te voegen, of je kunt ervoor kiezen om een systeem te implementeren dat automatisch saldi voor gebruikers opbouwt. Als er een specifiek beginsaldo is gedefinieerd in de configuratie, worden er automatisch tokens bijgeschreven op het saldo van de gebruiker wanneer deze zich registreert.

zie: Token Usage

KeyTypeDescriptionExample
CHECK_BALANCEbooleanSchakel token-tegoedbalansen in voor de OpenAI/Plugins endpoints.CHECK_BALANCE=false
START_BALANCEintegerAls de waarde is ingesteld, worden er na registratie tokens bijgeschreven op het saldo van de gebruiker.START_BALANCE=20000

Saldi beheren

  • Voer npm run add-balance uit om handmatig saldi toe te voegen.
    • Je kunt ook het e-mailadres en het aantal token-credits opgeven dat moet worden toegevoegd, bijv.: npm run add-balance [email protected] 1000
  • Voer npm run set-balance uit om handmatig saldi in te stellen, vergelijkbaar met add-balance.
  • Voer npm run list-balances uit om het saldo van elke gebruiker weer te geven.

Let op: 1000 credits = $0,001 (1 mill USD)

Registratie en inloggen

zie: Authenticatiesysteem

Scherm voor gebruikersregistratieScherm voor gebruikersregistratie

Verduidelijking van het configuratiebestand

Alle authenticatie-instellingen in dit gedeelte moeten worden geconfigureerd in uw .env bestand, niet in het librechat.yaml bestand of docker-compose.override.yml. Het docker-compose.override.yml bestand wordt alleen gebruikt om volumes te koppelen en omgevingsvariabelen in te stellen voor Docker, terwijl het librechat.yaml bestand wordt gebruikt voor aangepaste endpoints en andere applicatie-instellingen.

  • Algemene instellingen:
KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanSchakel ALLEEN e-mail login in of uit.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONbooleanSchakel e-mailregistratie voor nieuwe gebruikers in of uit.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanSta gebruikers toe om verbinding te maken met LibreChat via verschillende sociale netwerken.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanSchakel registratie van nieuwe gebruikers via verschillende sociale netwerken in of uit.ALLOW_SOCIAL_REGISTRATION=false
ALLOW_PASSWORD_RESETbooleanSchakel de mogelijkheid voor gebruikers in of uit om hun wachtwoord zelf opnieuw in te stellenALLOW_PASSWORD_RESET=false
ALLOW_ACCOUNT_DELETIONbooleanSchakel de mogelijkheid voor gebruikers om hun account zelf te verwijderen in of uit. Standaard ingeschakeld indien weggelaten/uitgecommentarieerdALLOW_ACCOUNT_DELETION=true
ALLOW_UNVERIFIED_EMAIL_LOGINbooleanStel in op true om gebruikers toe te staan in te loggen zonder hun e-mailadres te verifiëren. Indien ingesteld op false, moeten gebruikers hun e-mail verifiëren voordat ze kunnen inloggen.ALLOW_UNVERIFIED_EMAIL_LOGIN=true
MIN_PASSWORD_LENGTHnumberMinimale wachtwoordlengte voor gebruikersauthenticatie. Bij gebruik van LDAP-authenticatie kun je dit instellen op 1 om lokale wachtwoordvalidatie te omzeilen, aangezien LDAP-servers hun eigen wachtwoordbeleid beheren.MIN_PASSWORD_LENGTH=8

Snelle tip: Zelfs als registratie is uitgeschakeld, kun je gebruikers direct aan de database toevoegen met npm run create-user.

Snelle tip: Als registratie is uitgeschakeld, kun je een gebruiker verwijderen met npm run delete-user [email protected].

  • Instellingen voor sessie- en vernieuwingstokens:
KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)Sessie-verlooptijd.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (milliseconds)Verlooptijd van het refresh token.REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7
SESSION_COOKIE_SECUREbooleanOverschrijft het Secure-attribuut voor sessie/auth-cookies. Laat oningesteld om de standaard NODE_ENV/DOMAIN_SERVER heuristiek te gebruiken.# SESSION_COOKIE_SECURE=false

Je moet nieuwe veilige waarden gebruiken. De gegeven voorbeelden zijn 32-byte sleutels (64 tekens in hex). Gebruik deze replit om er snel een paar te genereren: JWT Keys

KeyTypeDescriptionExample
JWT_SECRETstring (hex)JWT geheime sleutel.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (hex)JWT refresh secret key.JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418

Sociale logins

Voor meer details: OAuth2-OIDC

Apple-authenticatie

Voor meer informatie: Apple Authentication

KeyTypeDescriptionExample
APPLE_CLIENT_IDstringUw Apple Services ID (bijv. com.yourdomain.librechat.services).APPLE_CLIENT_ID=com.yourdomain.librechat.services
APPLE_TEAM_IDstringUw Apple Developer Team ID.APPLE_TEAM_ID=YOUR_TEAM_ID
APPLE_KEY_IDstringJe Apple Key ID van de gedownloade sleutel.APPLE_KEY_ID=YOUR_KEY_ID
APPLE_PRIVATE_KEY_PATHstringAbsoluut pad naar je gedownloade .p8-bestand.APPLE_PRIVATE_KEY_PATH=/path/to/AuthKey.p8
APPLE_CALLBACK_URLstringDe callback-URL voor Apple-authenticatie.APPLE_CALLBACK_URL=/oauth/apple/callback

Discord-authenticatie

Voor meer informatie: Discord

KeyTypeDescriptionExample
DISCORD_CLIENT_IDstringUw Discord client ID.DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRETstringJe Discord client secret.DISCORD_CLIENT_SECRET=
DISCORD_CALLBACK_URLstringDe callback-URL voor Discord-authenticatie.DISCORD_CALLBACK_URL=/oauth/discord/callback

Facebook-authenticatie

Voor meer informatie: Facebook Authentication

KeyTypeDescriptionExample
FACEBOOK_CLIENT_IDstringJe Facebook client ID.FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRETstringUw Facebook client secret.FACEBOOK_CLIENT_SECRET=
FACEBOOK_CALLBACK_URLstringDe callback URL voor Facebook-authenticatie.FACEBOOK_CALLBACK_URL=/oauth/facebook/callback

GitHub-authenticatie

Voor meer informatie: GitHub Authentication

KeyTypeDescriptionExample
GITHUB_CLIENT_IDstringUw GitHub client ID.GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRETstringUw GitHub client secret.GITHUB_CLIENT_SECRET=
GITHUB_CALLBACK_URLstringDe callback URL voor GitHub-authenticatie.GITHUB_CALLBACK_URL=/oauth/github/callback
GITHUB_ENTERPRISE_BASE_URLstringOptioneel: De basis-URL voor uw GitHub Enterprise-instantie.GITHUB_ENTERPRISE_BASE_URL=
GITHUB_ENTERPRISE_USER_AGENTstringOptioneel: De user agent voor GitHub Enterprise-verzoeken.GITHUB_ENTERPRISE_USER_AGENT=

Google-authenticatie

Voor meer informatie: Google Authentication

KeyTypeDescriptionExample
GOOGLE_CLIENT_IDstringUw Google client ID.GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRETstringUw Google client secret.GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URLstringDe callback-URL voor Google-authenticatie.GOOGLE_CALLBACK_URL=/oauth/google/callback

OpenID Connect

Voor meer informatie:

KeyTypeDescriptionExample
OPENID_CLIENT_IDstringUw OpenID client ID.OPENID_CLIENT_ID=
OPENID_CLIENT_SECRETstringUw OpenID client secret.OPENID_CLIENT_SECRET=
OPENID_ISSUERstringDe OpenID issuer URL.OPENID_ISSUER=
OPENID_SESSION_SECRETstringHet geheim voor OpenID-sessieopslag.OPENID_SESSION_SECRET=
OPENID_SCOPEstringDe OpenID scope.OPENID_SCOPE="openid profile email"
OPENID_CALLBACK_URLstringDe callback URL voor OpenID-authenticatie.OPENID_CALLBACK_URL=/oauth/openid/callback
OPENID_AUDIENCEstringAudience-waarde voor OpenID JWT-validatie en autorisatieverzoeken. Door komma's gescheiden waarden worden geaccepteerd voor JWT-validatie; autorisatieverzoeken gebruiken de eerste niet-lege waarde. Vereist voor Auth0 bij gebruik van OPENID_REUSE_TOKENS=true om JWT-toegangstokens te ontvangen in plaats van ondoorzichtige tokens.OPENID_AUDIENCE=https://api.librechat.com
OPENID_REQUIRED_ROLEstringDe vereiste rol(len) voor validatie. Ondersteunt een enkele rol of meerdere door komma's gescheiden rollen. Wanneer meerdere rollen zijn opgegeven, heeft de gebruiker EEN van de opgegeven rollen nodig (OF-logica).OPENID_REQUIRED_ROLE=admin or OPENID_REQUIRED_ROLE=role1,role2,admin
OPENID_REQUIRED_ROLE_TOKEN_KINDstringHet token-type voor vereiste rolvalidatie.OPENID_REQUIRED_ROLE_TOKEN_KIND=
OPENID_REQUIRED_ROLE_PARAMETER_PATHstringHet parameterpad voor vereiste rolvalidatie.OPENID_REQUIRED_ROLE_PARAMETER_PATH=
OPENID_ADMIN_ROLEstringDe rol die de gebruiker moet hebben om een admin te zijn in LibreChat.OPENID_ADMIN_ROLE=
OPENID_ADMIN_ROLE_TOKEN_KINDstringDe bron van de informatie voor verificatie van de admin-rol. Mogelijke waarden zijn: access, id of userinfo.OPENID_ADMIN_ROLE_TOKEN_KIND=
OPENID_ADMIN_ROLE_PARAMETER_PATHstringHet parameterpad voor vereiste rolvalidatie.OPENID_ADMIN_ROLE_PARAMETER_PATH=
OPENID_ROLE_SYNC_ENABLEDbooleanSchakel generieke OpenID-rolsynchronisatie in voor niet-beheerdersrollen. ADMIN kan niet worden toegewezen via rolsynchronisatie; gebruik OPENID_ADMIN_ROLE voor beheerdersrechten.OPENID_ROLE_SYNC_ENABLED=false
OPENID_ROLE_SYNC_API_ENABLEDbooleanSchakel API-gebaseerde rol-synchronisatiehelpers in. Vereist OPENID_ROLE_SYNC_ENABLED=true.OPENID_ROLE_SYNC_API_ENABLED=false
OPENID_ROLE_SYNC_SOURCEstringTokenbron voor de role claim. Moet een van de volgende zijn: access, id, userinfo. Standaard: id.OPENID_ROLE_SYNC_SOURCE=id
OPENID_ROLE_SYNC_CLAIMstringClaim-pad dat de provider-rollen of -groepen bevat. Vereist wanneer role sync is ingeschakeld.OPENID_ROLE_SYNC_CLAIM=
OPENID_ROLE_SYNC_ROLE_PRIORITYstringDoor komma's gescheiden LibreChat-rollen, gerangschikt van meest naar minst belangrijk. De eerste overeenkomende rol wordt toegewezen.OPENID_ROLE_SYNC_ROLE_PRIORITY=Support,User
OPENID_ROLE_SYNC_FALLBACK_ROLEstringLibreChat-rol toegewezen wanneer geen prioriteitsrol overeenkomt. De fallback is autoritatief wanneer geconfigureerd.OPENID_ROLE_SYNC_FALLBACK_ROLE=USER
OPENID_BUTTON_LABELstringHet label voor de OpenID-inlogknop.OPENID_BUTTON_LABEL=
OPENID_IMAGE_URLstringDe URL van de afbeelding voor de OpenID-inlogknop.OPENID_IMAGE_URL=
OPENID_USE_END_SESSION_ENDPOINTstringOf de Issuer End Session Endpoint moet worden gebruikt als een Logout RedirectOPENID_USE_END_SESSION_ENDPOINT=TRUE
OPENID_MAX_LOGOUT_URL_LENGTHnumberMaximale lengte van de afmeld-URL voordat logout_hint wordt gebruikt in plaats van id_token_hint. Standaard: 2000.# OPENID_MAX_LOGOUT_URL_LENGTH=2000
OPENID_AUTO_REDIRECTbooleanOf er automatisch moet worden omgeleid naar de OpenID-provider.OPENID_AUTO_REDIRECT=true
OPENID_USE_PKCEbooleanGebruik PKCE (Proof Key for Code Exchange) voor OpenID-authenticatie. Laat voor publieke clients zonder client secret OPENID_CLIENT_SECRET leeg en zet dit op true.# OPENID_USE_PKCE=true
OPENID_POST_LOGOUT_REDIRECT_URIstringRedirect URI na OpenID-afmelding. Standaard ingesteld op ${DOMAIN_CLIENT}/login.# OPENID_POST_LOGOUT_REDIRECT_URI=
OPENID_CLOCK_TOLERANCEnumberKloktolerantie in seconden voor tokenvalidatie. Standaard: 300.# OPENID_CLOCK_TOLERANCE=300
OPENID_GENERATE_NONCEbooleanForceer de OpenID-client om een nonce-parameter te genereren. Vereist door sommige identiteitsproviders zoals AWS Cognito (vooral bij federatie) en Authentik.OPENID_GENERATE_NONCE=true
DEBUG_OPENID_REQUESTSbooleanSchakel gedetailleerde logging van OpenID-requestheaders in. Wanneer uitgeschakeld (standaard), worden alleen request-URL's gelogd op debug-niveau. Wanneer ingeschakeld, worden ook requestheaders gelogd (met gevoelige gegevens gemaskeerd) voor diepere debugging van authenticatieproblemen.DEBUG_OPENID_REQUESTS=false
OPENID_USERNAME_CLAIMstringDe user info-eigenschap van de OpenID-provider om op te slaan als de gebruikersnaam van de gebruiker.OPENID_USERNAME_CLAIM=
OPENID_NAME_CLAIMstringDe user info eigenschap van de OpenID provider om op te slaan als de weergavenaam van de gebruiker.OPENID_NAME_CLAIM=
OPENID_EMAIL_CLAIMstringDe user info claim die moet worden gebruikt als e-mail/identificatie voor gebruikerskoppeling (bijv. "upn" voor Entra ID). Indien niet ingesteld, wordt standaard gebruikt: email → preferred_username → upn.OPENID_EMAIL_CLAIM=

OpenID-rolsynchronisatie

OPENID_ROLE_SYNC_CLAIM is vereist wanneer rol-synchronisatie is ingeschakeld. OPENID_ROLE_SYNC_API_ENABLED=true vereist ook OPENID_ROLE_SYNC_ENABLED=true. Algemene rol-synchronisatie kan geen ADMIN toewijzen; gebruik OPENID_ADMIN_ROLE voor admin-verhoging.

Hergebruik van OpenID Connect-tokens

LibreChat ondersteunt het hergebruik van access en refresh tokens die zijn uitgegeven door uw OpenID Connect-provider (zoals Azure Entra ID of Auth0) om de authenticatiestatus van gebruikers te beheren. Wanneer deze functie actief is, wordt de refresh token die als cookie naar de gebruiker wordt verzonden, uitgegeven door uw OpenID-provider in plaats van door LibreChat.

KeyTypeDescriptionExample
OPENID_REUSE_TOKENSbooleanSchakel hergebruik van OpenID-provider-tokens in voor sessiebeheer.OPENID_REUSE_TOKENS=false
OPENID_SCOPEstringDoor spaties gescheiden lijst van OpenID-scopes. Moet offline_access bevatten voor tokenhergebruik.OPENID_SCOPE=api://librechat/.default openid profile email offline_access
OPENID_AUDIENCEstringAudience-waarde voor OpenID JWT-validatie en autorisatieverzoeken. Door komma's gescheiden waarden worden geaccepteerd voor JWT-validatie; autorisatieverzoeken gebruiken de eerste niet-lege waarde. Vereist voor Auth0 wanneer OPENID_REUSE_TOKENS=true. Zie de opmerking in het hoofdgedeelte over OpenID hierboven.OPENID_AUDIENCE=https://api.librechat.com
OPENID_REUSE_MAX_SESSION_AGE_MSnumberMaximale leeftijd van een hergebruikt OpenID-sessietoken voordat LibreChat een IdP-verversing afdwingt. Standaard: 900000 ms / 15 minuten.OPENID_REUSE_MAX_SESSION_AGE_MS=900000
OPENID_JWKS_URL_CACHE_ENABLEDbooleanSchakel caching van verificatieresultaten van de ondertekeningssleutel in.OPENID_JWKS_URL_CACHE_ENABLED=true
OPENID_JWKS_URL_CACHE_TIMEnumberCacheduur in milliseconden (standaard: 600000 ms / 10 minuten).OPENID_JWKS_URL_CACHE_TIME=600000
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIREDbooleanSchakel on-behalf-of flow in voor gebruikersinformatie.OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true
OPENID_ON_BEHALF_FLOW_USERINFO_SCOPEstringScope voor gebruikersinformatie in on-behalf-of flow.OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE=user.read
OPENID_USE_END_SESSION_ENDPOINTbooleanSchakel het gebruik van het end session endpoint in om uit te loggen.OPENID_USE_END_SESSION_ENDPOINT=true
OPENID_MAX_LOGOUT_URL_LENGTHnumberMaximale lengte van de logout-URL in tekens voordat wordt overgeschakeld naar logout_hint. Handig om 'URI too long'-fouten te voorkomen wanneer id_token_hint de serverlimieten overschrijdt. Standaard: 2000.OPENID_MAX_LOGOUT_URL_LENGTH=2000

OPENID_REUSE_MAX_SESSION_AGE_MS accepteert rekenkundige expressies zoals SESSION_EXPIRY. Verhoog deze waarde richting de levensduur van het IdP access-token wanneer uw provider het vorige access-token intrekt bij een verversing, zodat downstream-consumenten zoals MCP servers het gebruik van een nog geldig bearer-token kunnen voltooien.

Let op

Voor gedetailleerde configuratiestappen en vereisten, zie Re-use OpenID Tokens for Login Session.

Microsoft Graph API / Entra ID-integratie

Wanneer je Azure Entra ID (voorheen Azure AD) gebruikt als je OpenID-provider, kun je extra Microsoft Graph API-functies inschakelen voor verbeterde zoekmogelijkheden voor personen en groepen binnen het systeem voor rechten en delen.

KeyTypeDescriptionExample
USE_ENTRA_ID_FOR_PEOPLE_SEARCHbooleanSchakel Entra ID-personenzoekintegratie in het machtigingen-/delingssysteem in. Wanneer ingeschakeld, zal de personenkiezer zowel de lokale database als Entra ID doorzoeken.USE_ENTRA_ID_FOR_PEOPLE_SEARCH=false
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERSbooleanWanneer ingeschakeld, worden Entra ID-groepseigenaren beschouwd als leden van de groep.ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=false
OPENID_GRAPH_SCOPESstringMicrosoft Graph API-scopes vereist voor het zoeken naar personen/groepen. Standaard scopes bieden toegang tot gebruikersprofielen en groepslidmaatschappen.OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All

Belangrijke vereisten

  • Je moet Azure Entra ID geconfigureerd hebben als je OpenID-provider - OpenID token reuse MOET ingeschakeld zijn (OPENID_REUSE_TOKENS=true) - deze functie werkt niet zonder - Je Azure app registratie moet beschikken over de juiste Microsoft Graph API-rechten - Voor de groepzoekfunctionaliteit kan beheerdersinstemming vereist zijn voor bepaalde Graph API-scopes
SharePoint-integratie

LibreChat ondersteunt directe integratie met SharePoint Online en OneDrive for Business, waardoor gebruikers bestanden uit hun SharePoint-bibliotheken rechtstreeks in gesprekken kunnen selecteren en bijvoegen. Deze enterprise-functie maakt gebruik van de bestaande Azure Entra ID-authenticatie.

KeyTypeDescriptionExample
ENABLE_SHAREPOINT_FILEPICKERbooleanSchakel de SharePoint-bestandsverkenner in voor chat- en agentpanelen. Indien ingeschakeld, wordt de optie "Van SharePoint" toegevoegd aan het menu voor bestandsbijlagen.ENABLE_SHAREPOINT_FILEPICKER=true
SHAREPOINT_BASE_URLstringSharePoint tenant basis-URL. Vereist wanneer SharePoint-integratie is ingeschakeld.SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com
SHAREPOINT_PICKER_SHAREPOINT_SCOPEstringSharePoint-specifieke OAuth-scope voor de bestandskiezer. Wordt gebruikt voor authenticatie bij het openen van de SharePoint-bestandskiezerinterface.SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read
SHAREPOINT_PICKER_GRAPH_SCOPEstringMicrosoft Graph API-scope voor het downloaden van bestanden. Wordt gebruikt voor het downloaden van bestanden van SharePoint na selectie.SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All

Kritieke vereisten

Al het volgende moet geconfigureerd zijn om de SharePoint-integratie te laten werken:

  • Azure Entra ID-authenticatie moet volledig geconfigureerd zijn
  • OPENID_REUSE_TOKENS=true is verplicht (gebruikt de on-behalf-of token flow)
  • OPENID_SCOPE moet de API-scope van je LibreChat-app bevatten, bijvoorbeeld api://<client-id>/access_as_user
  • OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true is vereist bij het gebruik van die app-audience scope met Azure Entra ID
  • Uw Azure-appregistratie moet beschikken over SharePoint- en Graph API-machtigingen
  • Uw Azure-appregistratie moet het LibreChat API-bereik blootstellen dat wordt gebruikt in OPENID_SCOPE
  • Alle vier de SharePoint omgevingsvariabelen moeten worden ingesteld
  • HTTPS is vereist in productieomgevingen

Functiemogelijkheden

Wanneer ingeschakeld, kunnen gebruikers: - Bestanden openen vanuit SharePoint-documentbibliotheken en OneDrive for Business - Meerdere bestanden tegelijk selecteren (standaard max: 10 bestanden) - Real-time downloadvoortgang zien

  • Bestanden worden gedownload en aan het gesprek toegevoegd zoals normale uploads

Voor gedetailleerde instructies over de SharePoint-configuratie, zie: SharePoint Integration Guide

SAML

Voor meer informatie:

Wederzijdse uitsluiting van OpenID en SAML

Als OpenID is ingeschakeld, wordt SAML-authenticatie automatisch uitgeschakeld.

Er kan slechts één authenticatiemethode tegelijk actief zijn.

KeyTypeDescriptionExample
SAML_ENTRY_POINTstringDe URL van het toegangspunt van de SAML-identiteitsprovider (IdP).SAML_ENTRY_POINT=
SAML_ISSUERstringDe SAML service provider (SP) entity ID.SAML_ISSUER=
SAML_CERTstringHet SAML-ondertekeningscertificaat, verstrekt als bestandspad of een PEM-string van één regel.SAML_CERT=
SAML_CALLBACK_URLstringDe callback-URL voor SAML-authenticatie.SAML_CALLBACK_URL=/oauth/saml/callback
SAML_SESSION_SECRETstringHet geheim voor SAML-sessieopslag.SAML_SESSION_SECRET=
SAML_EMAIL_CLAIMstring<Optional>: Het attribuut in de SAML-assertie dat het e-mailadres van de gebruiker bevat. (standaard: email)SAML_EMAIL_CLAIM=
SAML_USERNAME_CLAIMstring<Optional>: Het attribuut in de SAML-assertie dat de gebruikersnaam bevat. (standaard: username)SAML_USERNAME_CLAIM=
SAML_GIVEN_NAME_CLAIMstring<Optional>: Het attribuut in de SAML-assertie dat de voornaam bevat. (standaard: given_name)SAML_GIVEN_NAME_CLAIM=
SAML_FAMILY_NAME_CLAIMstring<Optional>: Het attribuut in de SAML-assertie dat de achternaam bevat. (standaard: family_name)SAML_FAMILY_NAME_CLAIM=
SAML_PICTURE_CLAIMstring<Optional>: Het attribuut in de SAML-assertie dat de URL van de profielfoto bevat. (standaard: picture)SAML_PICTURE_CLAIM=
SAML_NAME_CLAIMstring<Optional>: Het attribuut in de SAML-assertie dat de volledige naam bevat.SAML_NAME_CLAIM=
SAML_BUTTON_LABELstring<Optional>: Het label voor de SAML-inlogknop.SAML_BUTTON_LABEL=
SAML_IMAGE_URLstring<Optional>: De URL van de afbeelding voor de SAML-inlogknop.SAML_IMAGE_URL=
SAML_USE_AUTHN_RESPONSE_SIGNEDboolean<Optional>: Indien "true", wordt de volledige SAML Response ondertekend. Anders wordt alleen de Assertion ondertekend (standaard).SAML_USE_AUTHN_RESPONSE_SIGNED=

LDAP/AD-authenticatie

Voor meer informatie: LDAP/AD Authentication

KeyTypeDescriptionExample
LDAP_URLstringLDAP-server-URL.LDAP_URL=ldap://localhost:389
LDAP_BIND_DNstringBind DNLDAP_BIND_DN=cn=root
LDAP_BIND_CREDENTIALSstringWachtwoord voor bindDNLDAP_BIND_CREDENTIALS=password
LDAP_USER_SEARCH_BASEstringLDAP-gebruikerszoekbasisLDAP_USER_SEARCH_BASE=o=users,o=example.com
LDAP_SEARCH_FILTERstringLDAP-zoekfilterLDAP_SEARCH_FILTER=mail={{username}}
LDAP_CA_CERT_PATHstringPad naar CA-certificaat.LDAP_CA_CERT_PATH=/path/to/root_ca_cert.crt
LDAP_TLS_REJECT_UNAUTHORIZEDstringLDAP TLS-verificatieLDAP_TLS_REJECT_UNAUTHORIZED=true
LDAP_STARTTLSstringSchakel LDAP StartTLS in om de verbinding te upgraden naar TLS. Zet op true om deze functie in te schakelen.LDAP_STARTTLS=true
LDAP_LOGIN_USES_USERNAMEbooleanGebruik gebruikersnaam in plaats van e-mail voor LDAP-login.# LDAP_LOGIN_USES_USERNAME=true
LDAP_IDstringLDAP-attribuut voor unieke gebruikers-ID. Standaard: uid of sAMAccountName, mail.# LDAP_ID=uid
LDAP_USERNAMEstringLDAP-attribuut voor gebruikersnaam. Standaard: givenName of mail.# LDAP_USERNAME=givenName
LDAP_EMAILstringLDAP-attribuut voor e-mail. Standaard: mail.# LDAP_EMAIL=userPrincipalName
LDAP_FULL_NAMEstringLDAP-kenmerk(en) voor volledige naam. Kan door komma's worden gescheiden. Standaard: givenName + surname.# LDAP_FULL_NAME=givenName,surname

Wachtwoord opnieuw instellen

E-mail wordt gebruikt voor accountverificatie en het opnieuw instellen van wachtwoorden. LibreChat ondersteunt zowel de Mailgun API als traditionele SMTP-diensten. Zie: E-mail instellen

Belangrijke opmerking: Je moet ofwel Mailgun (aanbevolen voor servers die SMTP blokkeren) of SMTP configureren om e-mail te laten werken.

Waarschuwing: Het niet instellen van geldige waarden voor Mailgun of SMTP zal ertoe leiden dat LibreChat de onbeveiligde wachtwoordreset gebruikt!

Mailgun is bijzonder nuttig voor implementaties op servers die SMTP-poorten blokkeren. Wanneer zowel MAILGUN_API_KEY als MAILGUN_DOMAIN zijn ingesteld, zal LibreChat Mailgun gebruiken in plaats van SMTP.

KeyTypeDescriptionExample
MAILGUN_API_KEYstringUw Mailgun API-sleutel (vereist voor Mailgun).MAILGUN_API_KEY=
MAILGUN_DOMAINstringUw Mailgun-domein (vereist voor Mailgun).MAILGUN_DOMAIN=mg.yourdomain.com
MAILGUN_HOSTstringAangepaste Mailgun API-host (optioneel). Gebruik https://api.eu.mailgun.net voor de EU-regio.MAILGUN_HOST=https://api.mailgun.net
EMAIL_FROMstringE-mailadres van afzender. Verplicht.[email protected]
EMAIL_FROM_NAMEstringVan-naam (standaard ingesteld op APP_TITLE indien niet opgegeven).EMAIL_FROM_NAME=

SMTP-configuratie

Als Mailgun niet is geconfigureerd, zal LibreChat terugvallen op SMTP-instellingen.

Waarschuwing: Als je EMAIL_SERVICE gebruikt, stel dan NIET de uitgebreide verbindingsparameters in: HOST, PORT, ENCRYPTION, ENCRYPTION_HOSTNAME, ALLOW_SELFSIGNED.

Zie: nodemailer well-known-services

KeyTypeDescriptionExample
EMAIL_SERVICEstringE-mailservice (bijv. Gmail, Outlook).EMAIL_SERVICE=
EMAIL_HOSTstringMailserver-host.EMAIL_HOST=
EMAIL_PORTnumberMailserver-poort.EMAIL_PORT=25
EMAIL_ENCRYPTIONstringVersleutelingsmethode (starttls, tls, enz.).EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAMEstringHostnaam voor encryptie.EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNEDbooleanSta zelfondertekende certificaten toe.EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAMEstringGebruikersnaam voor authenticatie.EMAIL_USERNAME=
EMAIL_PASSWORDstringWachtwoord voor authenticatie.EMAIL_PASSWORD=
EMAIL_FROM_NAMEstringVan naamEMAIL_FROM_NAME=
EMAIL_FROMstringE-mailadres van afzender. Verplicht.[email protected]

Firebase CDN

Zie: Firebase CDN Configuration

Belangrijk

  • Als je Firebase gebruikt als je strategie voor bestandsopslag, stel dan fileStrategy of fileStrategies in op firebase in je librechat.yaml configuratiebestand. Voor meer informatie over het configureren van het librechat.yaml bestand, raadpleeg de YAML Configuratiegids: Custom Endpoints & Configuration
KeyTypeDescriptionExample
FIREBASE_API_KEYstringDe API-sleutel voor uw Firebase-project.FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAINstringHet Firebase Auth-domein voor je project.FIREBASE_AUTH_DOMAIN=
FIREBASE_PROJECT_IDstringDe ID van je Firebase-project.FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKETstringDe Firebase Storage bucket voor je project.FIREBASE_STORAGE_BUCKET=
FIREBASE_MESSAGING_SENDER_IDstringDe Firebase Cloud Messaging sender ID.FIREBASE_MESSAGING_SENDER_ID=
FIREBASE_APP_IDstringDe Firebase App ID voor uw project.FIREBASE_APP_ID=

Amazon S3 en CloudFront

Zie: Amazon S3 Configuratie en CloudFront met S3

Belangrijk

Als je S3 gebruikt als je strategie voor bestandsopslag, stel dan fileStrategy of fileStrategies in in je librechat.yaml configuratiebestand. Als je CloudFront gebruikt, is S3 nog steeds vereist als de opslag-origin.

KeyTypeDescriptionExample
AWS_ACCESS_KEY_IDstringUw IAM-gebruikerstoegangssleutel-ID. Optioneel bij gebruik van IRSA.AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEYstringUw IAM-gebruikersgeheime toegangssleutel. Optioneel bij gebruik van IRSA.AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_REGIONstringDe AWS-regio waar uw S3-bucket zich bevindt.AWS_REGION=us-east-1
AWS_BUCKET_NAMEstringDe naam van de S3-bucket voor bestandsopslag.AWS_BUCKET_NAME=your_bucket_name
AWS_ENDPOINT_URLstringAangepaste AWS endpoint URL (optioneel). Voor S3-compatibele services. Voeg het URL-schema toe, zoals https://a7g8.da.idrivee2-32.com.# AWS_ENDPOINT_URL=https://your_endpoint_url
AWS_FORCE_PATH_STYLEbooleanStel in op true voor S3-compatibele providers die path-style URL's vereisen (bijv. MinIO, Hetzner, Backblaze B2). Niet nodig voor AWS S3. Standaard: false.# AWS_FORCE_PATH_STYLE=false
CLOUDFRONT_KEY_PAIR_IDstringCloudFront public key pair ID. Vereist voor ondertekende cookies en ondertekende CloudFront download-URL's.# CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC
CLOUDFRONT_PRIVATE_KEYstringCloudFront private key PEM. Vereist voor ondertekende cookies en ondertekende CloudFront download-URL's. Behoud PEM-nieuwe regels bij het injecteren van dit geheim.# CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"

Let op: Voor Kubernetes-implementaties (bijv. op EKS) kun je IRSA (IAM Roles for Service Accounts) gebruiken in plaats van expliciete inloggegevens op te geven. In dat geval zijn alleen AWS_REGION en AWS_BUCKET_NAME vereist.

Azure Blob Storage CDN

Zie: Azure Blob Storage CDN Configuration

Belangrijk

Als je Azure Blob Storage gebruikt als je strategie voor bestandsopslag, stel dan fileStrategy of fileStrategies in op azure_blob in je librechat.yaml configuratiebestand.

KeyTypeDescriptionExample
AZURE_STORAGE_CONNECTION_STRINGstringAzure Blob Storage connection string. Gebruik deze OF AZURE_STORAGE_ACCOUNT_NAME voor Managed Identity.AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
AZURE_STORAGE_ACCOUNT_NAMEstringAzure Storage-accountnaam. Gebruik voor Managed Identity-authenticatie (stel geen connection string in).# AZURE_STORAGE_ACCOUNT_NAME=yourAccountName
AZURE_STORAGE_PUBLIC_ACCESSbooleanSchakel openbare toegang voor blobs in. Standaard: false.AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAMEstringContainernaam voor bestandsopslag. Standaard: files.AZURE_CONTAINER_NAME=files

Let op: Gebruik ofwel AZURE_STORAGE_CONNECTION_STRING (Optie A) of AZURE_STORAGE_ACCOUNT_NAME met Managed Identity (Optie B), niet beide.

UI

Help en FAQ-knop

KeyTypeDescriptionExample
HELP_AND_FAQ_URLstringHelp en FAQ URL. Indien leeg of becommentarieerd, is de knop ingeschakeld. Om de Help en FAQ-knop uit te schakelen, stel deze in op "/".HELP_AND_FAQ_URL=https://librechat.ai

Gedrag:

Stelt de Cache-Control headers in voor statische bestanden. Deze configuraties worden alleen geactiveerd wanneer de NODE_ENV is ingesteld op production.

Het correct instellen van cache-headers is cruciaal voor het optimaliseren van de prestaties en efficiëntie van je webapplicatie. Door te bepalen hoe lang browsers en CDN's kopieën van je statische bestanden opslaan, kun je de serverbelasting aanzienlijk verminderen, de laadtijden van pagina's verkorten en de algehele gebruikerservaring verbeteren.

  • Haal het commentaar weg bij STATIC_CACHE_MAX_AGE om de max-age voor statische bestanden te wijzigen. Standaard is dit ingesteld op 4 weken.
  • Haal STATIC_CACHE_S_MAX_AGE uit het commentaar om de s-maxage voor statische bestanden te wijzigen. Standaard is dit ingesteld op 1 week.
    • Dit is voor de shared cache, die wordt gebruikt door CDN's en proxy's.
KeyTypeDescriptionExample
APP_TITLEstringApp-titel.APP_TITLE=LibreChat
CUSTOM_FOOTERstringAangepaste voettekst.# CUSTOM_FOOTER="My custom footer"
TEMP_CHAT_RETENTION_HOURSnumber**Verouderd:** Gebruik in plaats daarvan `interface.temporaryChatRetention` in librechat.yaml. Aantal uren om tijdelijke chats te bewaren. Standaard: 720 (30 dagen).# TEMP_CHAT_RETENTION_HOURS=168

Gedrag:

  • Haal het commentaar weg bij CUSTOM_FOOTER om een aangepaste voettekst toe te voegen.
  • Haal CUSTOM_FOOTER uit het commentaar en laat het leeg om de voettekst te verwijderen.
  • Je kunt nu een of meer links toevoegen in de CUSTOM_FOOTER waarde met het volgende formaat: [Anchor text](URL). Elke link moet worden gescheiden door een pipe (|).

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

Verjaardagshoed

KeyTypeDescriptionExample
SHOW_BIRTHDAY_ICONbooleanToon het verjaardagshoed-icoon.# SHOW_BIRTHDAY_ICON=true

Gedrag:

  • Het verjaardagshoed-icoon wordt automatisch getoond op 11 februari (de verjaardag van LibreChat).
  • Stel SHOW_BIRTHDAY_ICON in op false om het verjaardagsmutsje uit te schakelen.
  • Stel SHOW_BIRTHDAY_ICON in op true om het verjaardagsmutsje altijd in te schakelen.

Analytics

Google Tag Manager

LibreChat ondersteunt Google Tag Manager voor analytics. Je hebt een Google Tag Manager-ID nodig om dit in LibreChat in te schakelen. Volg deze handleiding om een Google Tag Manager-ID te genereren en Google Analytics te configureren. Stel vervolgens de ANALYTICS_GTM_ID omgevingsvariabele in op jouw Google Tag Manager-ID.

Let op: Als ANALYTICS_GTM_ID niet is ingesteld, zal Google Tag Manager niet worden ingeschakeld. Als deze onjuist is ingesteld, zul je mislukte verzoeken naar gtm.js zien.

KeyTypeDescriptionExample
ANALYTICS_GTM_IDstringGoogle Tag Manager ID.ANALYTICS_GTM_ID=

Gesprek importeren

Configureer limieten voor het importeren van gespreksbestanden om geheugenproblemen te voorkomen.

KeyTypeDescriptionExample
CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTESnumberMaximale bestandsgrootte in bytes voor het importeren van gesprekken. Standaard: 0 (geen limiet). Voorbeeld: 262144000 (250 MiB).# CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES=262144000

Inline bestandsvoorbeelden

Bepaal hoe groot gegenereerde bestanden mogen zijn voordat LibreChat de extractie van inline previews overslaat en ze alleen beschikbaar stelt om te downloaden.

KeyTypeDescriptionExample
FILE_PREVIEW_MAX_EXTRACT_BYTESnumberMaximale bronbestandsgrootte in bytes voor inline voorbeelden van code-execution artefacten. Standaard: 2097152 (2 MiB). Gerenderde HTML-voorbeelden hebben nog steeds een aparte limiet, dus zeer uitgebreide bestanden kunnen het voorbeeld overslaan, zelfs onder deze waarde.# FILE_PREVIEW_MAX_EXTRACT_BYTES=2097152

MCP (Model Context Protocol)

Configureer MCP-instellingen voor verbeterd serverbeheer en OAuth-ondersteuning.

MCP Server Configuratie

KeyTypeDescriptionExample
MCP_OAUTH_ON_AUTH_ERRORbooleanBehandel 401/403-antwoorden als OAuth-vereiste wanneer er geen OAuth-metadata is gevonden.MCP_OAUTH_ON_AUTH_ERROR=true
MCP_OAUTH_DETECTION_TIMEOUTnumberTime-out voor OAuth-detectieverzoeken in milliseconden.MCP_OAUTH_DETECTION_TIMEOUT=5000
MCP_OAUTH_HANDLING_TIMEOUTnumberHoe lang LibreChat wacht tot een gebruiker een MCP OAuth-flow voltooit voordat er een time-out optreedt. Standaard: 600000 ms (10 minuten).MCP_OAUTH_HANDLING_TIMEOUT=600000
MCP_OAUTH_FLOW_TTLnumberHoe lang de MCP OAuth flow-status wordt bewaard. LibreChat klemt dit boven MCP_OAUTH_HANDLING_TIMEOUT zodat callbacks nabij de deadline nog steeds kunnen voltooien. Standaard: 900000 ms (15 minuten).MCP_OAUTH_FLOW_TTL=900000
MCP_CONNECTION_CHECK_TTLnumberCache de verbindingsstatuscontroles voor dit aantal milliseconden om dure verificatie te voorkomen.MCP_CONNECTION_CHECK_TTL=30000
MCP_TOOLS_LIST_MAX_PAGESnumberMaximaal aantal tools/lijstpagina's om op te vragen wanneer een MCP server zijn tool-lijst pagineert (cursor-paginering). Begrenst de pagineringslus zodat een slecht functionerende server het ontdekken van tools niet kan vertragen. Afgekapt op een minimum van 1. Standaard: 50.MCP_TOOLS_LIST_MAX_PAGES=50
MCP_SKIP_CODE_CHALLENGE_CHECKbooleanSla de validatie van de code challenge-methode over. Indien ingesteld op true, wordt S256 code challenge afgedwongen, zelfs als dit niet wordt geadverteerd in .well-known/openid-configurationMCP_SKIP_CODE_CHALLENGE_CHECK=false
MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTESnumberMaximaal toegestane bytes in een niet-GET streamable HTTP MCP-antwoord voordat dit wordt geweigerd. Stel in op 0 om uit te schakelen. Standaard: 16777216 (16 MiB).# MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES=16777216
MCP_STREAMABLE_HTTP_MAX_LINE_BYTESnumberMaximaal aantal bytes toegestaan in één SSE-regel voor niet-GET streamable HTTP MCP-antwoorden. Stel in op 0 om uit te schakelen. Standaard: 5242880 (5 MiB).# MCP_STREAMABLE_HTTP_MAX_LINE_BYTES=5242880

Overig

Redis

Redis biedt aanzienlijke prestatieverbeteringen en maakt horizontale schaalbaarheid voor LibreChat mogelijk.

Let op: Redis-ondersteuning is experimenteel en je kunt problemen tegenkomen bij het gebruik ervan.

Belangrijk: Als je Redis gebruikt, moet je de cache legen nadat je instellingen in LibreChat hebt gewijzigd.

Voor gedetailleerde configuratie en voorbeelden, zie: Redis Configuration Guide

KeyTypeDescriptionExample
USE_REDISbooleanSchakel Redis in voor caching en sessieopslag. Indien true, moet REDIS_URI worden opgegeven.USE_REDIS=true
USE_REDIS_STREAMSbooleanSchakel Redis in voor hervatbare LLM-streams. Standaard wordt de waarde van USE_REDIS gebruikt indien niet ingesteld. Zet op false om in-memory opslag voor streams te gebruiken.# USE_REDIS_STREAMS=true
REDIS_URIstringRedis-verbindings-URI. Voor een enkele instantie: `redis://host:port`. Voor een cluster: door komma's gescheiden URI's.REDIS_URI=redis://127.0.0.1:6379
USE_REDIS_CLUSTERbooleanSchakel Redis-clustermodus in bij gebruik van een enkele URI# USE_REDIS_CLUSTER="true"
REDIS_CLUSTER_SAFE_DELETEbooleanVerwijder Redis-cache-keys afzonderlijk om CROSSSLOT-fouten te voorkomen op managed Redis-services met één endpoint die keys intern sharden.# REDIS_CLUSTER_SAFE_DELETE=true
REDIS_USERNAMEstringRedis-gebruikersnaam voor authenticatie. Overschrijft de gebruikersnaam in de URI indien beide zijn opgegeven.# REDIS_USERNAME=your_redis_username
REDIS_PASSWORDstringRedis-wachtwoord voor authenticatie. Overschrijft het wachtwoord in de URI als beide zijn opgegeven.# REDIS_PASSWORD=your_redis_password
REDIS_CAstringPad naar CA-certificaat voor TLS-verificatie bij gebruik van het rediss:// protocol.# REDIS_CA=/path/to/ca-cert.pem
REDIS_KEY_PREFIXstringStatisch voorvoegsel voor alle Redis-sleutels om kruisbesmetting tussen implementaties te voorkomen.# REDIS_KEY_PREFIX=librechat-prod-v2
REDIS_KEY_PREFIX_VARstringOmgevingsvariabele met dynamisch voorvoegsel (bijv. K_REVISION voor Cloud Run). Kan niet worden gebruikt met REDIS_KEY_PREFIX.# REDIS_KEY_PREFIX_VAR=K_REVISION
REDIS_MAX_LISTENERSnumberMaximaal aantal event listeners per Redis client. Voorkomt geheugenlekken. Standaard: 40.# REDIS_MAX_LISTENERS=40
REDIS_PING_INTERVALnumberPing-interval in seconden om verbindingen in stand te houden. Standaard: 0 (uitgeschakeld). Alleen instellen bij time-outs.# REDIS_PING_INTERVAL=300
FORCED_IN_MEMORY_CACHE_NAMESPACESstringDoor komma's gescheiden cache-sleutels om in-memory opslag af te dwingen, zelfs wanneer Redis is ingeschakeld.# FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES
REDIS_USE_ALTERNATIVE_DNS_LOOKUPbooleanSchakel alternatieve dnsLookup in voor TLS-verbindingen met AWS Elasticache. Vereist voor Elasticache-clusters met TLS.# REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true

Opmerkingen:

  • Wanneer USE_REDIS=true is ingesteld, moet je REDIS_URI opgeven, anders zal de applicatie een foutmelding geven.
  • Voor Redis Cluster-modus, geef meerdere URI's op: redis://node1:7001,redis://node2:7002,redis://node3:7003 (cluster-modus wordt automatisch gedetecteerd).
  • Voor managed Redis-services met één endpoint die keys intern sharden, behoud USE_REDIS_CLUSTER=false en stel REDIS_CLUSTER_SAFE_DELETE=true in als cache-clears mislukken met CROSSSLOT fouten.
  • Gebruik het rediss:// protocol voor TLS-verbindingen en stel REDIS_CA in als uw CA niet publiekelijk wordt vertrouwd.
  • REDIS_KEY_PREFIX_VAR en REDIS_KEY_PREFIX sluiten elkaar uit.
  • AWS Elasticache met TLS: Elasticache moet mogelijk een alternatieve dnsLookup gebruiken voor TLS-verbindingen. Stel REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true in als je Elasticache met TLS gebruikt. Zie de ioredis documentation voor meer details.

Leader Election

Configureer gedistribueerde leader election voor multi-instance deployments met Redis. Leader election zorgt ervoor dat slechts één instance bepaalde operaties uitvoert, zoals geplande taken.

KeyTypeDescriptionExample
LEADER_LEASE_DURATIONnumberDuur in seconden dat de leader lease geldig is voordat deze verloopt. Standaard: 25.LEADER_LEASE_DURATION=25
LEADER_RENEW_INTERVALnumberInterval in seconden waarna de leider zijn lease vernieuwt. Standaard: 10.LEADER_RENEW_INTERVAL=10
LEADER_RENEW_ATTEMPTSnumberMaximaal aantal pogingen voor opnieuw proberen wanneer het vernieuwen van de lease mislukt. Standaard: 3.LEADER_RENEW_ATTEMPTS=3
LEADER_RENEW_RETRY_DELAYnumberVertraging in seconden tussen pogingen tot opnieuw proberen bij het vernieuwen van de lease. Standaard: 0.5.LEADER_RENEW_RETRY_DELAY=0.5

Opmerkingen:

  • Leader election vereist dat Redis is ingeschakeld (USE_REDIS=true).
  • Deze instellingen zijn alleen relevant voor implementaties met meerdere instanties.
  • De leader lease moet vóór het verstrijken worden vernieuwd om het leiderschap te behouden.
  • Als de leaseverlenging na het maximale aantal pogingen mislukt, zal de instantie het leiderschap opgeven.

Hoe is deze gids?

Op deze pagina

ServerconfiguratiePoortTrust proxyCredentials ConfiguratieStatische bestandsafhandelingIndex HTML Cache ControlMongoDB DatabaseMongoDB Connection Pool ConfiguratieMongoDB Schema ConfiguratieToepassingsdomeinenVoorkom dat openbare zoekmachines indexerenLoggingLogbestandenOmgevingsvariabelenToestemmingOpenTelemetry TracingReal User Monitoring (Browser)Configuratiepad - librechat.yamlDeployment SkillsConfiguratievalidatieAfhandeling van niet-opgevangen uitzonderingenEndpointsAlgemene configuratieBekende endpoints - librechat.yamlWeb SearchAnthropicAnthropic via Vertex AIAWS BedrockBingAIGoogleGemini AfbeeldingengeneratieOpenAIAssistantsTavilyTraversaalWolframAlphaZapierOpenWeatherCode InterpreterArtifactsZoeken (Meilisearch)RAG APISpraak-naar-tekst & Tekst-naar-spraakGedeelde linksGebruikerssysteemModeratieBasisinstellingen voor moderatieInstellingen voor verbannenSnelheidsbeperking voor inloggen en registratieScore voor elke overtredingBerichtenlimiet (per gebruiker & IP)LimitersIP Limiter:Gebruikerslimiet:Import conversatie rate limitingIP Limiter:Gebruikerslimiet:Snelheidsbeperking voor het forken van gesprekkenIP Limiter:Gebruikerslimiet:Limiet op uploadsnelheid van bestandenIP Limiter:Gebruikerslimiet:TTS (Text-to-Speech) rate limitingIP Limiter:Gebruikerslimiet:STT (Speech-to-Text) rate limitingIP Limiter:Gebruikerslimiet:BalansSaldi beherenRegistratie en inloggenSociale loginsApple-authenticatieDiscord-authenticatieFacebook-authenticatieGitHub-authenticatieGoogle-authenticatieOpenID ConnectHergebruik van OpenID Connect-tokensMicrosoft Graph API / Entra ID-integratieSharePoint-integratieSAMLLDAP/AD-authenticatieWachtwoord opnieuw instellenMailgun-configuratie (Aanbevolen)SMTP-configuratieFirebase CDNAmazon S3 en CloudFrontAzure Blob Storage CDNUIHelp en FAQ-knopApp-titel en voettekstVerjaardagshoedAnalyticsGoogle Tag ManagerGesprek importerenInline bestandsvoorbeeldenMCP (Model Context Protocol)MCP Server ConfiguratieOverigRedisLeader Election