Dans cet article tu vas apprendre à déployer Librechat sur Kubernetes et à configurer des fournisseurs de LLM cloud ainsi que des fournisseurs personnalisés.
Structure de la configuration Librechat
Librechat est distribué sous forme de conteneur disponible sur son dépôt github.
Pour le faire tourner, tu as deux options :
- docker compose : c’est la cible de déploiement principale
- kubernetes via un chart helm : maintenu dans le dépôt github.
Historiquement, Librechat se configurait via un fichier .env où tu peux définir une liste prédéfinie de variables d’environnement.
Avec l’augmentation constante du nombre d’options, un fichier de configuration additionnel au format yaml a été ajouté ici
Architecture
Choisir ton fournisseur de LLM
Ces deux fournisseurs proposent un plan gratuit sans avoir à renseigner ta carte bancaire
OpenRouter
Tu peux sélectionner la liste des modèles gratuits en ne prenant que les modèles gratuits
La config openrouter devrait ressembler à ça
1 endpoints:
2 custom:
3 - name: "OpenRouter"
4 # For `apiKey` and `baseURL`, you can use environment variables that you define.
5 # recommended environment variables:
6 apiKey: "{{ requiredEnv "OPENROUTER_API_KEY" }}"
7 baseURL: "https://openrouter.ai/api/v1"
8 models:
9 default: ["deepseek/deepseek-r1-0528:free", "mistralai/devstral-small-2505:free", 'qwen/qwen3-235b-a22b:free', 'nvidia/llama-3.3-nemotron-super-49b-v1:free', 'meta-llama/llama-4-maverick:free']
10 fetch: false
11 titleConvo: true
12 titleModel: "meta-llama/llama-3-70b-instruct"
13 # Recommended: Drop the stop parameter from the request as Openrouter models use a variety of stop tokens.
14 dropParams: ["stop"]
15 modelDisplayLabel: "OpenRouter"
N’oublie pas de créer une clé API
Mistral AI
Mistral AI est une entreprise française d’IA qui propose elle aussi un plan gratuit très intéressant (quelque chose comme 1 milliard de tokens, ce qui est largement suffisant pour un utilisateur unique ou pour des tests)
Jette un œil à la console API Mistral et crée un compte.
La config mistral devrait ressembler à ça :
1 - name: "Mistral"
2 apiKey: "${MISTRAL_API_KEY}"
3 baseURL: "https://api.mistral.ai/v1"
4 models:
5 default: ["mistral-tiny", "mistral-small", "mistral-medium", "mistral -large-latest"]
6 fetch: true
7 titleConvo: true
8 titleModel: "mistral-tiny"
9 modelDisplayLabel: "Mistral"
10 dropParams: ["stop", "user", "frequency_penalty", "presence_penalty"]
Utiliser un fournisseur local
Ce cas d’usage nécessite un composant additionnel afin de fournir un point d’entrée unique comme portkey ou LiteLLM. Personnellement j’utilise LiteLLM qui est plus simple à configurer.
Moteur d’inférence
Selon ton infrastructure GPU locale et le nombre d’utilisateurs, il existe une multitude de moteurs d’inférence utilisables.
Ollama
Pour un très petit nombre d’utilisateurs, Ollama est un bon choix pour un premier essai car il propose une longue liste de modèles supportés. L’inconvénient est qu’il est prévu pour tourner sur des petites cartes GPU, donc les modèles sont généralement fortement quantifiés pour tenir sur du matériel grand public. Ils sont généralement assez lents à répondre et sont prévus pour être utilisés par très peu d’utilisateurs.
VLLM
VLLM est en fait le moteur d’inférence le plus connu, car il supporte quasiment tous les modèles et offre un bon batching pour les cas d’usage multi-utilisateurs.
Authentification
Comme j’utilise déjà une instance keycloak avec Cisco Duo (regarde mes anciens articles à ce sujet), j’utilise l’implémentation OpenID Connect sur Librechat.
Enrichir Librechat avec RAG, MCP Server….
Et il y a encore plus de fonctionnalités, comme le RAG (uploader des fichiers pdf pour enrichir les modèles avec tes propres fichiers), la génération d’images, les Agents, les serveurs MCP….
N’hésite pas à me contacter si tu as besoin d’aide :-)

