Variables d'environnement
Guide complet pour configurer l'environnement de votre application avec le fichier `.env`. Ce document est votre ressource unique pour comprendre et personnaliser les variables d'environnement qui façonneront le comportement de votre application dans différents contextes.
Bienvenue dans le guide complet pour configurer l'environnement de votre application avec le fichier .env. Ce document est votre ressource unique pour comprendre et personnaliser les variables d'environnement qui façonneront le comportement de votre application dans différents contextes.
Bien que les paramètres par défaut fournissent une base solide pour une installation docker standard, l'exploration de ce guide révélera tout le potentiel de LibreChat. Ce guide vous permet d'adapter LibreChat à vos besoins précis. Découvrez comment ajuster la disponibilité des modèles de langage, intégrer les connexions sociales, gérer le système de modération automatique, et bien plus encore. Il s'agit de vous donner le contrôle pour affiner LibreChat afin d'obtenir une expérience utilisateur optimale.
Rappel : Veuillez redémarrer LibreChat pour que les modifications de configuration prennent effet
Alternativement, vous pouvez créer un nouveau fichier nommé docker-compose.override.yml dans le même répertoire que votre fichier docker-compose.yml principal pour LibreChat, où vous pouvez définir vos variables .env selon vos besoins sous environment, ou modifier la configuration par défaut fournie par le docker-compose.yml principal, sans avoir besoin de modifier directement ou de dupliquer le fichier entier.
Pour plus d'informations, consultez :
-
Notre guide rapide :
-
La documentation officielle Docker :
-
Vous pouvez également consulter un exemple de fichier de remplacement pour LibreChat dans votre dossier LibreChat et sur GitHub :
Configuration du serveur
Port
- Le serveur écoute sur un port spécifique.
- La variable d'environnement
PORTdéfinit le port sur lequel le serveur écoute. Par défaut, elle est réglée sur3080.
| Key | Type | Description | Example |
|---|---|---|---|
| HOST | string | Spécifie l'hôte. | HOST=localhost |
| PORT | number | Spécifie le port. | PORT=3080 |
Trust proxy
Utilisez l'adresse qui se trouve à au plus n sauts de l'application Express.
req.socket.remoteAddress est le premier saut, et les autres sont recherchés dans l'en-tête X-Forwarded-For de droite à gauche.
Une valeur de 0 signifie que la première adresse non approuvée serait req.socket.remoteAddress, c'est-à-dire qu'il n'y a pas de proxy inverse.
La valeur par défaut de la variable d'environnement TRUST_PROXY est définie sur 1.
Consultez Express.js - trust proxy pour plus d'informations à ce sujet.
| Key | Type | Description | Example |
|---|---|---|---|
| TRUST_PROXY | number | Spécifie le nombre de sauts. | TRUST_PROXY=1 |
Configuration des identifiants
Pour stocker les identifiants de manière sécurisée, vous avez besoin d'une clé et d'un IV fixes. Vous pouvez les définir ici pour les environnements de production et de développement.
| Key | Type | Description | Example |
|---|---|---|---|
| CREDS_KEY | string | Clé de 32 octets (64 caractères en hexadécimal) pour le stockage sécurisé des identifiants. Requis pour le démarrage de l'application. | CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0 |
| CREDS_IV | string | IV de 16 octets (32 caractères en hexadécimal) pour le stockage sécurisé des identifiants. Requis pour le démarrage de l'application. | CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb |
Avertissement
Avertissement : Si vous ne définissez pas CREDS_KEY et CREDS_IV, l'application plantera au démarrage. - Vous pouvez utiliser ce générateur de clés pour les générer rapidement.
Gestion des fichiers statiques
| Key | Type | Description | Example |
|---|---|---|---|
| STATIC_CACHE_MAX_AGE | string | Cache-Control max-age en secondes | STATIC_CACHE_MAX_AGE=172800 |
| STATIC_CACHE_S_MAX_AGE | string | Cache-Control s-maxage en secondes pour les caches partagés (CDN et proxys) | STATIC_CACHE_S_MAX_AGE="86400" |
| DISABLE_COMPRESSION | boolean | Désactive la compression pour les fichiers statiques. | DISABLE_COMPRESSION=false |
| ENABLE_IMAGE_OUTPUT_GZIP_SCAN | boolean | Active la diffusion de versions gzippées des images téléchargées si elles sont présentes dans le même dossier. | ENABLE_IMAGE_OUTPUT_GZIP_SCAN=true |
| ENABLE_STATIC_ASSET_BROTLI | boolean | Permet de servir des versions pré-compressées Brotli des ressources statiques de l'application lorsqu'elles sont disponibles. | ENABLE_STATIC_ASSET_BROTLI=true |
Comportement :
Définit les en-têtes Cache-Control pour les fichiers statiques. Ces configurations ne se déclenchent que lorsque NODE_ENV est défini sur production.
- Décommentez
STATIC_CACHE_MAX_AGEpour modifier lemax-agelocal des fichiers statiques. Par défaut, il est réglé sur 2 jours (172800 secondes). - Décommentez
STATIC_CACHE_S_MAX_AGEpour définir les-maxagepour les caches partagés (CDN et proxys). Par défaut, cette valeur est fixée à 1 jour (86400 secondes). - Décommentez
DISABLE_COMPRESSIONpour désactiver la compression des fichiers statiques. Par défaut, la compression est activée. - Décommentez
ENABLE_IMAGE_OUTPUT_GZIP_SCANpour activer l'analyse et la diffusion de versions compressées (gzip) des images si elles ont été pré-compressées dans le même dossier, avec le même nom et une extension .gz. Par défaut, l'analyse gzip pour les images téléchargées est désactivée. - Décommentez
ENABLE_STATIC_ASSET_BROTLIpour servir des versions précompressées.brdes ressources statiques de l'application lorsqu'elles existent. Lorsqu'il est activé, Brotli est préféré à gzip pour les fichiers statiques servis par l'API.
Avertissement
- Ceci affecte uniquement les fichiers statiques servis par le serveur API et ne s'applique pas à Firebase, NGINX, ou toute autre configuration.
Contrôle du cache HTML de l'index
| Key | Type | Description | Example |
|---|---|---|---|
| INDEX_CACHE_CONTROL | string | En-tête Cache-Control pour index.html | INDEX_CACHE_CONTROL=no-cache, no-store, must-revalidate |
| INDEX_PRAGMA | string | En-tête Pragma pour index.html | INDEX_PRAGMA=no-cache |
| INDEX_EXPIRES | string | En-tête Expires pour index.html | INDEX_EXPIRES=0 |
Comportement :
Contrôle les en-têtes de mise en cache spécifiquement pour la réponse index.html. Par défaut, ces paramètres empêchent la mise en cache pour garantir que les utilisateurs obtiennent toujours la dernière version de l'application.
Note
Contrairement aux ressources statiques qui sont mises en cache pour des raisons de performance, les en-têtes de cache du fichier index.html sont configurés séparément afin de garantir que les utilisateurs obtiennent toujours le dernier shell de l'application.
Base de données MongoDB
| Key | Type | Description | Example |
|---|---|---|---|
| MONGO_URI | string | Spécifie l'URI MongoDB. | MONGO_URI=mongodb://127.0.0.1:27017/LibreChat |
Modifiez ceci pour votre URI MongoDB s'il est différent. Vous devriez ajouter LibreChat ou votre propre APP_TITLE comme nom de base de données dans l'URI.
Si vous utilisez une base de données en ligne, le format de l'URI est mongodb+srv://<username>:<password>@<host>/<database>?<options>. Votre MONGO_URI devrait ressembler à ceci :
mongodb+srv://username:[email protected]/LibreChat?retryWrites=true(retryWritesest la seule option dont vous avez besoin lors de l'utilisation de la base de données en ligne.)
Configuration du pool de connexions MongoDB
| Key | Type | Description | Example |
|---|---|---|---|
| MONGO_MAX_POOL_SIZE | number | Le nombre maximal de connexions dans le pool de connexions. | # MONGO_MAX_POOL_SIZE= |
| MONGO_MIN_POOL_SIZE | number | Le nombre minimum de connexions dans le pool de connexions. | # MONGO_MIN_POOL_SIZE= |
| MONGO_MAX_CONNECTING | number | Le nombre maximal de connexions pouvant être en cours d'établissement simultanément par le pool de connexions. | # MONGO_MAX_CONNECTING= |
| MONGO_MAX_IDLE_TIME_MS | number | Le nombre maximal de millisecondes pendant lesquelles une connexion peut rester inactive dans le pool avant d'être supprimée et fermée. | # MONGO_MAX_IDLE_TIME_MS= |
| MONGO_WAIT_QUEUE_TIMEOUT_MS | number | Le temps maximum en millisecondes pendant lequel un thread peut attendre qu'une connexion devienne disponible. | # MONGO_WAIT_QUEUE_TIMEOUT_MS= |
Configuration du schéma MongoDB
| Key | Type | Description | Example |
|---|---|---|---|
| MONGO_AUTO_INDEX | boolean | Définissez sur false pour désactiver la création automatique d'index pour tous les modèles associés à cette connexion. Lorsqu'il est omis, utilise le comportement par défaut de Mongoose. | # MONGO_AUTO_INDEX= |
| MONGO_AUTO_CREATE | boolean | Définir sur false pour désactiver l'appel automatique de createCollection() par Mongoose sur chaque modèle créé sur cette connexion. Lorsqu'il est omis, utilise le comportement par défaut de Mongoose. | # MONGO_AUTO_CREATE= |
Alternativement, vous pouvez utiliser documentDb qui émule mongoDb mais il :
- ne prend pas en charge
retryWrites- utilisezretryWrites=false - nécessite une connexion TLS, utilisez donc les paramètres
tls=truepour activer TLS ettlsCAFile=/path-to-ca/bundle.pempour pointer vers le fichier de bundle CA fourni par AWS
L'URI pour documentDb ressemblera à :
mongodb+srv://username:password@domain/dbname?retryWrites=false&tls=true&tlsCAFile=/path-to-ca/bundle.pem
Voir aussi :
- MongoDB Atlas pour des instructions sur la façon de créer une base de données MongoDB Atlas en ligne (utile pour une utilisation sans Docker)
- MongoDB Community Server pour des instructions sur la façon de créer une base de données MongoDB locale (sans Docker)
- Authentification MongoDB Pour activer l'authentification explicite pour MongoDB dans Docker.
- Gérez votre base de données avec Mongo Express pour accéder en toute sécurité à votre base de données MongoDB Docker
Domaines d'application
Pour configurer LibreChat pour une utilisation locale ou un déploiement sur un domaine personnalisé, définissez les variables d'environnement suivantes :
| Key | Type | Description | Example |
|---|---|---|---|
| DOMAIN_CLIENT | string | Spécifie le domaine côté client. | DOMAIN_CLIENT=http://localhost:3080 |
| DOMAIN_SERVER | string | Spécifie le domaine côté serveur. | DOMAIN_SERVER=http://localhost:3080 |
| ADMIN_PANEL_URL | string | URL de base du panneau d'administration externe utilisé pour les redirections OAuth/SSO de l'administrateur lorsque le panneau d'administration est hébergé séparément. N'incluez pas de barre oblique finale. | ADMIN_PANEL_URL=https://admin.example.com/admin |
| ADMIN_PANEL_SESSION_SECRET | string | Clé de chiffrement de session requise pour le panneau d'administration intégré (32 caractères minimum). Les services admin-panel de docker-compose et deploy-compose la lisent en tant que SESSION_SECRET. Générez-la avec `openssl rand -hex 32` avant de démarrer la stack. | ADMIN_PANEL_SESSION_SECRET=<your-32-char-random-string> |
| ADMIN_PANEL_PORT | number | Port hôte pour le panneau d'administration intégré dans le docker-compose par défaut. Dans deploy-compose, le panneau est servi à l'adresse http://admin.localhost via nginx à la place. | ADMIN_PANEL_PORT=3000 |
Lors du déploiement de LibreChat sur un domaine personnalisé, remplacez http://localhost:3080 par votre URL déployée.
- par ex.
https://librechat.example.com.
Empêcher l'indexation par les moteurs de recherche publics
Par défaut, votre site web ne sera pas indexé par les moteurs de recherche publics (par exemple Google, Bing, …). Cela signifie que les utilisateurs ne pourront pas trouver votre site web via ces moteurs de recherche. Si vous souhaitez rendre votre site web plus visible et accessible, vous pouvez modifier le paramètre suivant sur false
| Key | Type | Description | Example |
|---|---|---|---|
| NO_INDEX | boolean | Empêche les moteurs de recherche publics d'indexer votre site web. | NO_INDEX=true |
❗Note : Cette méthode n'est pas garantie de fonctionner pour tous les moteurs de recherche, et certains moteurs de recherche peuvent toujours indexer votre site web ou votre page web à d'autres fins, telles que la mise en cache ou l'archivage. Par conséquent, vous ne devriez pas vous fier uniquement à cette méthode pour protéger des informations sensibles ou confidentielles sur votre site web ou votre page web.
Journalisation
LibreChat dispose d'un système de journalisation centralisé intégré, consultez Logging System pour plus d'informations.
Fichiers journaux
- La journalisation de débogage est activée par défaut et est cruciale pour le développement.
- Pour signaler des problèmes, reproduisez l'erreur et soumettez les journaux depuis
./api/logs/debug-%DATE%.logsur : LibreChat GitHub Issues - Les journaux d'erreurs sont stockés au même emplacement.
Variables d'environnement
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | Garder les journaux de débogage actifs. | DEBUG_LOGGING=true |
| DEBUG_CONSOLE | boolean | Activer les logs détaillés de la console/stdout dans le même format que les logs de débogage des fichiers. | DEBUG_CONSOLE=false |
| LOG_TO_FILE | boolean | Définir sur false pour désactiver les transports Winston basés sur des fichiers tout en conservant la journalisation console disponible. | LOG_TO_FILE=true |
| CONSOLE_JSON | boolean | Activer les journaux console/stdout JSON détaillés adaptés aux déploiements cloud comme GCP/AWS. | CONSOLE_JSON=false |
| CONSOLE_JSON_STRING_LENGTH | number | Configurez la taille de troncature pour les valeurs de chaîne dans les journaux de console/stdout JSON. Par défaut : 255. | # CONSOLE_JSON_STRING_LENGTH=255 |
| LIBRECHAT_LOG_DIR | string | Répertoire personnalisé pour les fichiers journaux. La valeur par défaut est /app/logs (Docker) ou api/logs (développement local). | # LIBRECHAT_LOG_DIR=/custom/log/path |
| MEM_DIAG | boolean | Activer les diagnostics de mémoire — enregistre des instantanés du tas/RSS toutes les 60 secondes. Activé automatiquement lors de l'exécution avec --inspect. | # MEM_DIAG=true |
| AGENT_DEBUG_LOGGING | boolean | Active la journalisation de débogage détaillée dans le contrôleur d'agent (nombre de jetons, diagnostics de réduction de contexte). | # AGENT_DEBUG_LOGGING=true |
Remarque :
DEBUG_LOGGINGpeut être utilisé avecDEBUG_CONSOLEouCONSOLE_JSON, mais pas les deux en même temps.DEBUG_CONSOLEetCONSOLE_JSONsont mutuellement exclusifs.CONSOLE_JSON: Lors de la gestion des journaux de console dans les déploiements cloud (tels que GCP ou AWS), l'activation de cette option permettra de vider les journaux avec un horodatage UTC et de les formater au format JSON.- Voir : feat: Add CONSOLE_JSON
Remarque : DEBUG_CONSOLE n'est pas recommandé, car les sorties peuvent être assez verbeuses, et il est donc désactivé par défaut.
Autorisation
UID et GID sont des numéros attribués par Linux à chaque utilisateur et groupe sur le système. Si vous rencontrez des problèmes de permissions, définissez ici l'UID et le GID de l'utilisateur exécutant la commande Docker Compose. Les applications dans le conteneur s'exécuteront avec ces UID/GID.
| Key | Type | Description | Example |
|---|---|---|---|
| UID | number | L'ID utilisateur. | # UID=1000 |
| GID | number | L'ID du groupe. | # GID=1000 |
Traçage OpenTelemetry
LibreChat peut émettre des traces OpenTelemetry backend pour la visibilité générale de l'API, HTTP, MongoDB, Mongoose, Redis et des requêtes sortantes. Les spans au niveau des commandes Redis sont optionnels afin que les traces par défaut restent de haut niveau. Utilisez Langfuse pour l'observabilité des prompts/modèles spécifique à l'IA générative.
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | Activer le traçage OpenTelemetry du backend. Le traçage reste désactivé lorsque OTEL_SDK_DISABLED=true. | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | Nom du service rapporté à OpenTelemetry. Par défaut : librechat. | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | Version du service rapportée à OpenTelemetry. Utilise la version du package par défaut si non définie. | # OTEL_SERVICE_VERSION= |
| OTEL_EXPORTER_OTLP_ENDPOINT | string | Point de terminaison de l'exportateur OTLP de base. | # OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | string | endpoint OTLP spécifique aux traces. Remplace l'endpoint de base pour les traces lorsqu'il est défini. | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | En-têtes de l'exportateur OTLP séparés par des virgules, tels que les métadonnées d'autorisation. | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | Sélection de l'exportateur de traces. | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | Échantillonneur de trace OpenTelemetry. Exemple par défaut : parentbased_always_on. | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | Niveau de journalisation du SDK OpenTelemetry. | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | Désactiver le SDK OpenTelemetry même si le traçage est activé. | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Activer les spans au niveau des commandes Redis. Désactivé par défaut pour maintenir les traces du backend à un haut niveau. | # OTEL_IOREDIS_TRACING_ENABLED=false |
Real User Monitoring (Navigateur)
LibreChat peut publier la télémétrie de surveillance des utilisateurs réels (RUM) du navigateur vers des collecteurs OTLP compatibles avec HyperDX. RUM est désactivé par défaut.
| Key | Type | Description | Example |
|---|---|---|---|
| RUM_ENABLED | boolean | Activer le Real User Monitoring du navigateur. Par défaut : false. | # RUM_ENABLED=false |
| RUM_PROVIDER | string | Fournisseur de RUM pour navigateur. Prend actuellement en charge `hyperdx`. | # RUM_PROVIDER=hyperdx |
| RUM_URL | string | URL du collecteur public utilisé par le mode public-token. | # RUM_URL=http://localhost:4318 |
| RUM_SERVICE_NAME | string | Nom du service rapporté par le SDK du navigateur. Par défaut : librechat-web. | # RUM_SERVICE_NAME=librechat-web |
| RUM_ENVIRONMENT | string | Étiquette d'environnement signalée avec la télémétrie du navigateur. | # RUM_ENVIRONMENT=development |
| RUM_AUTH_MODE | string | Mode d'authentification pour la télémétrie du navigateur. Utilisez `publicToken` ou `proxy`. | # RUM_AUTH_MODE=publicToken |
| RUM_PUBLIC_TOKEN | string | Jeton de navigateur public pour le mode public-token. Considérez ceci comme public et restreignez l'ingestion au niveau du collecteur. | # RUM_PUBLIC_TOKEN= |
| RUM_PROXY_TARGET_URL | string | URL de base du collecteur utilisée par le mode proxy authentifié. Requis lorsque `RUM_AUTH_MODE=proxy`. | # RUM_PROXY_TARGET_URL=http://otel-collector:4318 |
| RUM_PROXY_TIMEOUT_MS | number | Délai d'expiration de la requête proxy en millisecondes. Par défaut : 10000. | # RUM_PROXY_TIMEOUT_MS=10000 |
| RUM_TRACE_PROPAGATION_TARGETS | string | Origines ou URLs HTTPS propriétaires séparées par des virgules qui doivent recevoir des en-têtes traceparent. | # RUM_TRACE_PROPAGATION_TARGETS=https://api.example.com |
| RUM_DISABLE_REPLAY | boolean | Désactiver la relecture de session du navigateur. Par défaut : true. | # RUM_DISABLE_REPLAY=true |
| RUM_CONSOLE_CAPTURE | boolean | Capturer les journaux de la console du navigateur. Peut collecter des prompts, des réponses ou des charges utiles sensibles. | # RUM_CONSOLE_CAPTURE=false |
| RUM_ADVANCED_NETWORK_CAPTURE | boolean | Capture les charges utiles réseau détaillées. Peut collecter des prompts, des réponses ou des charges utiles sensibles. | # RUM_ADVANCED_NETWORK_CAPTURE=false |
| RUM_SAMPLE_RATE | number | Taux d'échantillonnage de la télémétrie du navigateur de 0 à 1. Par défaut : 1. | # RUM_SAMPLE_RATE=1 |
En mode publicToken, le navigateur envoie la télémétrie directement à RUM_URL avec RUM_PUBLIC_TOKEN. En mode proxy, le navigateur envoie la télémétrie via LibreChat ; le backend valide la session utilisateur, supprime les en-têtes d'authentification de l'application et transfère la télémétrie à RUM_PROXY_TARGET_URL. Les sessions invalides ou expirées sont rejetées avec une réponse 204 afin que les échecs de télémétrie du navigateur ne fassent pas apparaître les erreurs d'authentification API habituelles. Les résultats du proxy sont comptabilisés dans rum_proxy_requests_total avec les étiquettes endpoint et result sur le point de terminaison /metrics de l'API LibreChat.
Chemin de configuration - librechat.yaml
Spécifiez un emplacement alternatif pour le fichier de configuration de LibreChat.
Vous pouvez spécifier un chemin absolu, un chemin relatif ou une URL. Le nom de fichier dans le chemin est flexible et n'a pas besoin d'être librechat.yaml ; tout fichier de configuration valide fonctionnera.
Note : Si vous préférez que LibreChat recherche le fichier de configuration dans le répertoire racine (ce qui est le comportement par défaut), laissez simplement cette option commentée.
| Key | Type | Description | Example |
|---|---|---|---|
| CONFIG_PATH | string | Un emplacement alternatif pour le fichier de configuration de LibreChat. | # CONFIG_PATH=https://raw.githubusercontent.com/danny-avila/LibreChat/main/librechat.example.yaml |
Compétences de déploiement
Les Deployment Skills sont chargés en lecture seule au démarrage depuis le système de fichiers et exposés aux utilisateurs ayant la fonctionnalité Skills activée.
| Key | Type | Description | Example |
|---|---|---|---|
| DEPLOYMENT_SKILLS_DIR | string | Répertoire contenant les Skills fournis par le déploiement. Par défaut `./skill` à la racine du projet. | # DEPLOYMENT_SKILLS_DIR=./skill |
Redémarrez LibreChat après avoir modifié ce répertoire ou tout fichier qu'il contient. Les Skills fournis par le déploiement ont priorité sur les Skills persistants portant le même nom.
Validation de la configuration
Par défaut, LibreChat s'arrêtera avec une erreur (code de sortie 1) si le fichier de configuration librechat.yaml contient des erreurs de validation. Ce comportement d'échec rapide permet de détecter les problèmes de configuration dès le début des pipelines de déploiement et empêche l'exécution avec des paramètres par défaut non intentionnels.
| Key | Type | Description | Example |
|---|---|---|---|
| CONFIG_BYPASS_VALIDATION | boolean | Lorsqu'il est défini sur `true`, le serveur enregistrera un avertissement et poursuivra son démarrage avec la configuration par défaut même si `librechat.yaml` contient des erreurs de validation. Cela préserve le comportement hérité. | # CONFIG_BYPASS_VALIDATION=true |
Avertissement
L'utilisation de CONFIG_BYPASS_VALIDATION=true n'est pas recommandée pour les environnements de production. Elle est destinée à servir de solution temporaire lors du débogage de problèmes de configuration. Corrigez toujours les erreurs de validation dans votre fichier de configuration.
Gestion des exceptions non interceptées
Par défaut, LibreChat quittera le processus lorsqu'une exception non interceptée se produit, ce qui est le comportement standard de Node.js. Vous pouvez passer outre ce comportement pour maintenir l'application en cours d'exécution après des exceptions non interceptées.
| Key | Type | Description | Example |
|---|---|---|---|
| CONTINUE_ON_UNCAUGHT_EXCEPTION | boolean | Lorsqu'il est défini sur `true`, l'application continuera de s'exécuter après avoir rencontré des exceptions non interceptées au lieu de quitter le processus. | # CONTINUE_ON_UNCAUGHT_EXCEPTION=false |
Avertissement
Non recommandé pour la production sauf si nécessaire. Les exceptions non interceptées peuvent laisser l'application dans un état imprévisible.
Endpoints
Dans cette section, vous pouvez configurer les endpoints et la sélection des modèles, leurs clés API, ainsi que les paramètres de proxy et de reverse proxy pour les endpoints qui le prennent en charge.
Configuration générale
Décommentez ENDPOINTS pour personnaliser les endpoints disponibles dans LibreChat.
| Key | Type | Description | Example |
|---|---|---|---|
| ENDPOINTS | string | Liste séparée par des virgules des endpoint disponibles. | # ENDPOINTS=openAI,agents,assistants,gptPlugins,azureOpenAI,google,anthropic,bingAI,custom |
| PROXY | string | Proxy sortant pour les clients côté serveur pris en charge. S'applique aux cibles HTTP et HTTPS. | PROXY= |
| HTTP_PROXY | string | Joker de proxy HTTP utilisé par les clients côté serveur pris en charge lorsque PROXY n'est pas défini. | # HTTP_PROXY= |
| HTTPS_PROXY | string | Joker de proxy HTTPS utilisé par les clients côté serveur pris en charge lorsque PROXY n'est pas défini. | # HTTPS_PROXY= |
| NO_PROXY | string | Hôtes, domaines ou plages IP séparés par des virgules que les clients côté serveur pris en charge doivent contourner. La variante en minuscules no_proxy est également prise en compte. | # NO_PROXY= |
| TITLE_CONVO | boolean | Activer la génération de titres pour tous les endpoint. | TITLE_CONVO=true |
Points de terminaison connus - librechat.yaml
- voir aussi : Custom Endpoints & Configuration
| Key | Type | Description | Example |
|---|---|---|---|
| ANYSCALE_API_KEY | string | Clé API pour Anyscale. | # ANYSCALE_API_KEY= |
| APIPIE_API_KEY | string | Clé API pour Apipie. | # APIPIE_API_KEY= |
| COHERE_API_KEY | string | Clé API pour Cohere. | # COHERE_API_KEY= |
| FIREWORKS_API_KEY | string | Clé API pour Fireworks. | # FIREWORKS_API_KEY= |
| GROQ_API_KEY | string | Clé API pour Groq. | # GROQ_API_KEY= |
| MISTRAL_API_KEY | string | Clé API pour Mistral. | # MISTRAL_API_KEY= |
| OPENROUTER_KEY | string | Clé API pour OpenRouter. | # OPENROUTER_KEY= |
| PERPLEXITY_API_KEY | string | Clé API pour Perplexity. | # PERPLEXITY_API_KEY= |
| SHUTTLEAI_API_KEY | string | Clé API pour ShuttleAI. | # SHUTTLEAI_API_KEY= |
| TOGETHERAI_API_KEY | string | Clé API pour TogetherAI. | # TOGETHERAI_API_KEY= |
| DEEPSEEK_API_KEY | string | Clé API pour l'API Deepseek | # DEEPSEEK_API_KEY= |
Recherche Web
La fonctionnalité de recherche web permet d'effectuer des recherches sur Internet au sein de LibreChat.
Important : Les noms exacts des variables d'environnement indiqués ci-dessous sont des références par défaut et peuvent être personnalisés via le fichier de configuration librechat.yaml pour utiliser les noms de variables de votre choix.
Pour des options de configuration et de personnalisation détaillées, consultez : Configuration de la recherche Web
| Key | Type | Description | Example |
|---|---|---|---|
| SERPER_API_KEY | string | Clé API pour le fournisseur de recherche Serper. Obtenez votre clé sur https://serper.dev/api-keys | # SERPER_API_KEY= |
| TAVILY_API_KEY | string | Clé API pour le fournisseur de recherche et de scraping Tavily. Obtenez votre clé sur https://app.tavily.com/home | # TAVILY_API_KEY= |
| TAVILY_SEARCH_URL | string | URL de l'API de recherche Tavily personnalisée (optionnel). Uniquement nécessaire pour les endpoints de recherche personnalisés ou proxy compatibles avec Tavily. | # TAVILY_SEARCH_URL= |
| TAVILY_EXTRACT_URL | string | URL de l'API d'extraction Tavily personnalisée (optionnel). Uniquement nécessaire pour les endpoints d'extraction personnalisés ou proxy compatibles avec Tavily. | # TAVILY_EXTRACT_URL= |
| FIRECRAWL_API_KEY | string | Clé API pour le service de scraping Firecrawl. Obtenez votre clé sur https://docs.firecrawl.dev/introduction#api-key | # FIRECRAWL_API_KEY= |
| FIRECRAWL_API_URL | string | URL de l'API Firecrawl personnalisée (optionnel). Uniquement nécessaire pour les instances Firecrawl personnalisées. | # FIRECRAWL_API_URL= |
| FIRECRAWL_VERSION | string | Version de l'API Firecrawl (v0 ou v1). | # FIRECRAWL_VERSION=v1 |
| JINA_API_KEY | string | Clé API pour le service de reranking Jina. Obtenez votre clé sur https://jina.ai/api-dashboard/ | # JINA_API_KEY= |
| JINA_API_URL | string | URL d'API Jina personnalisée (optionnel). Uniquement nécessaire pour les instances Jina personnalisées. | # JINA_API_URL= |
| COHERE_API_KEY | string | Clé API pour le service de reranker Cohere. Obtenez votre clé sur https://dashboard.cohere.com/welcome/login | # COHERE_API_KEY= |
Note : Ces noms de variables peuvent être personnalisés dans votre fichier de configuration librechat.yaml. Par exemple, vous pourriez utiliser CUSTOM_SERPER_KEY au lieu de SERPER_API_KEY en le configurant dans les paramètres de recherche web. Consultez la documentation sur la Web Search Configuration pour plus de détails sur la personnalisation des noms de variables.
Anthropic
voir : Anthropic Endpoint
- Vous pouvez demander une clé d'accès sur https://platform.claude.com/
- Laissez
ANTHROPIC_API_KEY=vide pour désactiver cet endpoint - Définissez
ANTHROPIC_API_KEY=sur "user_provided" pour permettre aux utilisateurs de fournir leur propre clé API depuis l'interface Web. - Si vous avez accès à un reverse proxy pour
Anthropic, vous pouvez le définir avecANTHROPIC_REVERSE_PROXY=- laisser vide ou mettre en commentaire pour utiliser l'URL de base par défaut
| Key | Type | Description | Example |
|---|---|---|---|
| ANTHROPIC_API_KEY | string | Clé API Anthropic ou "user_provided" pour permettre aux utilisateurs de fournir leur propre clé API. | Defaults to an empty string. |
| ANTHROPIC_MODELS | string | Liste séparée par des virgules des modèles Anthropic à utiliser. | # ANTHROPIC_MODELS=claude-fable-5,claude-opus-4-8,claude-opus-4-7,claude-sonnet-4-6,claude-opus-4-6,claude-opus-4-20250514,claude-3-7-sonnet-20250219,claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022 |
| ANTHROPIC_REVERSE_PROXY | string | Proxy inverse pour Anthropic. | # ANTHROPIC_REVERSE_PROXY= |
| ANTHROPIC_TITLE_MODEL | string | DÉPRÉCIÉ : Modèle à utiliser pour la génération de titres avec Anthropic. | # ANTHROPIC_TITLE_MODEL=claude-3-haiku-20240307 |
ANTHROPIC_TITLE_MODELest désormais obsolète et sera supprimé dans les prochaines versions. Utilisez plutôt le paramètretitleModelEndpoint Setting dans la configurationlibrechat.yaml.
Remarque : Doit être compatible avec l'Anthropic endpoint. De plus, les modèles Claude 2 et Claude 3 sont les plus performants pour cette tâche, les modèles
claude-3-haikuétant les moins coûteux.
Claude Fable 5 est inclus dans la liste par défaut des modèles Anthropic. Les modèles de classe Fable/Mythos utilisent le comportement Anthropic moderne dans LibreChat : contexte de 1M, prise en charge de la réflexion adaptative (adaptive thinking), prise en charge de la mise en cache des prompts (prompt caching), et gestion de thinkingDisplay pour les sorties de raisonnement résumées ou omises.
Anthropic via Vertex AI
Vous pouvez également utiliser les modèles Anthropic Claude via Google Cloud Vertex AI. Pour des options de configuration YAML détaillées, consultez : Configuration Anthropic Vertex AI
| Key | Type | Description | Example |
|---|---|---|---|
| ANTHROPIC_USE_VERTEX | boolean | Définir sur true pour utiliser les modèles Anthropic via Google Vertex AI au lieu de l'API directe. | ANTHROPIC_USE_VERTEX=true |
| ANTHROPIC_VERTEX_REGION | string | La région Google Cloud pour Vertex AI. Par défaut : us-east5. | ANTHROPIC_VERTEX_REGION=us-east5 |
Remarque : Lorsque vous utilisez Vertex AI, vous devez également configurer
GOOGLE_SERVICE_KEY_FILE(voir Configuration Google) avec un compte de service disposant du rôleVertex AI User.
AWS Bedrock
Voir : Configuration d'AWS Bedrock
| Key | Type | Description | Example |
|---|---|---|---|
| BEDROCK_AWS_DEFAULT_REGION | string | Une région AWS par défaut doit être fournie pour Bedrock. | BEDROCK_AWS_DEFAULT_REGION=us-east-1 |
| BEDROCK_AWS_ACCESS_KEY_ID | string | ID de clé d'accès AWS pour Bedrock. Optionnel si vous utilisez la chaîne d'identification AWS par défaut. | # BEDROCK_AWS_ACCESS_KEY_ID=your_access_key_id |
| BEDROCK_AWS_SECRET_ACCESS_KEY | string | Clé d'accès secrète AWS pour Bedrock. Optionnel si vous utilisez la chaîne d'identification AWS par défaut. | # BEDROCK_AWS_SECRET_ACCESS_KEY=your_secret_access_key |
| BEDROCK_AWS_SESSION_TOKEN | string | Jeton de session AWS pour les identifiants temporaires. Optionnel. | # BEDROCK_AWS_SESSION_TOKEN=your_session_token |
| BEDROCK_AWS_PROFILE | string | Nom du profil de configuration partagé AWS pour Bedrock. Optionnel si vous utilisez la chaîne d'identifiants AWS par défaut. | # BEDROCK_AWS_PROFILE=your-profile-name |
| BEDROCK_AWS_BEARER_TOKEN | string | Clé API Amazon Bedrock pour l'authentification bearer, ou user_provided pour permettre aux utilisateurs de saisir leur propre clé API Bedrock dans l'interface utilisateur. | # BEDROCK_AWS_BEARER_TOKEN=your_bedrock_api_key |
| BEDROCK_AWS_MODELS | string | Liste séparée par des virgules des IDs de modèles Bedrock. Si omis, tous les modèles pris en charge connus sont inclus. | # 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 |
Note : Vous pouvez omettre les clés d'accès pour utiliser la chaîne d'identification AWS par défaut (variables d'environnement, identifiants SSO, fichiers d'identifiants partagés ou service de métadonnées d'instance EC2/ECS). Voir AWS Bedrock Setup pour plus de détails.
Les modèles de classe Claude Fable/Mythos sur Bedrock sont uniquement destinés aux profils d'inférence. Utilisez un ID de profil tel que us.anthropic.claude-fable-5 et activez le paramètre de partage de données Anthropic requis dans la console Bedrock ou via l'API Data Retention avant de les invoquer.
BingAI
Bing, également utilisé pour Sydney, le jailbreak et Bing Image Creator
| Key | Type | Description | Example |
|---|---|---|---|
| BINGAI_TOKEN | string | Jeton d'accès Bing. Laissez vide pour désactiver. Peut être défini sur "user_provided" pour permettre aux utilisateurs de fournir leur propre jeton depuis l'interface Web. | BINGAI_TOKEN=user_provided |
| BINGAI_HOST | string | URL de l'hôte Bing. Laissez commenté pour utiliser le serveur par défaut. | # BINGAI_HOST=https://cn.bing.com |
Remarque : Il est recommandé de laisser la valeur sur "user_provided" et de fournir le jeton depuis l'interface Web.
Suivez ces instructions pour configurer le Google Endpoint
| Key | Type | Description | Example |
|---|---|---|---|
| GOOGLE_KEY | string | Clé API Google. Définissez sur "user_provided" pour permettre aux utilisateurs de fournir leur propre clé API depuis l'interface Web. | GOOGLE_KEY=user_provided |
| GOOGLE_SERVICE_KEY_FILE | string | Chemin vers le fichier de clé JSON du compte de service Google, URL pour le récupérer, ou JSON sous forme de chaîne. Utilisé pour l'authentification Vertex AI (par ex. fonctionnalités OCR). | GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json |
| GOOGLE_REVERSE_PROXY | string | URL du proxy inverse Google. | GOOGLE_REVERSE_PROXY= |
| GOOGLE_AUTH_HEADER | boolean | Utilisez l'en-tête Authorization au lieu de X-goog-api-key. Certains proxies inverses l'exigent. | # GOOGLE_AUTH_HEADER=true |
| GOOGLE_MODELS | string | Modèles Google Gemini API disponibles, séparés par des virgules. | GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash,gemini-2.0-flash-lite |
| GOOGLE_MODELS | string | Modèles Vertex AI Google disponibles, séparés par des virgules. | GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash-001,gemini-2.0-flash-lite-001 |
| GOOGLE_TITLE_MODEL | string | DÉPRÉCIÉ : Le modèle utilisé pour la génération de titres avec Google. | GOOGLE_TITLE_MODEL=gemini-pro |
| GOOGLE_LOC | string | Spécifie l'emplacement Google Cloud pour le traitement des requêtes API | GOOGLE_LOC=us-central1 |
| GOOGLE_CLOUD_LOCATION | string | Région alternative pour la génération d'images Gemini (par ex. global). | # GOOGLE_CLOUD_LOCATION=global |
| GOOGLE_EXCLUDE_SAFETY_SETTINGS | string | Omettre complètement les paramètres de sécurité inclus par défaut, ce qui utilisera les paramètres par défaut du fournisseur | GOOGLE_EXCLUDE_SAFETY_SETTINGS=true |
| GOOGLE_SAFETY_SEXUALLY_EXPLICIT | string | Paramètre de sécurité pour le contenu sexuellement explicite. Les options sont BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY et OFF. | GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH |
| GOOGLE_SAFETY_HATE_SPEECH | string | Paramètre de sécurité pour le contenu haineux. Les options sont BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY et OFF. | GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH |
| GOOGLE_SAFETY_HARASSMENT | string | Paramètre de sécurité pour le contenu de harcèlement. Les options sont BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY et OFF. | GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH |
| GOOGLE_SAFETY_DANGEROUS_CONTENT | string | Paramètre de sécurité pour le contenu dangereux. Les options sont BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY et OFF. | GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH |
| GOOGLE_SAFETY_CIVIC_INTEGRITY | string | Paramètre de sécurité pour le contenu relatif à l'intégrité civique. Les options sont BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY et OFF. | # GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH |
Personnalisez les modèles disponibles, séparés par des virgules, sans espaces. Le premier sera celui par défaut. Laissez vide ou en commentaire pour utiliser les paramètres internes.
GOOGLE_TITLE_MODELest désormais obsolète et sera supprimé dans les versions futures. Utilisez plutôt le paramètre d'endpointtitleModeldans la configurationlibrechat.yaml.
Note : Pour les variables GOOGLE_SAFETY de Vertex AI, vous n'avez pas accès au paramètre BLOCK_NONE par défaut. Pour utiliser ce paramètre restreint HarmBlockThreshold, vous devrez soit :
- (a) Obtenez l'accès via une liste d'autorisation (allowlist) par l'intermédiaire de votre équipe de compte Google
- (b) Basculez votre type de compte vers une facturation mensuelle sur facture en suivant ces instructions : https://cloud.google.com/billing/docs/how-to/invoiced-billing
Génération d'images Gemini
La génération d'images Gemini est un outil pour les Agents qui prend en charge à la fois l'API Gemini et Vertex AI. Voir : Gemini Image Generation
| Key | Type | Description | Example |
|---|---|---|---|
| GEMINI_API_KEY | string | Clé API Gemini dédiée pour la génération d'images. Utilise GOOGLE_KEY par défaut si elle n'est pas définie. | # GEMINI_API_KEY=your_gemini_api_key |
| GEMINI_IMAGE_MODEL | string | Modèle Gemini pour la génération d'images. Par défaut : gemini-2.5-flash-image. | # GEMINI_IMAGE_MODEL=gemini-2.5-flash-image |
Remarque : Lorsqu'aucune clé API n'est configurée, l'outil revient automatiquement à Vertex AI en utilisant le compte de service défini dans
GOOGLE_SERVICE_KEY_FILE. Le compte de service doit disposer du rôleVertex AI User.
OpenAI
Voir : Configuration OpenAI
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_API_KEY | string | Votre clé API OpenAI. Laissez vide pour désactiver cet endpoint ou définissez sur "user_provided" pour permettre aux utilisateurs de fournir leur propre clé API depuis l'interface Web. | OPENAI_API_KEY=user_provided |
| OPENAI_MODELS | string | Personnalisez les modèles disponibles, séparés par des virgules, sans espaces. Le premier sera celui par défaut. Laissez en commentaire pour utiliser les paramètres internes. | # OPENAI_MODELS=gpt-5,gpt-5-codex,gpt-5-mini,gpt-5-nano,o3-pro,o3,o4-mini,gpt-4.1,gpt-4.1-mini,gpt-4.1-nano,o3-mini,o1-pro,o1,gpt-4o,gpt-4o-mini |
| DEBUG_OPENAI | boolean | Activer le mode débogage pour l'endpoint OpenAI. | DEBUG_OPENAI=false |
| OPENAI_SUMMARIZE | boolean | Activer la synthèse des messages. Désactivé par défaut | # OPENAI_SUMMARIZE=true |
| OPENAI_SUMMARY_MODEL | string | Le modèle utilisé pour la synthèse OpenAI. | # OPENAI_SUMMARY_MODEL=gpt-3.5-turbo |
| OPENAI_FORCE_PROMPT | boolean | Forcer l'API à être appelée avec une charge utile de prompt au lieu d'une charge utile de messages. | # OPENAI_FORCE_PROMPT=false |
| OPENAI_ORGANIZATION | string | Spécifiez l'organisation à utiliser pour chaque requête API vers OpenAI. Optionnel | # OPENAI_ORGANIZATION= |
| OPENAI_REVERSE_PROXY | string | DÉPRÉCIÉ : Paramètres de proxy inverse pour OpenAI. | # OPENAI_REVERSE_PROXY= |
| OPENAI_TITLE_MODEL | string | DÉPRÉCIÉ : Le modèle utilisé pour la génération de titres OpenAI. | # OPENAI_TITLE_MODEL=gpt-3.5-turbo |
OPENAI_TITLE_MODELest désormais obsolète et sera supprimé dans les versions futures. Utilisez plutôt le paramètre d'endpointtitleModeldans la configurationlibrechat.yaml.OPENAI_REVERSE_PROXYest désormais obsolète et sera supprimé dans les prochaines versions. Utilisez plutôt un custom endpoint.
Assistants
Voir : Configuration des Assistants
| Key | Type | Description | Example |
|---|---|---|---|
| ASSISTANTS_API_KEY | string | Votre clé API OpenAI pour l'Assistants API. Laissez vide pour désactiver cet endpoint ou définissez sur "user_provided" pour permettre aux utilisateurs de fournir leur propre clé API depuis l'interface Web. | ASSISTANTS_API_KEY=user_provided |
| ASSISTANTS_MODELS | string | Personnalisez les modèles disponibles, séparés par des virgules, sans espaces. Le premier sera celui par défaut. Laissez vide pour utiliser les paramètres internes. | # ASSISTANTS_MODELS=gpt-3.5-turbo-0125,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-16k,gpt-3.5-turbo,gpt-4,gpt-4-0314,gpt-4-32k-0314,gpt-4-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-1106,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview |
| ASSISTANTS_BASE_URL | string | URL de base alternative pour l'API Assistants. | # ASSISTANTS_BASE_URL= |
Remarque : Vous pouvez personnaliser les modèles disponibles, séparés par des virgules, sans espaces. Le premier sera celui par défaut. Laissez vide ou en commentaire pour utiliser les paramètres internes.
Tavily
Obtenez votre clé API ici : https://tavily.com/#api
Variables d'environnement :
| Key | Type | Description | Example |
|---|---|---|---|
| TAVILY_API_KEY | string | Clé API Tavily. | TAVILY_API_KEY= |
Traversaal
Description : Outil de recherche amélioré par LLM.
Obtenez votre clé API ici : https://api.traversaal.ai/dashboard
Variables d'environnement :
| Key | Type | Description | Example |
|---|---|---|---|
| TRAVERSAAL_API_KEY | string | Clé API Traversaal. | TRAVERSAAL_API_KEY= |
WolframAlpha
Consultez les instructions détaillées ici : Wolfram Alpha
Variables d'environnement :
| Key | Type | Description | Example |
|---|---|---|---|
| WOLFRAM_APP_ID | string | ID d'application Wolfram Alpha. | WOLFRAM_APP_ID= |
Zapier
Description : - Vous avez besoin d'un compte Zapier. Obtenez votre clé API ici : Zapier
- Créer des actions autorisées - Suivez l'étape 3 de ce guide de démarrage de Zapier
Note : Zapier est connu pour être capricieux avec certaines actions. La rédaction de brouillons d'e-mails est probablement la meilleure utilisation que vous puissiez en faire.
Variables d'environnement :
| Key | Type | Description | Example |
|---|---|---|---|
| ZAPIER_NLA_API_KEY | string | Clé API Zapier NLA. | ZAPIER_NLA_API_KEY= |
OpenWeather
Voir les instructions détaillées ici : OpenWeather
| Key | Type | Description | Example |
|---|---|---|---|
| OPENWEATHER_API_KEY | string | Clé API OpenWeather pour l'API One Call 3.0. | OPENWEATHER_API_KEY= |
Code Interpreter
L'API Code Interpreter fournit un environnement sécurisé pour l'exécution de code et la gestion de fichiers. Voir : Code Interpreter API
| Key | Type | Description | Example |
|---|---|---|---|
| LIBRECHAT_CODE_API_KEY | string | Clé API pour le service Code Interpreter. Lorsqu'elle est définie globalement, elle donne accès à tous les utilisateurs. | LIBRECHAT_CODE_API_KEY=your-api-key |
| LIBRECHAT_CODE_BASEURL | string | URL de base personnalisée pour l'API de l'interpréteur de code (plans Entreprise uniquement). | # LIBRECHAT_CODE_BASEURL=https://your-custom-domain.com |
Artifacts
Les Artifacts utilisent la bibliothèque CodeSandbox pour le rendu sécurisé de code HTML/JS. Par défaut, le CDN public hébergé par CodeSandbox est utilisé.
Heureusement, pour ceux qui ont des exigences de réseau interne, vous pouvez auto-héberger le bundler qui compile le code frontend et spécifier une URL de bundler personnalisée pour Sandpack.
Pour plus d'informations, y compris sur les images de conteneur pré-construites pour l'auto-hébergement avec les requêtes de métriques supprimées, consultez : https://github.com/LibreChat-AI/codesandbox-client
| Key | Type | Description | Example |
|---|---|---|---|
| SANDPACK_BUNDLER_URL | string | Spécifie une URL de bundler personnalisée pour Sandpack, utilisée par les Artifacts | SANDPACK_BUNDLER_URL=your-bundler-url |
Recherche (Meilisearch)
Active la recherche dans les messages et les conversations :
| Key | Type | Description | Example |
|---|---|---|---|
| SEARCH | boolean | Active la recherche dans les messages et les conversations. | SEARCH=true |
Remarque : Si vous n'utilisez pas Docker, cela nécessite l'installation de Meilisearch en auto-hébergement gratuit ou d'un forfait distant payant.
Pour désactiver les analyses de télémétrie anonymisées pour MeiliSearch afin d'assurer une confidentialité absolue, définissez sur true :
| Key | Type | Description | Example |
|---|---|---|---|
| MEILI_NO_ANALYTICS | boolean | Désactive les analyses de télémétrie anonymisées pour MeiliSearch. | MEILI_NO_ANALYTICS=true |
Pour que le serveur API puisse se connecter au serveur de recherche. Remplacez '0.0.0.0' par 'meilisearch' si vous utilisez MeiliSearch avec docker-compose.
| Key | Type | Description | Example |
|---|---|---|---|
| MEILI_HOST | string | La connexion du serveur API au serveur de recherche. | MEILI_HOST=http://0.0.0.0:7700 |
Cette clé maîtresse doit faire au moins 16 octets et être composée de caractères UTF-8 valides. MeiliSearch renverra une erreur et refusera de se lancer si aucune clé maîtresse n'est fournie ou si elle fait moins de 16 octets. MeiliSearch suggérera une clé maîtresse sécurisée générée automatiquement. Il s'agit d'une clé sécurisée prête à l'emploi pour docker-compose, vous pouvez la remplacer par la vôtre.
| Key | Type | Description | Example |
|---|---|---|---|
| MEILI_MASTER_KEY | string | La clé maîtresse pour MeiliSearch. | MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt |
Pour empêcher LibreChat de tenter une synchronisation d'indexation de base de données avec Meilisearch, vous pouvez définir la variable d'environnement suivante sur true. Ceci est utile dans un cluster de nœuds ou une configuration multi-nœuds, où une seule instance doit être responsable de l'indexation.
| Key | Type | Description | Example |
|---|---|---|---|
| MEILI_NO_SYNC | string | Bascule pour désactiver la synchronisation de l'index Meilisearch | MEILI_NO_SYNC=true |
API RAG
Configurez la génération augmentée par récupération (RAG) pour l'indexation de documents et les réponses tenant compte du contexte. Voir : Configuration de l'API RAG
| Key | Type | Description | Example |
|---|---|---|---|
| RAG_API_URL | string | URL du service API RAG. | RAG_API_URL=http://host.docker.internal:8000 |
| RAG_OPENAI_API_KEY | string | Clé API OpenAI pour les embeddings RAG. Remplace OPENAI_API_KEY pour le RAG. | # RAG_OPENAI_API_KEY=sk-your-openai-api-key |
| RAG_OPENAI_BASEURL | string | URL de base OpenAI personnalisée pour les embeddings RAG. | # RAG_OPENAI_BASEURL= |
| RAG_USE_FULL_CONTEXT | boolean | Récupérer le contexte complet du fichier au lieu des 4 meilleurs résultats. Par défaut : false. | # RAG_USE_FULL_CONTEXT=true |
| EMBEDDINGS_PROVIDER | string | Fournisseur d'embeddings : openai, azure, huggingface, huggingfacetei, ou ollama. Par défaut : openai. | # EMBEDDINGS_PROVIDER=openai |
| EMBEDDINGS_MODEL | string | Modèle d'embeddings à utiliser. La valeur par défaut dépend du fournisseur. | # EMBEDDINGS_MODEL=text-embedding-3-small |
Note : Lors de l'utilisation de la configuration Docker par défaut, le fichier
.envest partagé entre LibreChat et l'API RAG. Pour connaître toutes les options de configuration, consultez la documentation de l'API RAG.
Synthèse vocale et reconnaissance vocale
Configurez les services de synthèse vocale (TTS) et de reconnaissance vocale (STT). Voir : Paramètres vocaux
| Key | Type | Description | Example |
|---|---|---|---|
| STT_API_KEY | string | Clé API pour le service de synthèse vocale (par ex. OpenAI Whisper). | # STT_API_KEY= |
| TTS_API_KEY | string | Clé API pour le service de synthèse vocale (ex. : OpenAI TTS). | # TTS_API_KEY= |
Note : STT et TTS sont principalement configurés via la section
speech:danslibrechat.yaml. Ces variables d'environnement sont référencées dans cette configuration. Voir Speech Settings pour les options de configuration YAML complètes.
Liens partagés
Configurez la fonctionnalité de liens de conversation partagés.
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_SHARED_LINKS | boolean | Activer ou désactiver les liens de conversation partagés. Par défaut : true. | ALLOW_SHARED_LINKS=true |
| ALLOW_SHARED_LINKS_PUBLIC | boolean | Autoriser l'accès public aux liens partagés sans authentification. Par défaut : false. | ALLOW_SHARED_LINKS_PUBLIC=false |
| SHARED_LINKS_SNAPSHOT_FILES | boolean | Fichiers instantanés référencés par une discussion partagée afin que les spectateurs puissent les prévisualiser ou les télécharger via le lien partagé. Remplace interface.sharedLinks.snapshotFiles lorsqu'il est défini. | SHARED_LINKS_SNAPSHOT_FILES=true |
ALLOW_SHARED_LINKS est l'interrupteur global de la fonctionnalité. Les permissions de rôle contrôlent désormais qui peut créer des liens partagés, les partager avec des utilisateurs authentifiés, ou les rendre visibles par tous ; voir interface.sharedLinks. ALLOW_SHARED_LINKS_PUBLIC contrôle uniquement si les liens partagés publiquement peuvent être consultés sans authentification. SHARED_LINKS_SNAPSHOT_FILES est une option globale de remplacement pour les instantanés de fichiers des liens partagés et peut désactiver la diffusion d'instantanés pour chaque lien lorsqu'elle est définie sur false.
Système utilisateur
Cette section contient la configuration pour :
- Modération automatisée
- Solde/Utilisation des jetons
- Inscription et connexions sociales
- Réinitialisation du mot de passe par e-mail
Modération
Le système de modération automatisé utilise un mécanisme de score pour suivre les violations des utilisateurs. Lorsque les utilisateurs effectuent des actions telles que des connexions, des inscriptions ou des envois de messages excessifs, ils accumulent des scores de violation. Une fois un seuil défini atteint, l'utilisateur et son adresse IP sont temporairement bannis. Ce système garantit la sécurité de la plateforme en surveillant et en pénalisant les activités rapides ou suspectes.
voir : Modération automatisée
Paramètres de modération de base
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | Indique s'il faut activer la modération OpenAI sur les endpoints **OpenAI** et **Plugins**. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | Votre clé API OpenAI. | OPENAI_MODERATION_API_KEY= |
| OPENAI_MODERATION_REVERSE_PROXY | string | Remarque : Commenté par défaut, ceci ne fonctionne pas avec tous les reverse proxys. | # OPENAI_MODERATION_REVERSE_PROXY= |
Paramètres de bannissement
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | Indique si le bannissement des utilisateurs pour violations doit être activé ou non (ils seront toujours enregistrés). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | Durée pendant laquelle l'utilisateur et l'adresse IP associée sont bannis (en millisecondes). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | L'utilisateur sera banni chaque fois que son score atteindra ou dépassera le seuil de l'intervalle. | BAN_INTERVAL=20 |
Limitation du taux de connexion et d'inscription
Empêche les attaques par force brute et les inscriptions de spam en limitant les tentatives de connexion et les nouvelles inscriptions de comptes.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | integer | Le nombre maximal de connexions autorisées par IP par LOGIN_WINDOW. | LOGIN_MAX=7 |
| LOGIN_WINDOW | integer | En minutes, détermine la fenêtre de temps pour LOGIN_MAX connexions. | LOGIN_WINDOW=5 |
| REGISTER_MAX | integer | Le nombre maximum d'inscriptions autorisées par IP par REGISTER_WINDOW. | REGISTER_MAX=5 |
| REGISTER_WINDOW | integer | En minutes, détermine la fenêtre temporelle pour REGISTER_MAX inscriptions. | REGISTER_WINDOW=60 |
Score pour chaque violation
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | Score pour les violations de connexion. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | Score pour les violations d'inscription. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | Score pour les violations simultanées. | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | Score pour les violations de message. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | Score pour les violations hors navigateur. | NON_BROWSER_VIOLATION_SCORE=20 |
| ILLEGAL_MODEL_REQ_SCORE | integer | Score pour les requêtes de modèle illégales. | ILLEGAL_MODEL_REQ_SCORE=5 |
| IMPORT_VIOLATION_SCORE | integer | Score pour les violations d'importation de conversation. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | Score pour les violations de bifurcation de conversation. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | Score pour les violations de synthèse vocale. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | Score pour les violations de conversion parole-texte. | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | Score pour les violations de téléchargement de fichiers. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | Score pour les violations de réinitialisation de mot de passe. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | Score pour les violations de vérification d'e-mail. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | Score pour les violations d'appel d'outil. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | Score pour les violations d'accès aux conversations. | CONVO_ACCESS_VIOLATION_SCORE=0 |
Remarque : L'accès hors navigateur et les requêtes de modèles illégales sont presque toujours malveillants, car cela signifie qu'un tiers tente d'accéder au serveur via un script automatisé.
Limitation du débit des messages (par utilisateur et par IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | Indique s'il faut limiter le nombre de messages qu'un utilisateur peut envoyer par requête. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | Le nombre maximal de messages qu'un utilisateur peut envoyer par requête. | CONCURRENT_MESSAGE_MAX=2 |
Limiteurs
Remarque : Vous pouvez utiliser les deux limiteurs, mais la valeur par défaut est de limiter uniquement par IP.
Limiteur d'IP :
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | Détermine s'il faut limiter le nombre de messages qu'une IP peut envoyer par `MESSAGE_IP_WINDOW`. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | Le nombre maximal de messages qu'une IP peut envoyer par `MESSAGE_IP_WINDOW`. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | En minutes, détermine la fenêtre temporelle pour `MESSAGE_IP_MAX` messages. | MESSAGE_IP_WINDOW=1 |
Limiteur d'utilisateur :
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | Indique s'il faut limiter le nombre de messages qu'un utilisateur peut envoyer par `MESSAGE_USER_WINDOW`. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | Le nombre maximal de messages qu'un utilisateur peut envoyer par `MESSAGE_USER_WINDOW`. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | En minutes, détermine la fenêtre temporelle pour `MESSAGE_USER_MAX` messages. | MESSAGE_USER_WINDOW=1 |
Limitation du taux d'importation des conversations
Limite la fréquence à laquelle les utilisateurs peuvent importer des conversations pour prévenir les abus.
Remarque : Vous pouvez utiliser les deux limiteurs, mais la valeur par défaut est de limiter uniquement par IP.
Limiteur d'IP :
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | Indique s'il faut limiter le nombre d'importations de conversations qu'une adresse IP peut effectuer par `IMPORT_IP_WINDOW`. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | Le nombre maximal d'importations de conversations qu'une adresse IP peut effectuer par `IMPORT_IP_WINDOW`. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | En minutes, détermine la fenêtre temporelle pour les importations `IMPORT_IP_MAX`. | IMPORT_IP_WINDOW=1 |
Limiteur d'utilisateur :
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | Indique s'il faut limiter le nombre d'importations de conversations qu'un utilisateur peut effectuer par `IMPORT_USER_WINDOW`. | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | Le nombre maximal d'importations de conversations qu'un utilisateur peut effectuer par `IMPORT_USER_WINDOW`. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | En minutes, détermine la fenêtre temporelle pour les importations `IMPORT_USER_MAX`. | IMPORT_USER_WINDOW=1 |
Limitation du taux de forking de conversation
Limite la fréquence à laquelle les utilisateurs peuvent forker des conversations pour prévenir les abus.
Remarque : Vous pouvez utiliser les deux limiteurs, mais la valeur par défaut est de limiter uniquement par IP.
Limiteur d'IP :
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | Détermine s'il faut limiter le nombre de ramifications de conversation qu'une adresse IP peut créer par `FORK_IP_WINDOW`. | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | Le nombre maximal de ramifications de conversation qu'une IP peut créer par `FORK_IP_WINDOW`. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | En minutes, détermine la fenêtre temporelle pour les forks `FORK_IP_MAX`. | FORK_IP_WINDOW=1 |
Limiteur d'utilisateur :
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | Indique s'il faut limiter le nombre de ramifications de conversation qu'un utilisateur peut créer par `FORK_USER_WINDOW`. | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | Le nombre maximal de ramifications de conversation qu'un utilisateur peut créer par `FORK_USER_WINDOW`. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | En minutes, détermine la fenêtre de temps pour les forks `FORK_USER_MAX`. | FORK_USER_WINDOW=1 |
Limitation du taux de téléchargement de fichiers
Limite la fréquence à laquelle les utilisateurs peuvent télécharger des fichiers pour prévenir les abus.
Remarque : ceux-ci peuvent également être configurés via
librechat.yamldans la sectionrateLimits.fileUploads.
Limiteur d'IP :
| Key | Type | Description | Example |
|---|---|---|---|
| FILE_UPLOAD_IP_MAX | integer | Nombre maximal de téléchargements de fichiers par IP par `FILE_UPLOAD_IP_WINDOW`. Par défaut : 100. | # FILE_UPLOAD_IP_MAX=100 |
| FILE_UPLOAD_IP_WINDOW | integer | En minutes, détermine la fenêtre de temps pour `FILE_UPLOAD_IP_MAX`. Par défaut : 15. | # FILE_UPLOAD_IP_WINDOW=15 |
Limiteur d'utilisateur :
| Key | Type | Description | Example |
|---|---|---|---|
| FILE_UPLOAD_USER_MAX | integer | Nombre maximal de téléchargements de fichiers par utilisateur par `FILE_UPLOAD_USER_WINDOW`. Par défaut : 50. | # FILE_UPLOAD_USER_MAX=50 |
| FILE_UPLOAD_USER_WINDOW | integer | En minutes, détermine la fenêtre de temps pour `FILE_UPLOAD_USER_MAX`. Par défaut : 15. | # FILE_UPLOAD_USER_WINDOW=15 |
Limitation de débit TTS (Text-to-Speech)
Limite la fréquence à laquelle les utilisateurs peuvent utiliser la synthèse vocale (Text-to-Speech) pour prévenir les abus.
Remarque : Ceux-ci peuvent également être configurés via
librechat.yamldans la sectionrateLimits.tts.
Limiteur d'IP :
| Key | Type | Description | Example |
|---|---|---|---|
| TTS_IP_MAX | integer | Nombre maximal de requêtes TTS par IP par `TTS_IP_WINDOW`. Par défaut : 100. | # TTS_IP_MAX=100 |
| TTS_IP_WINDOW | integer | En minutes, détermine la fenêtre de temps pour `TTS_IP_MAX`. Par défaut : 1. | # TTS_IP_WINDOW=1 |
Limiteur d'utilisateur :
| Key | Type | Description | Example |
|---|---|---|---|
| TTS_USER_MAX | integer | Nombre maximal de requêtes TTS par utilisateur par `TTS_USER_WINDOW`. Par défaut : 50. | # TTS_USER_MAX=50 |
| TTS_USER_WINDOW | integer | En minutes, détermine la fenêtre temporelle pour `TTS_USER_MAX`. Par défaut : 1. | # TTS_USER_WINDOW=1 |
Limitation de débit STT (Speech-to-Text)
Limite la fréquence à laquelle les utilisateurs peuvent utiliser la fonction Speech-to-Text pour prévenir les abus.
Remarque : ceux-ci peuvent également être configurés via
librechat.yamldans la sectionrateLimits.stt.
Limiteur d'IP :
| Key | Type | Description | Example |
|---|---|---|---|
| STT_IP_MAX | integer | Nombre maximal de requêtes STT par IP par `STT_IP_WINDOW`. Par défaut : 100. | # STT_IP_MAX=100 |
| STT_IP_WINDOW | integer | En minutes, détermine la fenêtre de temps pour `STT_IP_MAX`. Par défaut : 1. | # STT_IP_WINDOW=1 |
Limiteur d'utilisateur :
| Key | Type | Description | Example |
|---|---|---|---|
| STT_USER_MAX | integer | Nombre maximal de requêtes STT par utilisateur par `STT_USER_WINDOW`. Par défaut : 50. | # STT_USER_MAX=50 |
| STT_USER_WINDOW | integer | En minutes, détermine la fenêtre de temps pour `STT_USER_MAX`. Par défaut : 1. | # STT_USER_WINDOW=1 |
Solde
La fonctionnalité suivante permet la gestion des soldes des utilisateurs au sein des endpoint du système. Vous avez la possibilité d'ajouter des soldes manuellement, ou vous pouvez choisir de mettre en œuvre un système qui accumule automatiquement les soldes pour les utilisateurs. Si un solde initial spécifique est défini dans la configuration, des jetons seront automatiquement crédités sur le solde de l'utilisateur lors de son inscription.
voir : Utilisation des jetons
| Key | Type | Description | Example |
|---|---|---|---|
| CHECK_BALANCE | boolean | Activer les soldes de crédits de jetons pour les endpoints OpenAI/Plugins. | CHECK_BALANCE=false |
| START_BALANCE | integer | Si la valeur est définie, des jetons seront crédités au solde de l'utilisateur après son inscription. | START_BALANCE=20000 |
Gestion des soldes
- Exécutez
npm run add-balancepour ajouter manuellement des soldes.- Vous pouvez également spécifier l'e-mail et le montant de crédits de jetons à ajouter, par exemple :
npm run add-balance [email protected] 1000
- Vous pouvez également spécifier l'e-mail et le montant de crédits de jetons à ajouter, par exemple :
- Exécutez
npm run set-balancepour définir manuellement les soldes, de manière similaire àadd-balance. - Exécutez
npm run list-balancespour lister le solde de chaque utilisateur.
Note : 1000 crédits = 0,001 $ (1 mill USD)
Inscription et connexion
voir : Système d'authentification
Clarification du fichier de configuration
Tous les paramètres d'authentification de cette section doivent être configurés dans votre fichier .env, et non dans le fichier librechat.yaml ou docker-compose.override.yml. Le fichier docker-compose.override.yml est uniquement utilisé pour monter des volumes et définir des variables d'environnement pour Docker, tandis que le fichier librechat.yaml est utilisé pour les endpoints personnalisés et d'autres paramètres de l'application.
- Paramètres généraux :
| Key | Type | Description | Example |
|---|---|---|---|
| ALLOW_EMAIL_LOGIN | boolean | Activer ou désactiver UNIQUEMENT la connexion par e-mail. | ALLOW_EMAIL_LOGIN=true |
| ALLOW_REGISTRATION | boolean | Activer ou désactiver l'inscription par e-mail des nouveaux utilisateurs. | ALLOW_REGISTRATION=true |
| ALLOW_SOCIAL_LOGIN | boolean | Permettre aux utilisateurs de se connecter à LibreChat avec divers réseaux sociaux. | ALLOW_SOCIAL_LOGIN=false |
| ALLOW_SOCIAL_REGISTRATION | boolean | Activer ou désactiver l'inscription de nouveaux utilisateurs via divers réseaux sociaux. | ALLOW_SOCIAL_REGISTRATION=false |
| ALLOW_PASSWORD_RESET | boolean | Activer ou désactiver la possibilité pour les utilisateurs de réinitialiser leur mot de passe eux-mêmes | ALLOW_PASSWORD_RESET=false |
| ALLOW_ACCOUNT_DELETION | boolean | Activez ou désactivez la possibilité pour les utilisateurs de supprimer eux-mêmes leur compte. Activé par défaut si omis ou mis en commentaire. | ALLOW_ACCOUNT_DELETION=true |
| ALLOW_UNVERIFIED_EMAIL_LOGIN | boolean | Définissez sur true pour permettre aux utilisateurs de se connecter sans vérifier leur adresse e-mail. Si défini sur false, les utilisateurs devront vérifier leur e-mail avant de pouvoir se connecter. | ALLOW_UNVERIFIED_EMAIL_LOGIN=true |
| MIN_PASSWORD_LENGTH | number | Longueur minimale du mot de passe pour l'authentification des utilisateurs. Lors de l'utilisation de l'authentification LDAP, vous souhaiterez peut-être régler cette valeur sur 1 pour contourner la validation locale du mot de passe, car les serveurs LDAP gèrent leurs propres politiques de mot de passe. | MIN_PASSWORD_LENGTH=8 |
Astuce rapide : Même avec l'inscription désactivée, ajoutez des utilisateurs directement dans la base de données en utilisant
npm run create-user.
Astuce rapide : Avec l'inscription désactivée, vous pouvez supprimer un utilisateur avec
npm run delete-user [email protected].
- Paramètres de session et de jeton d'actualisation :
| Key | Type | Description | Example |
|---|---|---|---|
| SESSION_EXPIRY | integer (milliseconds) | Délai d'expiration de la session. | SESSION_EXPIRY=1000 * 60 * 15 |
| REFRESH_TOKEN_EXPIRY | integer (milliseconds) | Délai d'expiration du jeton de rafraîchissement. | REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7 |
| SESSION_COOKIE_SECURE | boolean | Remplace l'attribut Secure pour les cookies de session/authentification. Laissez vide pour utiliser l'heuristique par défaut de NODE_ENV/DOMAIN_SERVER. | # SESSION_COOKIE_SECURE=false |
-
Pour plus d'informations : Refresh Token
-
Paramètres JWT :
Vous devez utiliser de nouvelles valeurs sécurisées. Les exemples fournis sont des clés de 32 octets (64 caractères en hexadécimal). Utilisez ce replit pour en générer rapidement : JWT Keys
| Key | Type | Description | Example |
|---|---|---|---|
| JWT_SECRET | string (hex) | Clé secrète JWT. | JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef |
| JWT_REFRESH_SECRET | string (hex) | Clé secrète de rafraîchissement JWT. | JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 |
Connexions sociales
Pour plus de détails : OAuth2-OIDC
Authentification Apple
Pour plus d'informations : Authentification Apple
| Key | Type | Description | Example |
|---|---|---|---|
| APPLE_CLIENT_ID | string | Votre identifiant de services Apple (par ex. com.yourdomain.librechat.services). | APPLE_CLIENT_ID=com.yourdomain.librechat.services |
| APPLE_TEAM_ID | string | Votre ID d'équipe Apple Developer. | APPLE_TEAM_ID=YOUR_TEAM_ID |
| APPLE_KEY_ID | string | Votre Apple Key ID provenant de la clé téléchargée. | APPLE_KEY_ID=YOUR_KEY_ID |
| APPLE_PRIVATE_KEY_PATH | string | Chemin absolu vers votre fichier .p8 téléchargé. | APPLE_PRIVATE_KEY_PATH=/path/to/AuthKey.p8 |
| APPLE_CALLBACK_URL | string | L'URL de rappel pour l'authentification Apple. | APPLE_CALLBACK_URL=/oauth/apple/callback |
Authentification Discord
Pour plus d'informations : Discord
| Key | Type | Description | Example |
|---|---|---|---|
| DISCORD_CLIENT_ID | string | Votre ID client Discord. | DISCORD_CLIENT_ID= |
| DISCORD_CLIENT_SECRET | string | Votre client secret Discord. | DISCORD_CLIENT_SECRET= |
| DISCORD_CALLBACK_URL | string | L'URL de rappel pour l'authentification Discord. | DISCORD_CALLBACK_URL=/oauth/discord/callback |
Authentification Facebook
Pour plus d'informations : Authentification Facebook
| Key | Type | Description | Example |
|---|---|---|---|
| FACEBOOK_CLIENT_ID | string | Votre identifiant client Facebook. | FACEBOOK_CLIENT_ID= |
| FACEBOOK_CLIENT_SECRET | string | Votre secret client Facebook. | FACEBOOK_CLIENT_SECRET= |
| FACEBOOK_CALLBACK_URL | string | L'URL de rappel pour l'authentification Facebook. | FACEBOOK_CALLBACK_URL=/oauth/facebook/callback |
Authentification GitHub
Pour plus d'informations : GitHub Authentication
| Key | Type | Description | Example |
|---|---|---|---|
| GITHUB_CLIENT_ID | string | Votre identifiant client GitHub. | GITHUB_CLIENT_ID= |
| GITHUB_CLIENT_SECRET | string | Votre client secret GitHub. | GITHUB_CLIENT_SECRET= |
| GITHUB_CALLBACK_URL | string | L'URL de rappel pour l'authentification GitHub. | GITHUB_CALLBACK_URL=/oauth/github/callback |
| GITHUB_ENTERPRISE_BASE_URL | string | Optionnel : L'URL de base pour votre instance GitHub Enterprise. | GITHUB_ENTERPRISE_BASE_URL= |
| GITHUB_ENTERPRISE_USER_AGENT | string | Optionnel : L'agent utilisateur pour les requêtes GitHub Enterprise. | GITHUB_ENTERPRISE_USER_AGENT= |
Authentification Google
Pour plus d'informations : Google Authentication
| Key | Type | Description | Example |
|---|---|---|---|
| GOOGLE_CLIENT_ID | string | Votre identifiant client Google. | GOOGLE_CLIENT_ID= |
| GOOGLE_CLIENT_SECRET | string | Votre client secret Google. | GOOGLE_CLIENT_SECRET= |
| GOOGLE_CALLBACK_URL | string | L'URL de rappel pour l'authentification Google. | GOOGLE_CALLBACK_URL=/oauth/google/callback |
OpenID Connect
Pour plus d'informations :
| Key | Type | Description | Example |
|---|---|---|---|
| OPENID_CLIENT_ID | string | Votre identifiant client OpenID. | OPENID_CLIENT_ID= |
| OPENID_CLIENT_SECRET | string | Votre secret client OpenID. | OPENID_CLIENT_SECRET= |
| OPENID_ISSUER | string | L'URL de l'émetteur OpenID. | OPENID_ISSUER= |
| OPENID_SESSION_SECRET | string | Le secret pour le stockage de session OpenID. | OPENID_SESSION_SECRET= |
| OPENID_SCOPE | string | La portée OpenID. | OPENID_SCOPE="openid profile email" |
| OPENID_CALLBACK_URL | string | L'URL de rappel pour l'authentification OpenID. | OPENID_CALLBACK_URL=/oauth/openid/callback |
| OPENID_AUDIENCE | string | Valeur de l'audience pour la validation JWT OpenID et les requêtes d'autorisation. Les valeurs séparées par des virgules sont acceptées pour la validation JWT ; les requêtes d'autorisation utilisent la première valeur non vide. Requis pour Auth0 lors de l'utilisation de OPENID_REUSE_TOKENS=true afin de recevoir des jetons d'accès JWT au lieu de jetons opaques. | OPENID_AUDIENCE=https://api.librechat.com |
| OPENID_REQUIRED_ROLE | string | Le(s) rôle(s) requis pour la validation. Prend en charge un rôle unique ou plusieurs rôles séparés par des virgules. Lorsque plusieurs rôles sont spécifiés, l'utilisateur doit posséder N'IMPORTE LEQUEL des rôles spécifiés (logique OU). | OPENID_REQUIRED_ROLE=admin or OPENID_REQUIRED_ROLE=role1,role2,admin |
| OPENID_REQUIRED_ROLE_TOKEN_KIND | string | Le type de jeton pour la validation du rôle requis. | OPENID_REQUIRED_ROLE_TOKEN_KIND= |
| OPENID_REQUIRED_ROLE_PARAMETER_PATH | string | Le chemin du paramètre pour la validation du rôle requis. | OPENID_REQUIRED_ROLE_PARAMETER_PATH= |
| OPENID_ADMIN_ROLE | string | Le rôle que l'utilisateur doit avoir pour être administrateur dans LibreChat. | OPENID_ADMIN_ROLE= |
| OPENID_ADMIN_ROLE_TOKEN_KIND | string | La source d'information pour la vérification du rôle d'administrateur. Les valeurs possibles sont : access, id ou userinfo. | OPENID_ADMIN_ROLE_TOKEN_KIND= |
| OPENID_ADMIN_ROLE_PARAMETER_PATH | string | Le chemin du paramètre pour la validation du rôle requis. | OPENID_ADMIN_ROLE_PARAMETER_PATH= |
| OPENID_ROLE_SYNC_ENABLED | boolean | Activer la synchronisation générique des rôles OpenID pour les rôles non-admin. ADMIN ne peut pas être attribué par la synchronisation des rôles ; utilisez OPENID_ADMIN_ROLE pour l'élévation des privilèges admin. | OPENID_ROLE_SYNC_ENABLED=false |
| OPENID_ROLE_SYNC_API_ENABLED | boolean | Activer les assistants de synchronisation des rôles basés sur l'API. Nécessite OPENID_ROLE_SYNC_ENABLED=true. | OPENID_ROLE_SYNC_API_ENABLED=false |
| OPENID_ROLE_SYNC_SOURCE | string | Source de jeton pour la revendication de rôle. Doit être l'un des suivants : access, id, userinfo. Par défaut : id. | OPENID_ROLE_SYNC_SOURCE=id |
| OPENID_ROLE_SYNC_CLAIM | string | Chemin de revendication qui contient les rôles ou groupes du fournisseur. Requis lorsque la synchronisation des rôles est activée. | OPENID_ROLE_SYNC_CLAIM= |
| OPENID_ROLE_SYNC_ROLE_PRIORITY | string | Rôles LibreChat séparés par des virgules, classés du plus important au moins important. Le premier rôle correspondant est attribué. | OPENID_ROLE_SYNC_ROLE_PRIORITY=Support,User |
| OPENID_ROLE_SYNC_FALLBACK_ROLE | string | Rôle LibreChat attribué lorsqu'aucun rôle prioritaire ne correspond. Le repli est prioritaire lorsqu'il est configuré. | OPENID_ROLE_SYNC_FALLBACK_ROLE=USER |
| OPENID_BUTTON_LABEL | string | L'étiquette du bouton de connexion OpenID. | OPENID_BUTTON_LABEL= |
| OPENID_IMAGE_URL | string | L'URL de l'image du bouton de connexion OpenID. | OPENID_IMAGE_URL= |
| OPENID_USE_END_SESSION_ENDPOINT | string | Indique s'il faut utiliser l'Issuer End Session Endpoint comme redirection de déconnexion | OPENID_USE_END_SESSION_ENDPOINT=TRUE |
| OPENID_MAX_LOGOUT_URL_LENGTH | number | Longueur maximale de l'URL de déconnexion avant d'utiliser logout_hint au lieu de id_token_hint. Par défaut : 2000. | # OPENID_MAX_LOGOUT_URL_LENGTH=2000 |
| OPENID_AUTO_REDIRECT | boolean | Indique si la redirection vers le fournisseur OpenID doit être automatique. | OPENID_AUTO_REDIRECT=true |
| OPENID_USE_PKCE | boolean | Utilisez PKCE (Proof Key for Code Exchange) pour l'authentification OpenID. Pour les clients publics sans client secret, laissez OPENID_CLIENT_SECRET vide et réglez ceci sur true. | # OPENID_USE_PKCE=true |
| OPENID_POST_LOGOUT_REDIRECT_URI | string | URI de redirection après la déconnexion OpenID. Par défaut à ${DOMAIN_CLIENT}/login. | # OPENID_POST_LOGOUT_REDIRECT_URI= |
| OPENID_CLOCK_TOLERANCE | number | Tolérance d'horloge en secondes pour la validation des jetons. Par défaut : 300. | # OPENID_CLOCK_TOLERANCE=300 |
| OPENID_GENERATE_NONCE | boolean | Force le client OpenID à générer un paramètre nonce. Requis par certains fournisseurs d'identité comme AWS Cognito (particulièrement avec la fédération) et Authentik. | OPENID_GENERATE_NONCE=true |
| DEBUG_OPENID_REQUESTS | boolean | Activez la journalisation détaillée des en-têtes de requête OpenID. Lorsqu'elle est désactivée (par défaut), seules les URL de requête sont journalisées au niveau debug. Lorsqu'elle est activée, les en-têtes de requête sont également journalisés (avec les données sensibles masquées) pour un débogage plus approfondi des problèmes d'authentification. | DEBUG_OPENID_REQUESTS=false |
| OPENID_USERNAME_CLAIM | string | La propriété d'informations utilisateur du fournisseur OpenID à stocker comme nom d'utilisateur. | OPENID_USERNAME_CLAIM= |
| OPENID_NAME_CLAIM | string | La propriété d'informations utilisateur du fournisseur OpenID à enregistrer comme nom d'affichage de l'utilisateur. | OPENID_NAME_CLAIM= |
| OPENID_EMAIL_CLAIM | string | La revendication d'informations utilisateur à utiliser comme e-mail/identifiant pour la correspondance des utilisateurs (par ex. "upn" pour Entra ID). Lorsqu'elle n'est pas définie, les valeurs par défaut sont : email → preferred_username → upn. | OPENID_EMAIL_CLAIM= |
Synchronisation des rôles OpenID
OPENID_ROLE_SYNC_CLAIM est requis lorsque la synchronisation des rôles est activée.
OPENID_ROLE_SYNC_API_ENABLED=true nécessite également OPENID_ROLE_SYNC_ENABLED=true. La synchronisation générique des rôles ne peut pas attribuer le rôle ADMIN ; utilisez OPENID_ADMIN_ROLE pour l'élévation des privilèges administrateur.
Réutilisation de jeton OpenID Connect
LibreChat prend en charge la réutilisation des jetons d'accès et de rafraîchissement émis par votre fournisseur OpenID Connect (comme Azure Entra ID ou Auth0) pour gérer l'état d'authentification des utilisateurs. Lorsque cette fonctionnalité est active, le jeton de rafraîchissement transmis à l'utilisateur sous forme de cookie est émis par votre fournisseur OpenID au lieu de LibreChat.
| Key | Type | Description | Example |
|---|---|---|---|
| OPENID_REUSE_TOKENS | boolean | Activer la réutilisation des jetons du fournisseur OpenID pour la gestion de session. | OPENID_REUSE_TOKENS=false |
| OPENID_SCOPE | string | Liste des scopes OpenID séparés par des espaces. Doit inclure offline_access pour la réutilisation des jetons. | OPENID_SCOPE=api://librechat/.default openid profile email offline_access |
| OPENID_AUDIENCE | string | Valeur d'audience pour les requêtes d'autorisation et de validation JWT OpenID. Les valeurs séparées par des virgules sont acceptées pour la validation JWT ; les requêtes d'autorisation utilisent la première valeur non vide. Requis pour Auth0 lorsque OPENID_REUSE_TOKENS=true. Voir la note dans la section OpenID principale ci-dessus. | OPENID_AUDIENCE=https://api.librechat.com |
| OPENID_REUSE_MAX_SESSION_AGE_MS | number | Âge maximal pendant lequel un jeton de session OpenID réutilisé est servi avant que LibreChat ne force un rafraîchissement auprès de l'IdP. Par défaut : 900000 ms / 15 minutes. | OPENID_REUSE_MAX_SESSION_AGE_MS=900000 |
| OPENID_JWKS_URL_CACHE_ENABLED | boolean | Activer la mise en cache des résultats de vérification de la clé de signature. | OPENID_JWKS_URL_CACHE_ENABLED=true |
| OPENID_JWKS_URL_CACHE_TIME | number | Durée du cache en millisecondes (par défaut : 600000 ms / 10 minutes). | OPENID_JWKS_URL_CACHE_TIME=600000 |
| OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED | boolean | Activer le flux on-behalf-of pour les informations utilisateur. | OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true |
| OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE | string | Portée des informations utilisateur dans le flux on-behalf-of. | OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE=user.read |
| OPENID_USE_END_SESSION_ENDPOINT | boolean | Activer l'utilisation de l'endpoint de fin de session pour la déconnexion. | OPENID_USE_END_SESSION_ENDPOINT=true |
| OPENID_MAX_LOGOUT_URL_LENGTH | number | Longueur maximale de l'URL de déconnexion en caractères avant de passer à logout_hint. Utile pour éviter les erreurs URI too long lorsque id_token_hint dépasse les limites du serveur. Par défaut : 2000. | OPENID_MAX_LOGOUT_URL_LENGTH=2000 |
OPENID_REUSE_MAX_SESSION_AGE_MS accepte des expressions arithmétiques comme SESSION_EXPIRY. Augmentez cette valeur vers la durée de vie du jeton d'accès de l'IdP lorsque votre fournisseur révoque le jeton d'accès précédent lors du rafraîchissement, afin que les consommateurs en aval, tels que les serveurs MCP, puissent terminer l'utilisation d'un jeton porteur toujours valide.
Note
Pour des étapes de configuration détaillées et les prérequis, consultez Re-use OpenID Tokens for Login Session.
Intégration de l'API Microsoft Graph / Entra ID
Lorsque vous utilisez Azure Entra ID (anciennement Azure AD) comme fournisseur OpenID, vous pouvez activer des fonctionnalités supplémentaires de l'API Microsoft Graph pour améliorer les capacités de recherche de personnes et de groupes au sein du système d'autorisations et de partage.
| Key | Type | Description | Example |
|---|---|---|---|
| USE_ENTRA_ID_FOR_PEOPLE_SEARCH | boolean | Activer l'intégration de la recherche de personnes Entra ID dans le système de permissions/partage. Lorsqu'elle est activée, le sélecteur de personnes effectuera une recherche à la fois dans la base de données locale et dans Entra ID. | USE_ENTRA_ID_FOR_PEOPLE_SEARCH=false |
| ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS | boolean | Lorsqu'elle est activée, les propriétaires de groupes Entra ID seront considérés comme des membres du groupe. | ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=false |
| OPENID_GRAPH_SCOPES | string | Étendues de l'API Microsoft Graph nécessaires pour la recherche de personnes/groupes. Les étendues par défaut permettent d'accéder aux profils utilisateur et aux appartenances aux groupes. | OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All |
Prérequis importants
- Vous devez avoir Azure Entra ID configuré comme votre fournisseur OpenID - La réutilisation des jetons OpenID DOIT être activée (
OPENID_REUSE_TOKENS=true) - cette fonctionnalité ne fonctionnera pas sans cela - Votre enregistrement d'application Azure doit disposer des autorisations Microsoft Graph API appropriées - Pour la fonctionnalité de recherche de groupe, le consentement de l'administrateur peut être requis pour certaines étendues (scopes) de l'API Graph.
Intégration SharePoint
LibreChat prend en charge l'intégration directe avec SharePoint Online et OneDrive for Business, permettant aux utilisateurs de sélectionner et de joindre des fichiers depuis leurs bibliothèques SharePoint directement au sein des conversations. Cette fonctionnalité d'entreprise s'appuie sur l'authentification Azure Entra ID existante.
| Key | Type | Description | Example |
|---|---|---|---|
| ENABLE_SHAREPOINT_FILEPICKER | boolean | Activer le sélecteur de fichiers SharePoint dans les panneaux de chat et d'agent. Lorsqu'il est activé, ajoute l'option "Depuis SharePoint" dans le menu des pièces jointes. | ENABLE_SHAREPOINT_FILEPICKER=true |
| SHAREPOINT_BASE_URL | string | URL de base du tenant SharePoint. Requis lorsque l'intégration SharePoint est activée. | SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com |
| SHAREPOINT_PICKER_SHAREPOINT_SCOPE | string | Portée OAuth spécifique à SharePoint pour le sélecteur de fichiers. Utilisée pour l'authentification lors de l'ouverture de l'interface du sélecteur de fichiers SharePoint. | SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read |
| SHAREPOINT_PICKER_GRAPH_SCOPE | string | Portée de l'API Microsoft Graph pour les téléchargements de fichiers. Utilisée pour télécharger des fichiers depuis SharePoint après sélection. | SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All |
Exigences critiques
Tout ce qui suit doit être configuré pour que l'intégration SharePoint fonctionne :
- L'authentification Azure Entra ID doit être entièrement configurée
OPENID_REUSE_TOKENS=trueest obligatoire (utilise le flux de jeton on-behalf-of)OPENID_SCOPEdoit inclure la portée de l'API de votre application LibreChat, par exempleapi://<client-id>/access_as_userOPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=trueest requis lors de l'utilisation de cette portée app-audience avec Azure Entra ID- Votre inscription d'application Azure doit disposer des autorisations SharePoint et Graph API
- Votre enregistrement d'application Azure doit exposer la portée de l'API LibreChat utilisée dans
OPENID_SCOPE - Les quatre variables d'environnement SharePoint doivent être définies
- HTTPS est requis dans les environnements de production
Fonctionnalités
Lorsqu'elle est activée, les utilisateurs peuvent :
- Accéder aux fichiers depuis les bibliothèques de documents SharePoint et OneDrive for Business
- Sélectionner plusieurs fichiers à la fois (maximum par défaut : 10 fichiers)
- Voir la progression du téléchargement en temps réel
- Les fichiers sont téléchargés et joints à la conversation comme des téléversements classiques.
Pour des instructions détaillées sur la configuration de SharePoint, consultez : Guide d'intégration SharePoint
SAML
Pour plus d'informations :
Exclusion mutuelle d'OpenID et de SAML
Si OpenID est activé, l'authentification SAML sera automatiquement désactivée.
Une seule méthode d'authentification peut être active à la fois.
| Key | Type | Description | Example |
|---|---|---|---|
| SAML_ENTRY_POINT | string | L'URL du point d'entrée du fournisseur d'identité (IdP) SAML. | SAML_ENTRY_POINT= |
| SAML_ISSUER | string | L'identifiant d'entité du fournisseur de services (SP) SAML. | SAML_ISSUER= |
| SAML_CERT | string | Le certificat de signature SAML, fourni sous forme de chemin de fichier ou de chaîne PEM sur une seule ligne. | SAML_CERT= |
| SAML_CALLBACK_URL | string | L'URL de rappel pour l'authentification SAML. | SAML_CALLBACK_URL=/oauth/saml/callback |
| SAML_SESSION_SECRET | string | Le secret pour le stockage de session SAML. | SAML_SESSION_SECRET= |
| SAML_EMAIL_CLAIM | string | <Optional> : L'attribut dans l'assertion SAML contenant l'e-mail de l'utilisateur. (par défaut : email) | SAML_EMAIL_CLAIM= |
| SAML_USERNAME_CLAIM | string | <Optional> : L'attribut dans l'assertion SAML contenant le nom d'utilisateur. (par défaut : username) | SAML_USERNAME_CLAIM= |
| SAML_GIVEN_NAME_CLAIM | string | <Optional> : L'attribut dans l'assertion SAML contenant le prénom. (par défaut : given_name) | SAML_GIVEN_NAME_CLAIM= |
| SAML_FAMILY_NAME_CLAIM | string | <Optional> : L'attribut dans l'assertion SAML contenant le nom de famille. (par défaut : family_name) | SAML_FAMILY_NAME_CLAIM= |
| SAML_PICTURE_CLAIM | string | <Optional> : L'attribut dans l'assertion SAML contenant l'URL de la photo de profil. (par défaut : picture) | SAML_PICTURE_CLAIM= |
| SAML_NAME_CLAIM | string | <Optional> : L'attribut dans l'assertion SAML contenant le nom complet. | SAML_NAME_CLAIM= |
| SAML_BUTTON_LABEL | string | <Optional> : L'étiquette du bouton de connexion SAML. | SAML_BUTTON_LABEL= |
| SAML_IMAGE_URL | string | <Optional> : L'URL de l'image du bouton de connexion SAML. | SAML_IMAGE_URL= |
| SAML_USE_AUTHN_RESPONSE_SIGNED | boolean | <Optional> : Si "true", signe l'intégralité de la réponse SAML. Sinon, seule l'Assertion est signée (par défaut). | SAML_USE_AUTHN_RESPONSE_SIGNED= |
Authentification LDAP/AD
Pour plus d'informations : Authentification LDAP/AD
| Key | Type | Description | Example |
|---|---|---|---|
| LDAP_URL | string | URL du serveur LDAP. | LDAP_URL=ldap://localhost:389 |
| LDAP_BIND_DN | string | DN de liaison | LDAP_BIND_DN=cn=root |
| LDAP_BIND_CREDENTIALS | string | Mot de passe pour bindDN | LDAP_BIND_CREDENTIALS=password |
| LDAP_USER_SEARCH_BASE | string | Base de recherche d'utilisateurs LDAP | LDAP_USER_SEARCH_BASE=o=users,o=example.com |
| LDAP_SEARCH_FILTER | string | Filtre de recherche LDAP | LDAP_SEARCH_FILTER=mail={{username}} |
| LDAP_CA_CERT_PATH | string | Chemin du certificat CA. | LDAP_CA_CERT_PATH=/path/to/root_ca_cert.crt |
| LDAP_TLS_REJECT_UNAUTHORIZED | string | Vérification TLS LDAP | LDAP_TLS_REJECT_UNAUTHORIZED=true |
| LDAP_STARTTLS | string | Activez LDAP StartTLS pour mettre à niveau la connexion vers TLS. Définissez sur true pour activer cette fonctionnalité. | LDAP_STARTTLS=true |
| LDAP_LOGIN_USES_USERNAME | boolean | Utiliser le nom d'utilisateur au lieu de l'adresse e-mail pour la connexion LDAP. | # LDAP_LOGIN_USES_USERNAME=true |
| LDAP_ID | string | Attribut LDAP pour l'identifiant utilisateur unique. Par défaut : uid ou sAMAccountName, mail. | # LDAP_ID=uid |
| LDAP_USERNAME | string | Attribut LDAP pour le nom d'utilisateur. Par défaut : givenName ou mail. | # LDAP_USERNAME=givenName |
| LDAP_EMAIL | string | Attribut LDAP pour l'e-mail. Par défaut : mail. | # LDAP_EMAIL=userPrincipalName |
| LDAP_FULL_NAME | string | Attribut(s) LDAP pour le nom complet. Peut être séparé par des virgules. Par défaut : givenName + surname. | # LDAP_FULL_NAME=givenName,surname |
Réinitialisation du mot de passe
L'e-mail est utilisé pour la vérification de compte et la réinitialisation de mot de passe. LibreChat prend en charge à la fois l'API Mailgun et les services SMTP traditionnels. Voir : Configuration e-mail
Note importante : Vous devez configurer soit Mailgun (recommandé pour les serveurs qui bloquent le SMTP), soit le SMTP pour que les e-mails fonctionnent.
Attention : Si vous ne définissez pas de valeurs valides pour Mailgun ou SMTP, LibreChat utilisera la réinitialisation de mot de passe non sécurisée !
Configuration de Mailgun (Recommandé)
Mailgun est particulièrement utile pour les déploiements sur des serveurs qui bloquent les ports SMTP. Lorsque MAILGUN_API_KEY et MAILGUN_DOMAIN sont tous deux définis, LibreChat utilisera Mailgun au lieu du SMTP.
| Key | Type | Description | Example |
|---|---|---|---|
| MAILGUN_API_KEY | string | Votre clé API Mailgun (requise pour Mailgun). | MAILGUN_API_KEY= |
| MAILGUN_DOMAIN | string | Votre domaine Mailgun (requis pour Mailgun). | MAILGUN_DOMAIN=mg.yourdomain.com |
| MAILGUN_HOST | string | Hôte API Mailgun personnalisé (optionnel). Utilisez https://api.eu.mailgun.net pour la région UE. | MAILGUN_HOST=https://api.mailgun.net |
| EMAIL_FROM | string | Adresse e-mail de l'expéditeur. Requis. | [email protected] |
| EMAIL_FROM_NAME | string | Nom de l'expéditeur (par défaut APP_TITLE s'il n'est pas défini). | EMAIL_FROM_NAME= |
Configuration SMTP
Si Mailgun n'est pas configuré, LibreChat utilisera les paramètres SMTP par défaut.
Avertissement : Si vous utilisez
EMAIL_SERVICE, ne définissez PAS les paramètres de connexion étendus : HOST, PORT, ENCRYPTION, ENCRYPTION_HOSTNAME, ALLOW_SELFSIGNED.
Voir : nodemailer well-known-services
| Key | Type | Description | Example |
|---|---|---|---|
| EMAIL_SERVICE | string | Service de messagerie (par ex. Gmail, Outlook). | EMAIL_SERVICE= |
| EMAIL_HOST | string | Hôte du serveur de messagerie. | EMAIL_HOST= |
| EMAIL_PORT | number | Port du serveur de messagerie. | EMAIL_PORT=25 |
| EMAIL_ENCRYPTION | string | Méthode de chiffrement (starttls, tls, etc.). | EMAIL_ENCRYPTION= |
| EMAIL_ENCRYPTION_HOSTNAME | string | Nom d'hôte pour le chiffrement. | EMAIL_ENCRYPTION_HOSTNAME= |
| EMAIL_ALLOW_SELFSIGNED | boolean | Autoriser les certificats auto-signés. | EMAIL_ALLOW_SELFSIGNED= |
| EMAIL_USERNAME | string | Nom d'utilisateur pour l'authentification. | EMAIL_USERNAME= |
| EMAIL_PASSWORD | string | Mot de passe pour l'authentification. | EMAIL_PASSWORD= |
| EMAIL_FROM_NAME | string | Nom de l'expéditeur | EMAIL_FROM_NAME= |
| EMAIL_FROM | string | Adresse e-mail de l'expéditeur. Requis. | [email protected] |
CDN Firebase
Voir : Configuration du CDN Firebase
Important
- Si vous utilisez Firebase comme stratégie de stockage de fichiers, définissez
fileStrategyoufileStrategiessurfirebasedans votre fichier de configurationlibrechat.yaml. Pour plus d'informations sur la configuration du fichierlibrechat.yaml, veuillez consulter le Guide de configuration YAML : Custom Endpoints & Configuration
| Key | Type | Description | Example |
|---|---|---|---|
| FIREBASE_API_KEY | string | La clé API pour votre projet Firebase. | FIREBASE_API_KEY= |
| FIREBASE_AUTH_DOMAIN | string | Le domaine Firebase Auth pour votre projet. | FIREBASE_AUTH_DOMAIN= |
| FIREBASE_PROJECT_ID | string | L'ID de votre projet Firebase. | FIREBASE_PROJECT_ID= |
| FIREBASE_STORAGE_BUCKET | string | Le bucket Firebase Storage pour votre projet. | FIREBASE_STORAGE_BUCKET= |
| FIREBASE_MESSAGING_SENDER_ID | string | L'ID d'expéditeur Firebase Cloud Messaging. | FIREBASE_MESSAGING_SENDER_ID= |
| FIREBASE_APP_ID | string | L'ID d'application Firebase pour votre projet. | FIREBASE_APP_ID= |
Amazon S3 et CloudFront
Voir : Configuration Amazon S3 et CloudFront avec S3
Important
Si vous utilisez S3 comme stratégie de stockage de fichiers, définissez fileStrategy ou fileStrategies dans votre fichier de configuration librechat.yaml. Si vous utilisez CloudFront, S3 est toujours requis en tant qu'origine de stockage.
| Key | Type | Description | Example |
|---|---|---|---|
| AWS_ACCESS_KEY_ID | string | Votre ID de clé d'accès utilisateur IAM. Optionnel si vous utilisez IRSA. | AWS_ACCESS_KEY_ID=your_access_key_id |
| AWS_SECRET_ACCESS_KEY | string | Votre clé d'accès secrète utilisateur IAM. Optionnel si vous utilisez IRSA. | AWS_SECRET_ACCESS_KEY=your_secret_access_key |
| AWS_REGION | string | La région AWS où se trouve votre bucket S3. | AWS_REGION=us-east-1 |
| AWS_BUCKET_NAME | string | Le nom du bucket S3 pour le stockage de fichiers. | AWS_BUCKET_NAME=your_bucket_name |
| AWS_ENDPOINT_URL | string | URL de point de terminaison AWS personnalisé (optionnel). Pour les services compatibles S3. Incluez le schéma d'URL, tel que https://a7g8.da.idrivee2-32.com. | # AWS_ENDPOINT_URL=https://your_endpoint_url |
| AWS_FORCE_PATH_STYLE | boolean | Définir sur true pour les fournisseurs compatibles S3 qui nécessitent des URL de style chemin (par ex. MinIO, Hetzner, Backblaze B2). Non nécessaire pour AWS S3. Par défaut : false. | # AWS_FORCE_PATH_STYLE=false |
| CLOUDFRONT_KEY_PAIR_ID | string | ID de paire de clés publiques CloudFront. Requis pour les cookies signés et les URL de téléchargement CloudFront signées. | # CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC |
| CLOUDFRONT_PRIVATE_KEY | string | Clé privée PEM CloudFront. Requise pour les cookies signés et les URL de téléchargement CloudFront signées. Préservez les sauts de ligne PEM lors de l'injection de ce secret. | # CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" |
Note : Pour les déploiements Kubernetes (par exemple sur EKS), vous pouvez utiliser IRSA (IAM Roles for Service Accounts) au lieu de fournir des identifiants explicites. Dans ce cas, seuls
AWS_REGIONetAWS_BUCKET_NAMEsont requis.
Azure Blob Storage CDN
Voir : Configuration du CDN Azure Blob Storage
Important
Si vous utilisez Azure Blob Storage comme stratégie de stockage de fichiers, définissez fileStrategy ou fileStrategies sur azure_blob dans votre fichier de configuration librechat.yaml.
| Key | Type | Description | Example |
|---|---|---|---|
| AZURE_STORAGE_CONNECTION_STRING | string | Chaîne de connexion Azure Blob Storage. Utilisez ceci OU AZURE_STORAGE_ACCOUNT_NAME pour l'identité gérée (Managed Identity). | AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=... |
| AZURE_STORAGE_ACCOUNT_NAME | string | Nom du compte de stockage Azure. À utiliser pour l'authentification par identité gérée (ne pas définir de chaîne de connexion). | # AZURE_STORAGE_ACCOUNT_NAME=yourAccountName |
| AZURE_STORAGE_PUBLIC_ACCESS | boolean | Activer l'accès public pour les blobs. Par défaut : false. | AZURE_STORAGE_PUBLIC_ACCESS=false |
| AZURE_CONTAINER_NAME | string | Nom du conteneur pour le stockage de fichiers. Par défaut : files. | AZURE_CONTAINER_NAME=files |
Remarque : Utilisez soit
AZURE_STORAGE_CONNECTION_STRING(Option A), soitAZURE_STORAGE_ACCOUNT_NAMEavec Managed Identity (Option B), mais pas les deux.
Interface utilisateur
Bouton d'aide et FAQ
| Key | Type | Description | Example |
|---|---|---|---|
| HELP_AND_FAQ_URL | string | URL d'aide et de FAQ. S'il est vide ou commenté, le bouton est activé. Pour désactiver le bouton d'aide et de FAQ, définissez-le sur "/". | HELP_AND_FAQ_URL=https://librechat.ai |
Comportement :
Définit les en-têtes Cache-Control pour les fichiers statiques. Ces configurations ne se déclenchent que lorsque NODE_ENV est défini sur production.
La configuration appropriée des en-têtes de cache est cruciale pour optimiser les performances et l'efficacité de votre application web. En contrôlant la durée pendant laquelle les navigateurs et les CDN stockent des copies de vos fichiers statiques, vous pouvez réduire considérablement la charge du serveur, diminuer les temps de chargement des pages et améliorer l'expérience utilisateur globale.
- Décommentez
STATIC_CACHE_MAX_AGEpour modifier lemax-agedes fichiers statiques. Par défaut, cette valeur est définie sur 4 semaines. - Décommentez
STATIC_CACHE_S_MAX_AGEpour modifier les-maxagedes fichiers statiques. Par défaut, cette valeur est définie sur 1 semaine.- Ceci est destiné au shared cache, qui est utilisé par les CDN et les proxys.
Titre de l'application et pied de page
| Key | Type | Description | Example |
|---|---|---|---|
| APP_TITLE | string | Titre de l'application. | APP_TITLE=LibreChat |
| CUSTOM_FOOTER | string | Pied de page personnalisé. | # CUSTOM_FOOTER="My custom footer" |
| TEMP_CHAT_RETENTION_HOURS | number | **Obsolète :** Utilisez plutôt `interface.temporaryChatRetention` dans librechat.yaml. Nombre d'heures de conservation des conversations temporaires. Par défaut : 720 (30 jours). | # TEMP_CHAT_RETENTION_HOURS=168 |
Comportement :
- Décommentez
CUSTOM_FOOTERpour ajouter un pied de page personnalisé. - Décommentez et laissez
CUSTOM_FOOTERvide pour supprimer le pied de page. - You can now add one or more links in the CUSTOM_FOOTER value using the following format:
[Anchor text](URL). Each link should be delineated with a pipe (|).
Markdown example:
CUSTOM_FOOTER=[Link 1](http://example1.com) | [Link 2](http://example2.com)
Chapeau d'anniversaire
| Key | Type | Description | Example |
|---|---|---|---|
| SHOW_BIRTHDAY_ICON | boolean | Afficher l'icône de chapeau d'anniversaire. | # SHOW_BIRTHDAY_ICON=true |
Comportement :
- L'icône de chapeau d'anniversaire s'affichera automatiquement le 11 février (l'anniversaire de LibreChat).
- Définissez
SHOW_BIRTHDAY_ICONsurfalsepour désactiver le chapeau d'anniversaire. - Définissez
SHOW_BIRTHDAY_ICONsurtruepour activer le chapeau d'anniversaire en permanence.
Analytique
Google Tag Manager
LibreChat prend en charge Google Tag Manager pour l'analyse. Vous aurez besoin d'un identifiant Google Tag Manager pour l'activer dans LibreChat. Suivez ce guide pour générer un identifiant Google Tag Manager et configurer Google Analytics. Ensuite, définissez la variable d'environnement ANALYTICS_GTM_ID sur votre identifiant Google Tag Manager.
Note : Si ANALYTICS_GTM_ID n'est pas défini, Google Tag Manager ne sera pas activé. S'il est défini de manière incorrecte, vous verrez des requêtes échouées vers gtm.js.
| Key | Type | Description | Example |
|---|---|---|---|
| ANALYTICS_GTM_ID | string | ID de Google Tag Manager. | ANALYTICS_GTM_ID= |
Importation de conversations
Configurez les limites pour les importations de fichiers de conversation afin d'éviter les problèmes de mémoire.
| Key | Type | Description | Example |
|---|---|---|---|
| CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES | number | Taille maximale de fichier en octets pour les importations de conversation. Par défaut : 0 (aucune limite appliquée). Exemple : 262144000 (250 Mio). | # CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES=262144000 |
Aperçus de fichiers en ligne
Contrôlez la taille maximale des fichiers générés avant que LibreChat ne saute l'extraction de l'aperçu en ligne et ne les laisse disponibles uniquement en téléchargement.
| Key | Type | Description | Example |
|---|---|---|---|
| FILE_PREVIEW_MAX_EXTRACT_BYTES | number | Taille maximale du fichier source en octets pour les aperçus en ligne des artefacts d'exécution de code. Par défaut : 2097152 (2 Mio). Les aperçus HTML rendus sont toujours limités séparément, donc les fichiers très riches peuvent ne pas être prévisualisés même en dessous de cette valeur. | # FILE_PREVIEW_MAX_EXTRACT_BYTES=2097152 |
MCP (Model Context Protocol)
Configurez les paramètres du Model Context Protocol pour une gestion améliorée des serveurs et la prise en charge d'OAuth.
Configuration du serveur MCP
| Key | Type | Description | Example |
|---|---|---|---|
| MCP_OAUTH_ON_AUTH_ERROR | boolean | Traiter les réponses 401/403 comme une exigence OAuth lorsqu'aucune métadonnée OAuth n'est trouvée. | MCP_OAUTH_ON_AUTH_ERROR=true |
| MCP_OAUTH_DETECTION_TIMEOUT | number | Délai d'expiration pour les requêtes de détection OAuth en millisecondes. | MCP_OAUTH_DETECTION_TIMEOUT=5000 |
| MCP_OAUTH_HANDLING_TIMEOUT | number | Durée pendant laquelle LibreChat attend qu'un utilisateur termine un flux OAuth MCP avant l'expiration du délai. Par défaut : 600000 ms (10 minutes). | MCP_OAUTH_HANDLING_TIMEOUT=600000 |
| MCP_OAUTH_FLOW_TTL | number | Durée de conservation de l'état du flux OAuth MCP. LibreChat définit cette valeur au-dessus de MCP_OAUTH_HANDLING_TIMEOUT afin que les rappels proches de la date limite puissent toujours aboutir. Par défaut : 900000 ms (15 minutes). | MCP_OAUTH_FLOW_TTL=900000 |
| MCP_CONNECTION_CHECK_TTL | number | Mettre en cache les vérifications de l'état de la connexion pendant ce nombre de millisecondes pour éviter une vérification coûteuse. | MCP_CONNECTION_CHECK_TTL=30000 |
| MCP_TOOLS_LIST_MAX_PAGES | number | Nombre maximal d'outils/pages de liste à demander lorsqu'un serveur MCP pagine sa liste d'outils (pagination par curseur). Limite la boucle de pagination afin qu'un serveur défaillant ne puisse pas bloquer la découverte des outils. Plafonné à un minimum de 1. Valeur par défaut : 50. | MCP_TOOLS_LIST_MAX_PAGES=50 |
| MCP_SKIP_CODE_CHALLENGE_CHECK | boolean | Ignorer la validation de la méthode de défi de code. Lorsqu'il est défini sur true, force le défi de code S256 même s'il n'est pas annoncé dans .well-known/openid-configuration | MCP_SKIP_CODE_CHALLENGE_CHECK=false |
| MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES | number | Nombre maximal d'octets autorisés dans une réponse HTTP MCP diffusable non-GET avant son rejet. Définissez sur 0 pour désactiver. Par défaut : 16777216 (16 Mio). | # MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES=16777216 |
| MCP_STREAMABLE_HTTP_MAX_LINE_BYTES | number | Nombre maximal d'octets autorisés dans une ligne SSE pour les réponses HTTP MCP diffusables non-GET. Définir sur 0 pour désactiver. Par défaut : 5242880 (5 Mio). | # MCP_STREAMABLE_HTTP_MAX_LINE_BYTES=5242880 |
Autre
Redis
Redis offre des améliorations de performance significatives et permet des capacités de mise à l'échelle horizontale pour LibreChat.
Note : Le support de Redis est expérimental et vous pourriez rencontrer quelques problèmes lors de son utilisation.
Important : Si vous utilisez Redis, vous devez vider le cache après avoir modifié les paramètres de LibreChat.
Pour une configuration détaillée et des exemples, consultez : Guide de configuration Redis
| Key | Type | Description | Example |
|---|---|---|---|
| USE_REDIS | boolean | Activez Redis pour la mise en cache et le stockage de session. Lorsque cette option est définie sur true, REDIS_URI doit être fourni. | USE_REDIS=true |
| USE_REDIS_STREAMS | boolean | Activez Redis pour les flux LLM reprenables. Utilise la valeur USE_REDIS par défaut si non défini. Définissez sur false pour utiliser le stockage en mémoire pour les flux. | # USE_REDIS_STREAMS=true |
| REDIS_URI | string | URI de connexion Redis. Pour une instance unique : `redis://host:port`. Pour un cluster : URIs séparées par des virgules. | REDIS_URI=redis://127.0.0.1:6379 |
| USE_REDIS_CLUSTER | boolean | Activer le mode cluster Redis lors de l'utilisation d'une URI unique | # USE_REDIS_CLUSTER="true" |
| REDIS_CLUSTER_SAFE_DELETE | boolean | Supprimez les clés de cache Redis individuellement pour éviter les erreurs CROSSSLOT sur les services Redis gérés à point de terminaison unique qui fragmentent les clés en interne. | # REDIS_CLUSTER_SAFE_DELETE=true |
| REDIS_USERNAME | string | Nom d'utilisateur Redis pour l'authentification. Remplace le nom d'utilisateur dans l'URI si les deux sont fournis. | # REDIS_USERNAME=your_redis_username |
| REDIS_PASSWORD | string | Mot de passe Redis pour l'authentification. Remplace le mot de passe dans l'URI si les deux sont fournis. | # REDIS_PASSWORD=your_redis_password |
| REDIS_CA | string | Chemin d'accès au certificat CA pour la vérification TLS lors de l'utilisation du protocole rediss://. | # REDIS_CA=/path/to/ca-cert.pem |
| REDIS_KEY_PREFIX | string | Préfixe statique pour toutes les clés Redis afin d'éviter la contamination entre les déploiements. | # REDIS_KEY_PREFIX=librechat-prod-v2 |
| REDIS_KEY_PREFIX_VAR | string | Nom de la variable d'environnement contenant un préfixe dynamique (par exemple, K_REVISION pour Cloud Run). Ne peut pas être utilisé avec REDIS_KEY_PREFIX. | # REDIS_KEY_PREFIX_VAR=K_REVISION |
| REDIS_MAX_LISTENERS | number | Nombre maximal d'écouteurs d'événements par client Redis. Prévient les fuites de mémoire. Par défaut : 40. | # REDIS_MAX_LISTENERS=40 |
| REDIS_PING_INTERVAL | number | Intervalle de ping en secondes pour maintenir les connexions. Par défaut : 0 (désactivé). À définir uniquement en cas de délais d'attente. | # REDIS_PING_INTERVAL=300 |
| FORCED_IN_MEMORY_CACHE_NAMESPACES | string | Clés de cache séparées par des virgules pour forcer le stockage en mémoire même lorsque Redis est activé. | # FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES |
| REDIS_USE_ALTERNATIVE_DNS_LOOKUP | boolean | Activer le dnsLookup alternatif pour les connexions TLS avec AWS Elasticache. Requis pour les clusters Elasticache avec TLS. | # REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true |
Notes :
- Lorsque
USE_REDIS=true, vous devez fournirREDIS_URIou l'application générera une erreur. - Pour le mode Redis Cluster, fournissez plusieurs URI :
redis://node1:7001,redis://node2:7002,redis://node3:7003(le mode cluster est détecté automatiquement). - Pour les services Redis gérés à point de terminaison unique qui partitionnent les clés en interne, gardez
USE_REDIS_CLUSTER=falseet définissezREDIS_CLUSTER_SAFE_DELETE=truesi les effacements de cache échouent avec des erreursCROSSSLOT. - Utilisez le protocole
rediss://pour les connexions TLS et définissezREDIS_CAsi votre autorité de certification (CA) n'est pas publiquement approuvée. REDIS_KEY_PREFIX_VARetREDIS_KEY_PREFIXsont mutuellement exclusifs.- AWS Elasticache avec TLS : Elasticache peut nécessiter l'utilisation d'un dnsLookup alternatif pour les connexions TLS. Définissez
REDIS_USE_ALTERNATIVE_DNS_LOOKUP=truesi vous utilisez Elasticache avec TLS. Consultez la documentation ioredis pour plus de détails.
Élection du leader
Configurez l'élection de leader distribuée pour les déploiements multi-instances avec Redis. L'élection de leader garantit qu'une seule instance effectue certaines opérations, comme les tâches planifiées.
| Key | Type | Description | Example |
|---|---|---|---|
| LEADER_LEASE_DURATION | number | Durée en secondes pendant laquelle le bail du leader est valide avant expiration. Par défaut : 25. | LEADER_LEASE_DURATION=25 |
| LEADER_RENEW_INTERVAL | number | Intervalle en secondes auquel le leader renouvelle son bail. Par défaut : 10. | LEADER_RENEW_INTERVAL=10 |
| LEADER_RENEW_ATTEMPTS | number | Nombre maximal de tentatives de réessai en cas d'échec du renouvellement du bail. Par défaut : 3. | LEADER_RENEW_ATTEMPTS=3 |
| LEADER_RENEW_RETRY_DELAY | number | Délai en secondes entre les tentatives de nouvelle tentative lors du renouvellement du bail. Par défaut : 0.5. | LEADER_RENEW_RETRY_DELAY=0.5 |
Notes :
- L'élection du leader nécessite que Redis soit activé (
USE_REDIS=true). - Ces paramètres ne sont pertinents que pour les déploiements multi-instances.
- Le bail du leader doit être renouvelé avant son expiration pour maintenir le leadership.
- Si le renouvellement du bail échoue après le nombre maximal de tentatives, l'instance abandonnera son rôle de leader.
Que pensez-vous de ce guide ?