Guide de déploiement

Comment héberger LibreChat sur un VPS

Déployer sur un VPS Cloud →

Tutoriel

Comment héberger LibreChat sur un VPS

Intelligence Artificielle11 min de lecture18 étapes

LibreChat reproduit l'expérience de ChatGPT en open source, mais va bien plus loin : une interface unifiée pour OpenAI, Anthropic Claude, Google Gemini, des modèles locaux via Ollama, et bien d'autres fournisseurs, le tout derrière une même UI soignée. Hébergé sur votre propre VPS, il offre à votre équipe un assistant conversationnel privé, multi-utilisateurs, avec historique, presets, RAG sur vos documents et gestion fine des accès — sans que vos conversations ne transitent par les serveurs des fournisseurs. Fini les 20 $/mois par employé pour ChatGPT Plus : une seule clé API partagée, tous les modèles disponibles, et vos données restent dans votre MongoDB. Ce guide couvre l'installation complète avec Docker Compose, la configuration multi-fournisseurs dans `librechat.yaml`, l'ajout d'Ollama pour les modèles sans coût API, la gestion des utilisateurs et de l'authentification, ainsi que la mise en place du reverse proxy nginx avec HTTPS.

Sommaire· Pourquoi héberger LibreChat plutôt que d'utiliser ChatGPT Plus1/15
  1. 01Pourquoi héberger LibreChat plutôt que d'utiliser ChatGPT Plus
  2. 02ChatGPT Plus vs LibreChat self-hosted
  3. 03Prérequis serveur
  4. 04Installer LibreChat avec Docker Compose
  5. 05Configurer plusieurs fournisseurs LLM dans librechat.yaml
  6. 06Ajouter OpenAI, Anthropic et un endpoint custom dans librechat.yaml
  7. 07Ajouter Ollama pour les modèles locaux (sans coût API)
  8. 08Déployer Ollama en service Docker et le connecter à LibreChat
  9. 09Authentification et gestion des utilisateurs
  10. 10Options d'authentification disponibles
  11. 11RAG avec les fichiers : interroger vos documents PDF
  12. 12Configurer nginx comme reverse proxy avec HTTPS
  13. 13Maîtriser les coûts LLM avec LibreChat
  14. 14LibreChat ou AnythingLLM : lequel choisir ?
  15. 15Déploiement zéro-cloud : 100 % local

Pourquoi héberger LibreChat plutôt que d'utiliser ChatGPT Plus

ChatGPT Plus coûte 20 $/mois par personne, ne permet pas de partager une clé API, envoie chaque message aux serveurs d'OpenAI, et vous enferme dans une interface unique. LibreChat self-hosted inverse ce rapport : vous payez les tokens que vous consommez auprès des fournisseurs que vous choisissez, vos conversations restent dans votre MongoDB, et vous pouvez servir dix ou cent collaborateurs depuis un seul VPS à moins de 15 $/mois. Les clés API sont centralisées côté serveur — vos utilisateurs ne les voient jamais. Vous choisissez quels modèles apparaissent dans l'interface, vous pouvez désactiver certains endpoints pour certains rôles, et vous conservez un log complet des échanges pour audit ou conformité. Pour les organisations soucieuses de la confidentialité des données — cabinets juridiques, équipes RH, startups en mode stealth —, c'est la seule solution qui donne une garantie réelle sur le chemin que prennent les données.

ChatGPT Plus vs LibreChat self-hosted

Faites défiler le tableau

CritèreChatGPT PlusLibreChat self-hosted
Prix par utilisateur20 $/moisPartagé — coût VPS divisé par N
Modèles disponiblesGPT-4o, o1 (OpenAI uniquement)OpenAI, Anthropic, Google, Ollama, Groq…
Données des conversationsStockées chez OpenAIStockées dans votre MongoDB
Clés APIGérées par OpenAILes vôtres, jamais exposées aux utilisateurs
Historique des conversationsChez OpenAI, exportableDans votre base, sauvegardable librement
RAG sur vos fichiersLimité (My Files)Configurable avec votre propre vectorstore
Personnalisation de l'interfaceNulleComplète (presets, modèles visibles, rôles)
Conformité / auditDépend des conditions OpenAISous votre contrôle total

Prérequis serveur

LibreChat repose sur plusieurs services simultanés : l'application principale (Node.js), MongoDB pour les conversations et utilisateurs, Meilisearch pour la recherche dans l'historique, et optionnellement l'API RAG pour interroger des documents. Pour une équipe de 5 à 20 personnes utilisant des API cloud (OpenAI, Anthropic), un VPS 2 vCPU 4 Go RAM suffit — soit environ 10 à 15 $/mois chez ServOrbit. Si vous activez Ollama sur le même serveur pour des modèles locaux, montez à 4 vCPU 8 Go RAM minimum, davantage si vous ciblez des modèles de 13B de paramètres ou plus. Prévoyez 20 Go de disque pour MongoDB, les index Meilisearch et les images Docker. Côté logiciel : Docker Engine 24+ et Docker Compose v2, Git, un sous-domaine pointant vers votre VPS (ex. chat.votre-domaine.com) et le port 443 ouvert dans votre pare-feu.

Installer LibreChat avec Docker Compose

  1. Cloner le dépôt officiel

    Connectez-vous en SSH à votre VPS et clonez le dépôt : git clone https://github.com/danny-avila/LibreChat && cd LibreChat. Le dépôt contient déjà un docker-compose.yml complet qui orchestre l'app, MongoDB et Meilisearch. Copiez le fichier d'environnement exemple : cp .env.example .env.

  2. Configurer le fichier .env

    Ouvrez .env et renseignez les variables essentielles. Générez d'abord deux secrets aléatoires : openssl rand -hex 32 deux fois pour JWT_SECRET et CREDS_KEY. Ajoutez vos clés API : OPENAI_API_KEY=sk-... et/ou ANTHROPIC_API_KEY=sk-ant-.... Pour fermer l'inscription publique et ne créer les comptes que manuellement, posez ALLOW_REGISTRATION=false. Pour restreindre à des domaines email spécifiques, ajoutez ALLOWED_DOMAINS=votre-entreprise.com. Définissez également DOMAIN=https://chat.votre-domaine.com.

  3. Lancer la stack

    Démarrez tous les services en mode détaché : docker compose up -d. Au premier lancement, Docker télécharge les images (~1-2 Go) puis démarre les conteneurs. Vérifiez que tout est sain : docker compose ps — tous les services doivent afficher running (healthy). L'application écoute sur localhost:3080. Les logs en temps réel sont accessibles via docker compose logs -f app.

  4. Créer le premier compte administrateur

    Ouvrez http://localhost:3080 dans un navigateur ou via un tunnel SSH. Cliquez sur « Create an account » et inscrivez-vous avec votre adresse email professionnelle. Si ALLOW_REGISTRATION=false est posé, ce premier compte devra être créé en activant temporairement l'inscription (ALLOW_REGISTRATION=true), puis re-verrouiller après. Une fois connecté, rendez-vous dans le panneau d'administration pour promouvoir votre compte en admin.

  5. Vérifier la connectivité aux LLM

    Dans l'interface, sélectionnez le modèle gpt-4o (ou claude-3-5-sonnet) et envoyez un message test. Si la réponse arrive correctement, votre clé API est bien reconnue. En cas d'erreur 401, vérifiez la valeur dans .env puis relancez : docker compose restart app.

Configurer plusieurs fournisseurs LLM dans librechat.yaml

Le fichier librechat.yaml est le cœur de la configuration multi-fournisseurs. Il permet d'activer ou désactiver des endpoints, de nommer les modèles affichés aux utilisateurs, de définir des paramètres par défaut (température, max tokens) et de contrôler l'accès par rôle. À la racine du projet, copiez le modèle : cp librechat.example.yaml librechat.yaml. Les fournisseurs officiellement supportés (OpenAI, Anthropic, Google, Azure OpenAI) ont une section dédiée sous endpoints. Pour les fournisseurs tiers ou Ollama, utilisez la section custom.

Ajouter OpenAI, Anthropic et un endpoint custom dans librechat.yaml

  1. Activer l'endpoint OpenAI

    Sous la clé endpoints.openAI, posez enabled: true et listez les modèles à exposer : models: { default: [gpt-4o, gpt-4o-mini, o1-mini], fetch: false }. Le champ fetch: false évite un appel API au démarrage pour récupérer la liste dynamique — préférable si vous voulez contrôler exactement ce que voient vos utilisateurs.

  2. Activer l'endpoint Anthropic

    Sous endpoints.anthropic, posez enabled: true et listez : models: { default: [claude-3-5-sonnet-20241022, claude-3-haiku-20240307] }. La variable ANTHROPIC_API_KEY définie dans .env est automatiquement utilisée. Vous pouvez aussi définir titleConvo: true pour que LibreChat génère automatiquement un titre de conversation via Claude.

  3. Ajouter Google Gemini

    Sous endpoints.google, posez enabled: true et renseignez GOOGLE_KEY dans .env avec votre clé d'API Google AI Studio. Listez les modèles : gemini-1.5-pro, gemini-1.5-flash. Gemini supporte aussi les appels avec vision (images en entrée).

  4. Déclarer Groq comme endpoint custom

    Les fournisseurs compatibles OpenAI (Groq, Together AI, Perplexity…) se déclarent sous endpoints.custom. Exemple pour Groq : name: Groq, apiKey: ${GROQ_API_KEY}, baseURL: https://api.groq.com/openai/v1, models: { default: [llama-3.1-70b-versatile, mixtral-8x7b-32768] }. Ajoutez GROQ_API_KEY=gsk_... dans .env, puis redémarrez l'app.

  5. Appliquer la configuration

    Après chaque modification de librechat.yaml, redémarrez uniquement le service app : docker compose restart app. Vérifiez dans l'interface que les nouveaux endpoints apparaissent dans le sélecteur de modèle. En cas d'erreur de parsing YAML, docker compose logs app l'indiquera au démarrage.

Ajouter Ollama pour les modèles locaux (sans coût API)

Ollama permet de faire tourner des modèles open source (Llama 3, Mistral, Gemma, Phi-3…) directement sur votre VPS, sans clé API et sans que les données quittent le serveur. C'est la solution idéale pour les conversations sensibles ou pour réduire les coûts sur les requêtes à faible valeur. Sur un VPS 4 vCPU 8 Go RAM, les modèles de 3B à 7B de paramètres répondent en quelques secondes ; les modèles 13B sont utilisables mais plus lents. Pour de la production, un VPS avec GPU (ou un dédié Hetzner AX41) change radicalement la donne.

Déployer Ollama en service Docker et le connecter à LibreChat

  1. Ajouter le service Ollama au docker-compose.yml

    Ouvrez votre docker-compose.override.yml (créez-le s'il n'existe pas) et ajoutez : services: ollama: image: ollama/ollama:latest, volumes: [ollama:/root/.ollama], ports: ["11434:11434"]. Redémarrez la stack : docker compose up -d ollama. Ollama expose une API REST compatible avec l'API OpenAI sur le port 11434.

  2. Télécharger un modèle

    Une fois le conteneur Ollama lancé, téléchargez un modèle : docker compose exec ollama ollama pull llama3.2:3b pour Llama 3.2 3B (léger, ~2 Go), ou ollama pull mistral:7b pour Mistral 7B (~4 Go). Listez les modèles disponibles : docker compose exec ollama ollama list.

  3. Configurer l'endpoint Ollama dans librechat.yaml

    Dans librechat.yaml, sous endpoints.custom, ajoutez : name: Ollama, apiKey: ollama, baseURL: http://ollama:11434/v1 (le nom de service Docker), models: { default: [llama3.2:3b, mistral:7b] }, titleConvo: true, titleModel: llama3.2:3b. Le nom de service ollama est résolu automatiquement par le réseau Docker interne.

  4. Tester la réponse locale

    Dans l'interface LibreChat, sélectionnez l'endpoint « Ollama » et le modèle llama3.2:3b. Envoyez un message. La réponse est générée entièrement sur votre VPS, sans aucun appel réseau externe. Notez que la vitesse dépend du CPU disponible : sur un VPS 4 vCPU, comptez 5 à 15 secondes pour les premières réponses.

Authentification et gestion des utilisateurs

LibreChat propose plusieurs niveaux d'authentification, de l'inscription locale simple jusqu'à l'intégration OAuth2 avec votre fournisseur d'identité. Pour une équipe, la combinaison idéale est souvent : inscription fermée (ALLOW_REGISTRATION=false), comptes créés par l'admin, et optionnellement un SSO via GitHub, Google ou un provider OIDC maison (Authentik, Keycloak).

Options d'authentification disponibles

  • Locale (email / mot de passe) : par défaut, fonctionne sans configuration supplémentaire.
  • OAuth2 GitHub : GITHUB_CLIENT_ID + GITHUB_CLIENT_SECRET dans .env, puis activer sous endpoints.social.github dans librechat.yaml.
  • OAuth2 Google : GOOGLE_CLIENT_ID + GOOGLE_CLIENT_SECRET, même principe.
  • OIDC générique : compatible Authentik, Keycloak, Auth0 — définir OPENID_CLIENT_ID, OPENID_CLIENT_SECRET, OPENID_ISSUER et OPENID_SCOPE dans .env.
  • Restriction par domaine email : ALLOWED_DOMAINS=votre-entreprise.com dans .env — seules les adresses de ce domaine peuvent s'inscrire.
  • Désactivation de l'inscription publique : ALLOW_REGISTRATION=false — seul l'admin peut créer des comptes via le panneau d'administration.
  • Rôles : chaque compte est user ou admin ; les admins accèdent au panneau de gestion des utilisateurs et peuvent modifier les endpoints disponibles par utilisateur.

RAG avec les fichiers : interroger vos documents PDF

LibreChat intègre un service RAG (Retrieval-Augmented Generation) optionnel qui permet aux utilisateurs d'uploader des PDFs, des fichiers texte ou des pages web, et d'interroger leur contenu dans les conversations. Pour l'activer, ajoutez dans .env : RAG_API_URL=http://rag_api:8000. Le service rag_api est déjà présent dans le docker-compose.override.yml officiel : lancez-le avec docker compose --profile rag up -d. LibreChat se connecte au vectorstore (ChromaDB par défaut) pour indexer les documents uploadés. Un VPS 4 Go RAM suffit pour des collections modestes (< 500 documents) ; montez à 8 Go pour de gros corpus. Note : le service RAG est CPU-intensif lors de l'indexation mais léger à l'inférence.

Configurer nginx comme reverse proxy avec HTTPS

  1. Créer le vhost nginx

    Sur le serveur, créez /etc/nginx/sites-available/librechat avec le contenu suivant : server { listen 80; server_name chat.votre-domaine.com; location / { proxy_pass http://localhost:3080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_read_timeout 300s; } }. Le proxy_read_timeout 300s est essentiel pour ne pas couper les réponses LLM longues en streaming. Activez le site : ln -s /etc/nginx/sites-available/librechat /etc/nginx/sites-enabled/ && nginx -t && systemctl reload nginx.

  2. Obtenir un certificat Let's Encrypt avec Certbot

    Installez Certbot si nécessaire (apt install certbot python3-certbot-nginx), puis obtenez le certificat : certbot --nginx -d chat.votre-domaine.com. Certbot modifie automatiquement le vhost pour rediriger HTTP → HTTPS et configure le renouvellement automatique. Vérifiez le renouvellement : certbot renew --dry-run.

  3. Vérifier WebSocket et streaming

    Ouvrez https://chat.votre-domaine.com, connectez-vous et envoyez un message. Vérifiez dans les DevTools (onglet Network) que la connexion passe bien par WebSocket (101 Switching Protocols). Si les réponses s'affichent d'un coup au lieu de streamer, c'est souvent un proxy intermédiaire (Cloudflare) qui tamponne : activez « Disable buffering » dans votre configuration Cloudflare ou augmentez le proxy_buffering off dans nginx.

  4. Activer les mises à jour automatiques (optionnel)

    Pour maintenir LibreChat à jour sans intervention manuelle, créez un cron hebdomadaire : docker compose pull && docker compose up -d --remove-orphans. Notez que les mises à jour majeures peuvent modifier le schéma MongoDB — lisez toujours le CHANGELOG avant de mettre à jour en production.

Maîtriser les coûts LLM avec LibreChat

LibreChat ne facture pas les tokens à votre place — vous payez directement les fournisseurs API avec vos propres clés. Mais self-héberger sans surveiller les coûts peut mener à des surprises. Quelques bonnes pratiques : définissez des limites de tokens par requête (maxContextTokens dans librechat.yaml) pour les modèles coûteux comme GPT-4o ou Claude 3.5 Sonnet ; proposez gpt-4o-mini ou claude-3-haiku comme modèles par défaut pour les utilisateurs moins exigeants ; activez Ollama pour les requêtes à faible enjeu (brouillons, résumés, reformulations) — coût réel : 0 €. Surveillez vos quotas directement dans les dashboards OpenAI et Anthropic, et posez des budget alerts. Pour une équipe de 10 personnes, un budget mixte (GPT-4o pour les cas sérieux + Ollama llama3.2 pour le quotidien) coûte généralement entre 20 et 80 $/mois en tokens, à comparer aux 200 $/mois de 10 abonnements ChatGPT Plus.

LibreChat ou AnythingLLM : lequel choisir ?

Faites défiler le tableau

CritèreLibreChatAnythingLLM
Vocation principaleInterface de chat multi-fournisseursMoteur RAG sur documents
Multi-modèles dans une UIExcellent (OpenAI, Anthropic, Google, local)Bon, mais centré sur un provider par workspace
RAG sur documentsModule additionnel configurableCœur du produit, prêt à l'emploi
Gestion multi-utilisateursComptes et rôles natifsMode multi-user et espaces cloisonnés
Architecture de déploiementStack multi-conteneurs (Mongo, Meili, RAG)Conteneur unique + base vectorielle
Stockage des donnéesMongoDB auto-hébergéVolume storage + LanceDB/Qdrant
Cas d'usage idéalAssistant conversationnel d'équipeBase de connaissances interrogeable
Empreinte ressourcesPlus lourde (plusieurs services)Plus légère au démarrage

Déploiement zéro-cloud : 100 % local

Pour un déploiement entièrement hors-cloud, combinez LibreChat avec Ollama sur le même VPS et désactivez tous les endpoints cloud dans librechat.yaml. Aucune donnée ne quittera jamais le serveur. Ajoutez ALLOW_REGISTRATION=false et un SSO OIDC interne (Authentik) pour boucler le périmètre de sécurité. Cette architecture est particulièrement adaptée aux cabinets d'avocats, aux équipes médicales ou à tout contexte soumis au RGPD où les données ne peuvent pas transiter par des tiers américains. Le coût total se réduit alors au seul VPS — entre 10 et 25 $/mois selon la puissance choisie chez ServOrbit.

Installer LibreChat sur un VPS ServOrbit en un clic

LibreChat est disponible dans le Marketplace ServOrbit. Commandez un VPS Cloud et l'interface multi-modèles s'installe automatiquement, MongoDB inclus.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet