Ollama : exécuter un LLM sur votre VPS Linux
Ollama est un moteur d'inférence open source qui permet d'exécuter des modèles de langage (LLM) directement sur un serveur Linux, sans dépendre d'une API cloud externe. Là où les services comme ChatGPT ou Claude traitent vos requêtes sur des serveurs tiers, Ollama fait tourner le modèle en local : vos données restent sur votre infrastructure, la latence dépend uniquement de votre matériel, et il n'y a aucun coût par requête.
Ollama expose une API REST compatible OpenAI sur le port TCP 11434. N'importe quel outil compatible (Open WebUI, scripts Python, extensions VS Code) peut s'y connecter pour interroger le modèle. Ce guide couvre l'installation sur un VPS Linux, le choix du modèle adapté à vos ressources (RAM, CPU), la configuration en service systemd et l'exposition sécurisée de l'API derrière un reverse proxy NGINX avec authentification.
Prérequis
- Un VPS Linux sous Ubuntu 22.04/24.04 LTS ou Debian 12 avec un accès root ou sudo ;
- Au minimum 4 Go de RAM pour les modèles les plus légers (8 Go recommandés) ;
- Un accès SSH configuré sur le serveur (sécuriser SSH sur VPS Linux) ;
- NGINX installé si vous souhaitez exposer l'API (guide NGINX reverse proxy) ;
- Un nom de domaine pointé vers le VPS (optionnel, pour l'accès HTTPS).
Installer Ollama
Le script d'installation officiel détecte votre architecture (AMD64 ou ARM64), télécharge le binaire, crée l'utilisateur système ollama et enregistre le service systemd automatiquement :
curl -fsSL https://ollama.com/install.sh | shVérifiez que le service est actif :
sudo systemctl status ollamaLe service écoute par défaut sur 127.0.0.1:11434. Testez la connexion locale :
curl http://localhost:11434La réponse Ollama is running confirme que l'installation a réussi. Pour mettre à jour Ollama ultérieurement, relancez la même commande d'installation : le script détecte l'installation existante et la met à niveau.
Choisir un modèle adapté à votre VPS
Les modèles de langage varient considérablement en taille et en consommation de mémoire. La règle pratique : un modèle quantifié en Q4 consomme environ 0,6 Go de RAM par milliard de paramètres. Sans GPU, le processeur effectue l'inférence : c'est plus lent, mais fonctionnel. Voici les modèles les plus courants et leur consommation mémoire indicative :
| Modèle | Paramètres | RAM minimale (Q4) | Usage type |
|---|---|---|---|
| Phi-4 Mini | 3,8B | ~3 Go | Assistant léger, tests rapides |
| Llama 3.2 | 3B | ~2,5 Go | Résumé, classification de texte |
| Mistral | 7B | ~4,5 Go | Usage général, rédaction, code |
| Llama 3.1 | 8B | ~5 Go | Chatbot polyvalent, assistant technique |
| Gemma 3 | 12B | ~8 Go | Raisonnement avancé, analyse |
| Qwen 3 | 14B | ~10 Go | Multilingue, code, raisonnement |
| Qwen 3 | 30B | ~19 Go | Tâches complexes, gros contexte |
| Llama 3.3 | 70B | ~43 Go | Performance maximale |
Sur un VPS avec 4 Go de RAM, limitez-vous aux modèles 3B. Avec 8 Go, les modèles 7-8B fonctionnent confortablement. Les modèles 12B et au-delà nécessitent un VPS avec davantage de mémoire. Surveillez la consommation avec htop ou btop (surveiller les ressources d'un VPS Linux) pour vérifier que le système ne sature pas la RAM disponible.
Si la mémoire est insuffisante, le noyau Linux déclenche l'OOM Killer qui arrête le processus le plus gourmand (comprendre l'OOM Killer). Choisissez un modèle qui laisse au moins 1 Go de marge pour le système d'exploitation.
Télécharger et tester un modèle
Ollama télécharge les modèles depuis sa bibliothèque publique. Pour récupérer un modèle et démarrer une conversation interactive dans le terminal :
ollama pull llama3.1
ollama run llama3.1La commande pull télécharge les poids du modèle dans /usr/share/ollama/.ollama/models. La commande run charge le modèle en mémoire et ouvre un prompt interactif. Tapez /bye pour quitter.
Commandes utiles pour gérer vos modèles :
ollama list # lister les modèles installés
ollama show llama3.1 # afficher les métadonnées du modèle
ollama rm llama3.1 # supprimer un modèle pour libérer de l'espace disqueConfigurer le service systemd
Le script d'installation crée automatiquement le fichier /etc/systemd/system/ollama.service. Pour personnaliser la configuration sans modifier le fichier d'origine (qui serait écrasé lors d'une mise à jour), utilisez un fichier de surcharge :
sudo systemctl edit ollama.serviceCette commande ouvre un éditeur et crée le fichier /etc/systemd/system/ollama.service.d/override.conf. Ajoutez vos variables d'environnement dans la section [Service] :
[Service]
Environment="OLLAMA_HOST=127.0.0.1:11434"
Environment="OLLAMA_KEEP_ALIVE=5m"OLLAMA_HOST contrôle l'adresse et le port d'écoute. OLLAMA_KEEP_ALIVE définit combien de temps un modèle reste chargé en mémoire après la dernière requête (par défaut 5 minutes). Sur un VPS avec peu de RAM, réduire cette valeur libère la mémoire plus rapidement entre les sessions.
Appliquez les modifications :
sudo systemctl daemon-reload
sudo systemctl restart ollamaActivez le démarrage automatique au boot :
sudo systemctl enable ollamaConsultez les journaux du service avec journalctl pour diagnostiquer un éventuel problème de lancement :
journalctl -u ollama -fPour mieux comprendre les unités systemd et la création de services personnalisés, consultez notre guide créer un service systemd sur Linux.
Exposer l'API derrière NGINX avec authentification
Par défaut, Ollama n'écoute que sur 127.0.0.1 : l'API n'est pas accessible depuis l'extérieur. Pour y accéder à distance (depuis un poste de travail, une application ou Open WebUI sur un autre serveur), placez un reverse proxy NGINX devant l'API avec une authentification HTTP Basic et un certificat TLS.
Créez le fichier de mots de passe :
sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd ollama-userCréez la configuration NGINX :
sudo nano /etc/nginx/sites-available/ollama.confContenu du fichier :
server {
listen 80;
server_name ollama.example.com;
location / {
auth_basic "Ollama API";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:11434;
proxy_set_header Host localhost:11434;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}Activez la configuration et rechargez NGINX :
sudo ln -s /etc/nginx/sites-available/ollama.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxPour le certificat TLS avec Let's Encrypt, suivez le guide Certbot et Let's Encrypt sur VPS Linux. Certbot modifiera automatiquement la configuration pour écouter sur le port 443 en HTTPS.
Le délai proxy_read_timeout est réglé à 300 secondes : les modèles de grande taille peuvent mettre plusieurs secondes à générer une réponse complète, surtout en inférence CPU. Adaptez cette valeur si vos requêtes dépassent régulièrement ce seuil.
Sécuriser l'accès à l'API
L'authentification HTTP Basic protège l'API contre les accès non autorisés, mais ne remplace pas les bonnes pratiques de sécurité réseau :
- Ne modifiez pas
OLLAMA_HOSTpour écouter sur0.0.0.0: gardez l'écoute sur127.0.0.1et laissez NGINX gérer l'accès externe ; - Vérifiez que seuls les ports TCP 22, 80 et 443 sont ouverts dans votre pare-feu (configurer UFW sur VPS Linux) ;
- Utilisez Fail2ban pour bloquer les tentatives de connexion répétées sur le reverse proxy (protéger SSH et les services avec Fail2ban) ;
- Si l'API ne doit être accessible que depuis un réseau privé ou un VPN, restreignez les adresses source dans la directive
allowde NGINX.
Testez l'accès authentifié depuis un poste distant :
curl -u ollama-user:VOTRE_MOT_DE_PASSE https://ollama.example.com/api/tagsLa réponse JSON liste les modèles installés sur le serveur.
Utiliser l'API Ollama
L'API REST d'Ollama écoute sur le port TCP 11434 et expose plusieurs endpoints. Depuis le serveur ou via le reverse proxy, envoyez des requêtes pour générer du texte, discuter en mode conversation ou lister les modèles disponibles :
# Générer une réponse (mode completion)
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt": "Explique le fonctionnement de systemd en trois phrases.",
"stream": false
}'
# Mode conversation (compatible OpenAI)
curl http://localhost:11434/v1/chat/completions -d '{
"model": "llama3.1",
"messages": [{"role": "user", "content": "Bonjour"}]
}'L'endpoint /v1/chat/completions est compatible avec le format de l'API OpenAI : les bibliothèques et outils qui supportent OpenAI fonctionnent avec Ollama en changeant simplement l'URL de base.
Connecter Open WebUI à Ollama
Open WebUI est une interface web qui se connecte à l'API Ollama pour offrir une expérience de chat comparable à ChatGPT, entièrement auto-hébergée. Si Ollama tourne sur le même serveur, Open WebUI s'y connecte automatiquement via http://localhost:11434.
Pour un déploiement complet avec Docker, reverse proxy et gestion multi-utilisateurs, consultez notre guide dédié : installer Open WebUI sur un VPS Linux avec Docker.
Conclusion
Ollama permet d'exécuter des modèles de langage directement sur un VPS Linux, sans dépendance à un service cloud externe. L'installation prend une commande, le service systemd assure le redémarrage automatique, et un reverse proxy NGINX avec authentification sécurise l'accès distant à l'API. Choisissez un modèle adapté à la RAM de votre VPS, surveillez la consommation mémoire, et connectez une interface comme Open WebUI pour disposer d'un assistant IA privé sur votre infrastructure.
FiveM
Minecraft
Rust
RedM
Hytale