[{"data":1,"prerenderedAt":187},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-privategpt-vps-ma-fr":6,"promo-bar-likely":186},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-heberger-privategpt-vps-ma-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":34,"sections":35,"ctaTitle":128,"ctaBody":129,"ctaButton":130,"ctaUrl":131,"relatedPosts":132},16,"heberger-privategpt-vps",{"fr":10,"en":12,"ar":13,"es":14},"how-to-host-privategpt-on-a-vps","كيفية-استضافة-privategpt-على-خادم-vps","como-alojar-privategpt-en-un-vps","Comment héberger PrivateGPT sur un VPS","Déployez PrivateGPT sur un VPS pour interroger vos documents confidentiels avec une IA RAG 100% hors-ligne, sans fuite de données.",9,1,false,"2026-06-04T00:00:00+00:00","2026-11-08T01:13:12+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},"Intelligence Artificielle","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[28],{"id":18,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-privategpt-vps-poster.svg",{"categorySlug":26,"appSlug":33},"private-gpt","PrivateGPT permet de poser des questions à vos propres documents (PDF, Word, e-mails) via une IA, sans qu'aucune donnée ne quitte votre infrastructure. C'est une solution RAG pensée pour la confidentialité absolue. L'héberger sur un VPS vous offre un assistant documentaire privé et accessible à distance.",[36,40,50,53,85,88,97,119,122,125],{"type":37,"title":38,"body":39},"h2","Pourquoi self-héberger PrivateGPT sur un VPS","PrivateGPT est conçu autour du RAG (Retrieval-Augmented Generation) : il ingère vos documents, les découpe en fragments, calcule des embeddings stockés dans une base vectorielle (Qdrant par défaut, en mode disque local), puis répond aux questions en s'appuyant sur ce corpus et en citant les passages utilisés. Depuis la version 1.0, publiée en juin 2026, PrivateGPT ne fait plus tourner les modèles lui-même : il se branche sur un serveur d'inférence compatible OpenAI (Ollama, llama.cpp ou vLLM) que vous installez à côté, sur le même VPS. Le LLM, les embeddings et l'index restent ainsi sur votre machine, aucune requête ne part vers un fournisseur d'IA.\n\nSur un VPS dédié, vous obtenez un assistant documentaire d'entreprise isolé du poste de chacun, avec une base de connaissances centralisée que toute l'équipe interroge, sans jamais exposer des contrats, dossiers RH ou documents juridiques à un service cloud. L'enjeu est aussi juridique : coller un document contenant des données personnelles dans une API d'IA hébergée fait de ce fournisseur un sous-traitant au sens du RGPD, dont le traitement doit être encadré par un contrat (\u003Ca href=\"https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FFR\u002FTXT\u002F?uri=CELEX:32016R0679\">article 28, paragraphe 3\u003C\u002Fa>). Un traitement qui reste sur votre propre serveur n'ajoute pas ce maillon.",{"type":41,"title":42,"items":43},"ul","Bénéfices concrets de l'auto-hébergement",[44,45,46,47,48,49],"Confidentialité totale : documents, embeddings et index Qdrant ne quittent jamais le VPS","Réponses sourcées : chaque réponse s'appuie sur les passages retrouvés dans vos fichiers, pas sur la mémoire générale du modèle","Aucun coût d'API si le modèle tourne localement via Ollama ou llama.cpp","Ingestion de PDF, DOCX, PPTX, EPUB, CSV, Markdown, archives e-mail `.mbox` et même images ou audio, rangés par collections","API de type Messages (calquée sur la spécification de l'API d'Anthropic) pour brancher PrivateGPT dans vos outils internes","Conformité facilitée pour les données sensibles (RGPD, secret professionnel) : pas de sous-traitant IA supplémentaire",{"type":37,"title":51,"body":52},"PrivateGPT et Ollama : deux rôles complémentaires","On confond souvent les deux outils, alors qu'ils occupent deux étages différents de la pile. \u003Ca href=\"\u002Fblog\u002Fheberger-ollama-vps\">Ollama\u003C\u002Fa> est un **serveur de modèles** : il télécharge des LLM et des modèles d'embeddings, les charge en mémoire et expose une API sur le port `11434`. Il ne sait rien de vos fichiers : il répond à partir du contexte qu'on lui envoie.\n\nPrivateGPT (dépôt \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzylon-ai\u002Fprivate-gpt\">zylon-ai\u002Fprivate-gpt\u003C\u002Fa>, licence Apache-2.0) est la **couche applicative RAG** : il indexe vos documents, retrouve les passages pertinents à chaque question et les injecte dans le contexte envoyé à Ollama. En 1.0, il ne fonctionne donc jamais seul : sans serveur d'inférence joignable, il démarre sans aucun modèle.",{"type":54,"title":55,"headers":56,"rows":60},"comparison","PrivateGPT vs Ollama : qui fait quoi",[57,58,59],"Critère","PrivateGPT 1.0","Ollama",[61,65,69,73,77,81],[62,63,64],"Rôle","Application RAG : ingestion, recherche, réponses citées","Serveur d'inférence : charge et exécute les modèles",[66,67,68],"Exécute le modèle","Non : délègue à un serveur compatible OpenAI","Oui, sur CPU ou GPU",[70,71,72],"Lecture de vos fichiers","Oui : PDF, DOCX, CSV, `.mbox`… par collections","Non : contexte fourni à la main",[74,75,76],"Base vectorielle","Qdrant (disque local par défaut)","Aucune",[78,79,80],"Interface","Workbench sur `\u002Fui`, sans contrôle d'accès","API REST, pas d'interface web côté serveur",[82,83,84],"Port par défaut","`8080`","`11434`, lié à `127.0.0.1`",{"type":37,"title":86,"body":87},"Prérequis matériels et logiciels","La mémoire se dimensionne sur le modèle servi par Ollama, pas sur PrivateGPT lui-même. Les modèles proposés par défaut dans la documentation visent une machine à GPU (`qwen3.5:35b`, environ 24 Go à télécharger) : sur un VPS CPU, choisissez une variante plus légère de la même famille, `qwen3.5:4b` (3,3 à 4 Go) ou `qwen3.5:9b` (6,6 à 7,6 Go), plus `mxbai-embed-large` (environ 670 Mo) pour les embeddings. Comptez 8 Go de RAM pour la variante 4b et 16 Go pour la 9b, afin de laisser de la place au système, à Qdrant et aux documents en cours d'ingestion, et au moins 4 vCPU : sur CPU, c'est le nombre de cœurs qui fixe la vitesse de génération.\n\nPrévoyez 30 Go de disque, idéalement en NVMe, pour les modèles, l'index Qdrant et les documents ingérés : l'ingestion d'un gros PDF lit et écrit beaucoup. Côté logiciel : Docker (ou Python 3.11 et `uv` si vous installez le paquet hors conteneur), Ollama, et un domaine pointant vers le VPS pour exposer l'interface derrière un reverse proxy.",{"type":41,"title":89,"items":90},"Liste de contrôle avant l'installation",[91,92,93,94,95,96],"VPS avec **8 Go de RAM minimum** (16 Go pour un modèle de 9 milliards de paramètres) et 4 vCPU","Debian 12 ou Ubuntu 24.04 à jour, accès SSH avec `sudo`","Docker installé (`docker version` répond) ou, à défaut, `uv` avec Python 3.11","30 Go de disque libre, NVMe de préférence, pour les modèles et `local_data\u002F`","Un sous-domaine (par exemple `docs.votre-domaine.com`) pointant vers l'IP du VPS","Pare-feu actif : seuls SSH, 80 et 443 ouverts, les ports `8080` et `11434` restent fermés",{"type":98,"title":99,"steps":100},"steps","Déploiement de PrivateGPT en mode local",[101,104,107,110,113,116],{"title":102,"body":103},"Installer Ollama et tirer les modèles","Installez Ollama avec le script officiel, puis téléchargez un LLM adapté au CPU et le modèle d'embeddings recommandé :\n\n```bash\ncurl -fsSL https:\u002F\u002Follama.com\u002Finstall.sh | sh\nollama pull qwen3.5:4b\nollama pull mxbai-embed-large\n```\n\nPar défaut, Ollama n'écoute que sur `127.0.0.1:11434` : laissez-le ainsi, seul PrivateGPT doit pouvoir le joindre. C'est la seule étape qui a besoin d'Internet ; une fois les modèles en place, l'inférence se fait hors ligne.",{"title":105,"body":106},"Lancer PrivateGPT avec Docker","L'image officielle `zylonai\u002Fprivate-gpt` embarque le paquet `core`. Sur Linux, le conteneur doit partager le réseau de l'hôte pour atteindre Ollama sur `localhost`, et un volume doit conserver les données, sinon les documents ingérés disparaissent au redémarrage :\n\n```bash\nmkdir -p \u002Fopt\u002Fprivategpt\u002Flocal_data\ndocker run -d --name privategpt --restart unless-stopped \\\n  --network host \\\n  -e OPENAI_API_BASE=http:\u002F\u002Flocalhost:11434\u002Fv1 \\\n  -v \u002Fopt\u002Fprivategpt\u002Flocal_data:\u002Fhome\u002Fworker\u002Fapp\u002Flocal_data \\\n  zylonai\u002Fprivate-gpt:latest\n```\n\nAu démarrage, PrivateGPT interroge `GET \u002Fv1\u002Fmodels` sur Ollama et enregistre automatiquement les modèles trouvés : aucun fichier de configuration n'est requis. La variable `OPENAI_EMBEDDING_API_BASE` n'est utile que si vos embeddings sont servis ailleurs.",{"title":108,"body":109},"Ingérer vos documents par collection","Envoyez vos fichiers à l'API d'ingestion en les regroupant par collection, par exemple une collection par dossier client ou par service :\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fartifacts\u002Fingest \\\n  -F \"file=@\u002Fsrv\u002Fdocuments\u002Fcontrat-cession.pdf\" \\\n  -F \"collection=juridique\"\ncurl \"http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fartifacts\u002Flist?collection=juridique\"\n```\n\nPrivateGPT découpe, vectorise et indexe chaque fichier dans Qdrant. Les formats sans lecteur dédié sont lus comme du texte brut.",{"title":111,"body":112},"Interroger le corpus avec citations","Testez d'abord dans le Workbench (`http:\u002F\u002Flocalhost:8080\u002Fui`), puis branchez vos outils sur l'API Messages. La recherche documentaire passe par l'outil intégré `semantic_search_v1`, restreint à une collection :\n\n```bash\ncurl http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fmessages \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"model\": \"qwen3.5:4b\",\n       \"messages\": [{\"role\": \"user\", \"content\": \"Quelles sont les conditions suspensives du contrat ?\"}],\n       \"tools\": [{\"name\": \"recherche_docs\", \"type\": \"semantic_search_v1\",\n                  \"context\": [{\"type\": \"ingested_artifact\", \"context_filter\": {\"collection\": \"juridique\"}}]}]}'\n```",{"title":114,"body":115},"Mettre en place le reverse proxy, le SSL et l'authentification","Le Workbench n'a aucun contrôle d'accès : la documentation le réserve à un usage local. Exposez-le uniquement derrière Nginx ou Caddy, avec un certificat Let's Encrypt et une authentification basique :\n\n```bash\nserver {\n    listen 443 ssl;\n    server_name docs.votre-domaine.com;\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Fdocs.votre-domaine.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fdocs.votre-domaine.com\u002Fprivkey.pem;\n    auth_basic           \"Accès restreint\";\n    auth_basic_user_file \u002Fetc\u002Fnginx\u002F.htpasswd;\n    location \u002F { proxy_pass http:\u002F\u002F127.0.0.1:8080; }\n}\n```\n\nSi seules deux ou trois personnes s'en servent, un tunnel SSH (`ssh -L 8080:127.0.0.1:8080 user@votre-vps`) évite même toute exposition publique.",{"title":117,"body":118},"Verrouiller l'accès","PrivateGPT écoute par défaut sur `0.0.0.0`, et le mode réseau hôte publie donc le port `8080` sur toutes les interfaces. Fermez-le au pare-feu pour ne laisser joignable que le reverse proxy :\n\n```bash\nufw default deny incoming\nufw allow OpenSSH\nufw allow 80,443\u002Ftcp\nufw enable\n```\n\nVos utilisateurs passent alors par `https:\u002F\u002Fdocs.votre-domaine.com` et interrogent le corpus en langage naturel.",{"type":120,"body":121},"tip","Ollama ne sait pas annoncer la fenêtre de contexte de ses modèles, et PrivateGPT n'estime alors les tokens que grossièrement : sur des documents longs, les réponses peuvent être tronquées. Déclarez `context_window` explicitement dans un profil de modèle (fichier `settings-\u003Cnom>.yaml`, activé par `PGPT_PROFILES`), avec une valeur nettement sous la limite réelle du modèle. Fixez aussi votre modèle d'embeddings dès le départ : en changer après coup provoque une erreur « Embedding dimensions mismatch » et impose de réindexer tout le corpus (`embed_dim` vaut 1024 pour `mxbai-embed-large`).",{"type":37,"title":123,"body":124},"Sauvegarder et vérifier qu'aucune donnée ne sort","**Ce qu'il faut sauvegarder.** L'état complet de PrivateGPT tient dans `\u002Fopt\u002Fprivategpt\u002Flocal_data` (index Qdrant sous `local_data\u002Fqdrant`, fichiers ingérés), plus vos documents sources et vos éventuels profils `settings-*.yaml`. Les modèles Ollama se retéléchargent, inutile de les sauvegarder. Arrêtez le conteneur le temps de la copie (`docker stop privategpt`), ou copiez un instantané du volume : un index copié pendant une ingestion peut être incohérent. Pour plusieurs instances ou une équipe nombreuse, la documentation recommande un serveur Qdrant distinct plutôt que le mode disque local.\n\n**Contrôler le trafic sortant.** La confidentialité est une propriété de l'architecture, et elle se vérifie. Pendant une série de questions, listez les connexions établies : seules doivent apparaître celles de PrivateGPT vers `127.0.0.1:11434`, celles du reverse proxy et votre session SSH.\n\n```bash\nss -tnp state established\n```\n\nToute connexion sortante inattendue mérite d'être expliquée avant de confier des documents sensibles à l'outil.",{"type":37,"title":126,"body":127},"Dépannage : les erreurs les plus fréquentes","**PrivateGPT démarre sans aucun modèle.** Ollama n'était pas lancé au démarrage du conteneur, ou `OPENAI_API_BASE` est faux : l'URL doit se terminer par `\u002Fv1`. Vérifiez avec `curl http:\u002F\u002Flocalhost:11434\u002Fv1\u002Fmodels`, puis redémarrez le conteneur (`docker restart privategpt`).\n\n**« Connection refused » depuis le conteneur.** Dans un conteneur en réseau bridge, `localhost` désigne le conteneur lui-même. Sur Linux, gardez `--network host` ; sur macOS ou Windows, visez `host.docker.internal`.\n\n**« Embedding dimensions mismatch » à l'ingestion.** L'index a été construit avec un autre modèle d'embeddings. Revenez au modèle d'origine, ou videz le magasin vectoriel (`make wipe` dans le dépôt) et réingérez les documents.\n\n**Réponses tronquées sur les longs documents.** La fenêtre de contexte est mal estimée : déclarez `context_window` dans un profil de modèle (voir l'astuce ci-dessus).\n\n**Ollama tué en pleine réponse.** Le noyau a manqué de mémoire (OOM) : `dmesg | grep -i oom` le confirme. Passez à une variante plus petite du modèle ou augmentez la RAM.\n\n**« Address already in use » au démarrage.** Le port `8080` est déjà pris : en Docker, définissez la variable `PORT` (par exemple `-e PORT=8090`), hors conteneur l'option `--port` de `private-gpt serve`, puis adaptez le `proxy_pass` de Nginx.","Construisez votre assistant documentaire privé","Le VPS Cloud ServOrbit fournit la RAM et le stockage SSD nécessaires pour faire tourner PrivateGPT et sa base vectorielle Qdrant en local, avec Docker préconfiguré pour un déploiement RAG rapide.","Déployer sur un VPS Cloud","\u002Fapplications\u002Fia\u002Fprivate-gpt",[133,151,168],{"id":134,"slug":135,"slugs":136,"title":140,"excerpt":141,"readTime":17,"views":142,"isPinned":19,"noindex":19,"publishedAt":143,"updatedAt":144,"category":145,"categories":146,"featuredImage":29,"bgImage":30,"posterImage":148,"relatedSolution":149},11,"heberger-ollama-vps",{"fr":135,"en":137,"ar":138,"es":139},"how-to-host-ollama-on-a-vps","كيفية-استضافة-ollama-على-خادم-vps","como-alojar-ollama-en-un-vps","Héberger Ollama sur un VPS : guide opérationnel avancé","Configuration avancée d'Ollama sur VPS : gestion des modèles, reverse proxy nginx, sécurité API, quantisation Q4_K_M\u002FQ8, CVE-2026-45672 Open WebUI et couplage sécurisé.",3,"2026-06-09T00:00:00+00:00","2026-11-04T16:30:24+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},[147],{"id":18,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-ollama-vps-poster.svg",{"categorySlug":26,"appSlug":150},"ollama",{"id":152,"slug":153,"slugs":154,"title":158,"excerpt":159,"readTime":160,"views":161,"isPinned":19,"noindex":19,"publishedAt":162,"updatedAt":163,"category":164,"categories":165,"featuredImage":29,"bgImage":30,"posterImage":167,"relatedSolution":29},316,"open-webui-ollama-vps",{"fr":153,"en":155,"ar":156,"es":157},"open-webui-ollama-on-vps-multi-user-interface-for-local-llms","واجهة-ويب-open-webui-مع-ollama-على-vps-للفرق","open-webui-ollama-en-vps-interfaz-web-multiusuario-para-llm","Open-WebUI + Ollama sur VPS : interface multi-utilisateurs LLM","Offrez à votre équipe une interface web multi-utilisateurs sur vos modèles Ollama : RAG, gestion de modèles, SSO OpenID Connect, sans dépendance cloud.",18,7,"2026-08-30T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},[166],{"id":18,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fopen-webui-ollama-vps-poster.svg",{"id":169,"slug":170,"slugs":171,"title":175,"excerpt":176,"readTime":177,"views":18,"isPinned":19,"noindex":19,"publishedAt":178,"updatedAt":179,"category":180,"categories":181,"featuredImage":29,"bgImage":30,"posterImage":183,"relatedSolution":184},2,"deployer-dify-vps",{"fr":170,"en":172,"ar":173,"es":174},"deploying-dify-on-a-vps-ai-workflows-under-control","نشر-dify-على-vps-سير-عمل-الذكاء-الاصطناعي-تحت-السيطرة","desplegar-dify-en-un-vps","Déployer Dify sur un VPS : guide de l'installation aux plugins","Installez Dify sur un VPS ServOrbit : prérequis, Docker Compose, plugins offline, limites de l'installation Docker, sauvegarde avant mise à jour, dépannage.",15,"2026-02-11T00:00:00+00:00","2026-10-29T03:10:23+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},[182],{"id":18,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fdeployer-dify-vps-poster.svg",{"categorySlug":24,"appSlug":185},"dify",true,1794270730160]