[{"data":1,"prerenderedAt":162},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-ollama-vps-ma-fr":6,"promo-bar-likely":161},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-heberger-ollama-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":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":35,"sections":36,"ctaTitle":102,"ctaBody":103,"ctaButton":104,"ctaUrl":105,"relatedPosts":106},11,"heberger-ollama-vps",{"fr":10,"en":12,"ar":13,"es":14},"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é.",9,3,false,"2026-06-09T00:00:00+00:00","2026-11-04T16:30:24+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},1,"Intelligence Artificielle","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-ollama-vps-poster.svg",{"categorySlug":27,"appSlug":34},"ollama","Une fois Ollama lancé sur votre VPS, le vrai travail commence : choisir les modèles adaptés à votre RAM, sécuriser l'API derrière un reverse proxy, maintenir les performances au fil des mises à jour et intégrer le moteur d'inférence dans votre stack. Ce guide couvre l'angle opérationnel — tout ce qui suit le premier `docker run` — y compris la vulnérabilité CVE-2026-45672 qui affecte Open WebUI couplé à Ollama, et les mesures pour sécuriser ce couplage.",[37,41,52,55,83,86,90,93,96,99],{"type":38,"title":39,"body":40},"h2","Ollama en production : ce qui change après le premier démarrage","Déployer Ollama prend quelques minutes. Le faire tourner de façon fiable sur la durée demande davantage d'attention. En production, trois points concentrent l'essentiel des problèmes : la gestion des modèles (lequel charger, lequel retirer pour libérer du disque), la surface d'attaque de l'API (non authentifiée par défaut sur le port 11434), et la consommation mémoire (un modèle mal dimensionné sature la RAM et fait tuer le processus par le noyau). Ce guide part du principe que le conteneur `ollama` tourne déjà et se concentre sur ces trois axes, plus l'intégration avec les outils de votre stack.",{"type":42,"title":43,"items":44},"ul","Ce que la gestion avancée apporte concrètement",[45,46,47,48,49,50,51],"**Pull sélectif** — vous téléchargez uniquement le modèle dont vous avez besoin, sans remplir le disque de variantes inutiles.","**Suppression propre** — `ollama rm` libère l'espace disque et réduit le temps de chargement des modèles restants.","**API REST documentée** — Ollama expose `\u002Fapi\u002Fgenerate`, `\u002Fapi\u002Fchat` et `\u002Fv1\u002Fchat\u002Fcompletions` ; un reverse proxy devant donne un endpoint HTTPS avec authentification.","**Concurrence contrôlée** — `OLLAMA_MAX_LOADED_MODELS` empêche plusieurs modèles de se charger simultanément et d'épuiser la RAM.","**Variables d'environnement persistantes** — `OLLAMA_KEEP_ALIVE`, `OLLAMA_NUM_THREADS` et `OLLAMA_CONTEXT_SIZE` s'injectent dans le `docker run` ou dans un `compose.yml` versionné.","**Rotation de modèles scriptable** — un simple appel `curl` sur `\u002Fapi\u002Fpull` suffit à automatiser la mise à jour d'un modèle depuis un pipeline CI.","**Exposition sélective** — vous pouvez exposer l'API à vos seuls outils internes (Open WebUI, n8n, LangFlow) sans la rendre publique.",{"type":38,"title":53,"body":54},"Choisir et gérer ses modèles : taille, RAM et quantisation","La taille d'un modèle s'exprime en milliards de paramètres (B) et détermine la RAM nécessaire. Un modèle 1B\u002F3B tient en 2 à 3 Go et convient aux tâches simples (classification, résumé court) sur un VPS modeste. Un 7B\u002F8B demande 5 à 6 Go en Q4 : c'est le rapport qualité\u002Fressources le plus courant. Un 13B nécessite 9 à 10 Go, et un 70B dépasse 40 Go — réservé aux VPS hautes mémoire ou aux configurations GPU. Pour chaque taille, la quantisation ajuste le compromis qualité\u002Fvitesse : Q4_K_M offre un bon compromis qualité\u002Fvitesse sur CPU, Q8 conserve plus de précision au prix d'une RAM doublée. Avant de `pull` un modèle, vérifiez l'espace libre avec `df -h` et la RAM disponible avec `free -h`.",{"type":56,"title":57,"steps":58},"steps","Opérations courantes : pull, suppression et exposition de l'API",[59,62,65,68,71,74,77,80],{"title":60,"body":61},"Lister les modèles disponibles","Exécutez `docker exec ollama ollama list` pour voir les modèles déjà téléchargés, leur taille sur disque et leur date d'ajout.",{"title":63,"body":64},"Télécharger un nouveau modèle","Lancez `docker exec ollama ollama pull llama3.2:3b` pour un modèle léger, ou `docker exec ollama ollama pull qwen2.5:7b-instruct-q4_K_M` pour un 7B quantisé. Le suffixe `q4_K_M` précise la quantisation directement dans le tag.",{"title":66,"body":67},"Supprimer un ancien modèle","Libérez de l'espace avec `docker exec ollama ollama rm llama3.1:8b`. Vérifiez après avec `docker exec ollama ollama list` que le modèle n'apparaît plus.",{"title":69,"body":70},"Tester l'API REST en local","Appelez l'endpoint chat : `curl http:\u002F\u002F127.0.0.1:11434\u002Fapi\u002Fchat -d '{\"model\":\"qwen2.5:7b-instruct-q4_K_M\",\"messages\":[{\"role\":\"user\",\"content\":\"Ping\"}],\"stream\":false}'`. La réponse JSON contient le champ `message.content`.",{"title":72,"body":73},"Configurer les variables d'environnement","Relancez le conteneur avec les options souhaitées : `docker run -d -v ollama:\u002Froot\u002F.ollama -p 127.0.0.1:11434:11434 -e OLLAMA_KEEP_ALIVE=-1 -e OLLAMA_MAX_LOADED_MODELS=1 -e OLLAMA_NUM_THREADS=4 --name ollama ollama\u002Follama`. Ces paramètres maintiennent le modèle en mémoire et limitent la charge CPU.",{"title":75,"body":76},"Appliquer un rate-limit via nginx","Dans votre bloc `server` nginx, ajoutez `limit_req_zone $binary_remote_addr zone=ollama:10m rate=10r\u002Fm;` dans la section `http`, puis `limit_req zone=ollama burst=5 nodelay;` dans le `location`. Cela protège l'API des appels répétés en rafale.",{"title":78,"body":79},"Mettre à jour Ollama lui-même","Arrêtez et supprimez le conteneur : `docker stop ollama && docker rm ollama`. Récupérez la nouvelle image : `docker pull ollama\u002Follama`. Relancez avec les mêmes paramètres. Les modèles sont stockés dans le volume `ollama`, ils ne sont pas touchés.",{"title":81,"body":82},"Vérifier la santé du service","Consultez `curl http:\u002F\u002F127.0.0.1:11434\u002Fapi\u002Ftags` pour obtenir la liste des modèles chargés. Un HTTP 200 avec un JSON valide confirme que le service répond correctement.",{"type":38,"title":84,"body":85},"Ollama derrière un reverse proxy nginx avec token","Par défaut, Ollama écoute sur `127.0.0.1:11434` sans authentification. Pour l'exposer à vos outils (Open WebUI, n8n, un script distant), placez nginx en frontal avec un jeton Bearer. Le bloc de configuration ci-dessous délègue l'accès à un jeton secret défini dans la variable `$api_token`, vérifie l'en-tête `Authorization` et proxifie vers Ollama. Le CORS est configuré pour accepter les requêtes de votre interface sans exposer l'API à tous les origines.\n\nDans `\u002Fetc\u002Fnginx\u002Fsites-available\u002Follama` :\n\n```nginx\nmap $http_authorization $api_token_valid {\n    default 0;\n    \"Bearer VOTRE_TOKEN_SECRET\" 1;\n}\nserver {\n    listen 443 ssl;\n    server_name api-ia.votre-domaine.com;\n    ssl_certificate \u002Fetc\u002Fletsencrypt\u002Flive\u002Fapi-ia.votre-domaine.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fapi-ia.votre-domaine.com\u002Fprivkey.pem;\n    location \u002F {\n        if ($api_token_valid = 0) { return 401; }\n        proxy_pass http:\u002F\u002F127.0.0.1:11434;\n        proxy_set_header Host $host;\n        add_header Access-Control-Allow-Origin \"https:\u002F\u002Fui.votre-domaine.com\";\n    }\n}\n```\n\nActivez la configuration avec `ln -s \u002Fetc\u002Fnginx\u002Fsites-available\u002Follama \u002Fetc\u002Fnginx\u002Fsites-enabled\u002F` puis `nginx -t && systemctl reload nginx`.",{"type":87,"title":88,"body":89},"tip","Performance CPU : choisir la bonne quantisation","Sur CPU, **Q4_K_M** est le point d'équilibre recommandé : une perte de qualité marginale par rapport au Q8, pour une vitesse de génération environ 40 % plus élevée et une consommation mémoire réduite de moitié. Réservez le **Q8** aux cas où la précision est critique (code, logique formelle) et que votre VPS dispose d'au moins 16 Go de RAM libre. Ajustez `OLLAMA_NUM_THREADS` au nombre de cœurs physiques (pas logiques) pour éviter la contention : sur un VPS 4 vCPU, démarrez à 3. Le paramètre `OLLAMA_CONTEXT_SIZE` (défaut : 2048 tokens) influence directement la RAM par requête ; réduisez-le si vous gérez de nombreux appels courts en parallèle.",{"type":38,"title":91,"body":92},"Dépannage : les cas les plus courants","Quatre situations reviennent régulièrement en production.\n\n**Modèle trop lent.** La génération dépasse 2-3 tokens par seconde sur CPU pour un 7B ? Vérifiez que `OLLAMA_NUM_THREADS` n'est pas à 1 (défaut si non défini sur certaines images). Vérifiez aussi qu'un seul modèle est chargé (`OLLAMA_MAX_LOADED_MODELS=1`) : deux modèles simultanés se disputent les cœurs et la bande passante mémoire.\n\n**VRAM insuffisante (GPU).** Si le journal Docker affiche `CUDA out of memory` ou `ROCm error`, le modèle ne tient pas en VRAM. Passez au tag `q4_K_M` ou réduisez `OLLAMA_CONTEXT_SIZE`. Ollama bascule en CPU si la VRAM est insuffisante, mais sans l'indiquer clairement : comparez les vitesses de génération pour le détecter.\n\n**Connexion API refusée.** `curl: (7) Failed to connect` depuis l'extérieur alors que le service écoute ? Le pare-feu bloque le port 11434, ou nginx n'est pas démarré. Vérifiez avec `ss -tlnp | grep 11434` (doit montrer `127.0.0.1`, pas `0.0.0.0`) et `systemctl status nginx`.\n\n**Signal killed \u002F OOM.** Le processus est tué par le noyau (OOM killer). La RAM du VPS est insuffisante pour le modèle sélectionné. Repassez à une taille inférieure ou activez un swap de 4 à 8 Go comme tampon : `fallocate -l 4G \u002Fswapfile && chmod 600 \u002Fswapfile && mkswap \u002Fswapfile && swapon \u002Fswapfile`. Le swap ralentit la génération mais évite les arrêts brutaux.",{"type":38,"title":94,"body":95},"Intégration avec d'autres outils du VPS","Ollama est un backend : il prend toute sa valeur quand d'autres services s'y connectent. Trois outils s'intègrent naturellement sur le même VPS.\n\n**Open WebUI** expose une interface de conversation comparable à ChatGPT, branchée sur l'API Ollama locale. Dans son fichier d'environnement, définissez `OLLAMA_BASE_URL=http:\u002F\u002Follama:11434` (si les deux conteneurs partagent un réseau Docker) ou `OLLAMA_BASE_URL=http:\u002F\u002F127.0.0.1:11434` si Open WebUI tourne sur le même hôte. Open WebUI gère la sélection du modèle, l'historique des conversations et la gestion des utilisateurs. **Attention** : le couplage Ollama ↔ Open WebUI expose une surface d'attaque supplémentaire à surveiller — voir la section CVE-2026-45672 ci-dessous.\n\n**LangFlow** est un constructeur visuel de pipelines LLM. Ajoutez un nœud `Ollama` dans votre flow, renseignez `http:\u002F\u002F127.0.0.1:11434` comme base URL et sélectionnez le modèle dans la liste déroulante. LangFlow appelle directement l'endpoint `\u002Fapi\u002Fgenerate` sans authentification interne — placez-le sur le réseau privé du VPS, pas exposé publiquement.\n\n**n8n** permet de déclencher des appels Ollama depuis un workflow d'automatisation. Utilisez le nœud `HTTP Request` pointant sur `http:\u002F\u002F127.0.0.1:11434\u002Fapi\u002Fchat` avec un corps JSON contenant `model` et `messages`. Depuis n8n, vous pouvez chaîner un appel Ollama à une étape de récupération de données, d'envoi d'e-mail ou de webhook sortant sans écrire de code.",{"type":38,"title":97,"body":98},"CVE-2026-45672 : contournement d'autorisation dans Open WebUI","Publiée le 21 mai 2026 (GHSA-482j-2pq6-q5w4), cette vulnérabilité affecte toutes les versions d'Open WebUI antérieures à 0.8.12. Score CVSS : **8.8 (élevé)**.\n\n**Mécanique de l'attaque.** Un utilisateur authentifié peut exécuter du code Python arbitraire via l'endpoint `\u002Fapi\u002Fv1\u002Futils\u002Fcode\u002Fexecute`, même si l'administrateur a désactivé l'exécution de code dans les réglages (`ENABLE_CODE_EXECUTION=false`). La garde est déclarée dans la configuration mais n'est jamais vérifiée côté API : n'importe quel compte vérifié sur l'instance peut déclencher l'exécution.\n\n**Impact.** L'attaquant accède au backend Jupyter sous-jacent et peut lire des fichiers arbitraires sur le VPS, voler des secrets (clés d'API, jeton Ollama, variables d'environnement), ou établir une persistance. La confidentialité, l'intégrité et la disponibilité du serveur sont compromises.\n\n**Pourquoi c'est critique dans un couplage Ollama ↔ Open WebUI.** Ollama et Open WebUI tournent souvent sur le même VPS, parfois dans le même réseau Docker, avec des secrets partagés (clé d'API OpenAI de repli, jeton Bearer de l'API Ollama). Un accès RCE sur Open WebUI donne donc un accès direct à l'API Ollama et aux modèles en mémoire, sans passer par le reverse proxy.\n\n**Correction.** Mettez à jour Open WebUI vers la version **0.8.12 ou supérieure**. Cette version applique la vérification de `ENABLE_CODE_EXECUTION` au niveau de l'endpoint API, là où elle aurait toujours dû l'être.\n\n**Vérifier votre version.** Depuis le conteneur : `docker exec open-webui cat \u002Fapp\u002Fpackage.json | grep '\"version\"'`. Si la sortie est inférieure à `0.8.12`, la mise à jour est urgente : `docker pull ghcr.io\u002Fopen-webui\u002Fopen-webui:main && docker stop open-webui && docker rm open-webui` puis relancez avec les mêmes paramètres d'environnement.",{"type":87,"title":100,"body":101},"Durcir le couplage Ollama ↔ Open WebUI après CVE-2026-45672","Quatre mesures complémentaires à appliquer après la mise à jour vers 0.8.12.\n\n**1. Isoler les réseaux Docker.** Créez un réseau bridge dédié (`docker network create llm-private`) et placez-y les deux conteneurs. Ollama n'est alors joignable depuis Open WebUI que par le nom de service (`http:\u002F\u002Follama:11434`), sans passer par l'interface publique du VPS.\n\n**2. Ne jamais exposer le port 11434 à l'extérieur.** Confirmez que le binding reste sur `127.0.0.1:11434`. Sur le réseau Docker interne, Ollama répond sur le port 11434 sans authentification — c'est acceptable si le réseau est privé ; il devient un vecteur dès qu'il est accessible depuis l'extérieur.\n\n**3. Désactiver l'exécution de code si vous n'en avez pas besoin.** Dans les variables d'environnement d'Open WebUI, posez `ENABLE_CODE_EXECUTION=false`. Après la mise à jour vers 0.8.12, ce paramètre est enfin appliqué au niveau de l'API. Si votre usage n'inclut pas d'exécution de code, désactivez-le comme mesure de défense en profondeur.\n\n**4. Restreindre les inscriptions.** Dans l'interface d'administration Open WebUI (Réglages → Administration), désactivez les inscriptions publiques (`ENABLE_SIGNUP=false`) si l'instance est exposée à Internet. CVE-2026-45672 exige un compte vérifié : réduire la surface d'inscription réduit la surface d'attaque.","Votre serveur LLM privé sur un VPS Cloud ServOrbit","Le VPS Cloud ServOrbit offre la RAM et l'évolutivité nécessaires pour servir vos modèles Ollama en production. Augmentez les ressources quand vous passez à des modèles plus grands, sans migration ni interruption.","Déployer Ollama sur mon VPS","\u002Fapplications\u002Fia\u002Follama",[107,128,145],{"id":108,"slug":109,"slugs":110,"title":114,"excerpt":115,"readTime":116,"views":23,"isPinned":19,"noindex":19,"publishedAt":117,"updatedAt":118,"category":119,"categories":124,"featuredImage":30,"bgImage":31,"posterImage":126,"relatedSolution":127},102,"ollama-vs-localai",{"fr":109,"en":111,"ar":112,"es":113},"ollama-vs-localai-which-self-hosted-llm-model-server","ollama-مقابل-localai-أي-خادم-نماذج-llm-مستضاف-ذاتيا","ollama-vs-localai-servidor-de-modelos-llm-autoalojado","Ollama vs LocalAI : quel serveur de modèles LLM auto-hébergé ?","Ollama ou LocalAI sur VPS ? Comparatif complet : tableau critères, gestion des modèles, quantization, intégration Open WebUI et dépannage pour choisir votre serveur LLM",8,"2026-03-10T00:00:00+00:00","2026-10-05T14:05:27+00:00",{"id":120,"name":121,"slug":122,"color":123,"icon":122},5,"Comparatif","comparatif","bg-info\u002F10 text-info",[125],{"id":120,"name":121,"slug":122,"color":123,"icon":122},"\u002Fblog\u002Fcovers\u002Follama-vs-localai-poster.svg",{"categorySlug":27,"appSlug":34},{"id":17,"slug":129,"slugs":130,"title":134,"excerpt":135,"readTime":116,"views":136,"isPinned":19,"noindex":19,"publishedAt":137,"updatedAt":138,"category":139,"categories":140,"featuredImage":30,"bgImage":31,"posterImage":142,"relatedSolution":143},"heberger-anythingllm-vps",{"fr":129,"en":131,"ar":132,"es":133},"how-to-host-anythingllm-on-a-vps","كيفية-استضافة-anythingllm-على-خادم-vps","como-alojar-anythingllm-en-un-vps","AnythingLLM sur VPS : guide complet avec pièges à éviter","Hébergez AnythingLLM sur VPS : Docker, HTTPS, epinglage de version obligatoire. Pièges :latest, Gemini v1.16 et Ollama réseau Docker documentés.",0,"2026-06-11T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[141],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-anythingllm-vps-poster.svg",{"categorySlug":27,"appSlug":144},"anything-llm",{"id":146,"slug":147,"slugs":148,"title":152,"excerpt":153,"readTime":116,"views":154,"isPinned":19,"noindex":19,"publishedAt":155,"updatedAt":156,"category":157,"categories":158,"featuredImage":30,"bgImage":31,"posterImage":160,"relatedSolution":30},214,"mcp-serveur-ia-auto-heberge-vps",{"fr":147,"en":149,"ar":150,"es":151},"how-to-deploy-an-mcp-server-on-a-vps","كيفية-نشر-خادم-mcp-على-vps","desplegar-servidor-mcp-en-un-vps","Déployer un serveur MCP sur VPS auto-hébergé","Guide complet pour déployer, sécuriser et intégrer un serveur MCP sur votre VPS : nginx, TLS, authentification, dépannage et connexion à Claude Desktop.",4,"2026-08-03T00:00:00+00:00","2026-10-20T23:18:06+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[159],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fmcp-serveur-ia-auto-heberge-vps-poster.svg",true,1794270726790]