Module 1 — Installation sur Windows, macOS et Linux
Le cabinet juridique qui nous a mandatés a une contrainte non négociable : aucun document client ne doit quitter le poste. Notre premier geste n'est donc pas de choisir un modèle, mais d'installer un serveur d'inférence local qui fonctionne partout où travaillent les collaborateurs : deux MacBook de la direction, un poste Windows au secrétariat, et une petite tour Linux qui sert de serveur commun sur le réseau interne. Ollama est aujourd'hui la façon la plus simple d'y arriver, parce qu'il enveloppe le moteur d'inférence llama.cpp derrière une commande unique et un service qui tourne en arrière-plan.
Le modèle mental à installer avant le logiciel
Ollama n'est pas un modèle : c'est un service local qui écoute par défaut sur http://127.0.0.1:11434, télécharge des modèles à la demande depuis une bibliothèque publique, et expose une API REST à quiconque se connecte à ce port. Toute la suite du cours découle de cette phrase. Le client en ligne de commande (ollama run, ollama pull) parle à ce service exactement comme le fera notre script Python du module 4. Il n'y a pas de « mode direct » qui court-circuite le service : si le service n'est pas démarré, rien ne fonctionne.
Windows
L'installateur .exe téléchargé depuis ollama.com/download installe Ollama pour l'utilisateur courant, place les binaires sous %LOCALAPPDATA%\Programs\Ollama et enregistre un raccourci qui démarre le service en tâche de fond dès l'ouverture de session. Une petite icône dans la zone de notification confirme que le service tourne.
Les modèles sont stockés par défaut dans %USERPROFILE%\.ollama\models — un llama3.1:8b quantifié en Q4 pèse déjà 4,7 Go, et le cabinet en installera trois ou quatre. Sur le poste du secrétariat, dont le disque système est presque plein, nous déplaçons ce répertoire vers le disque secondaire :
setx OLLAMA_MODELS "D:\ollama\models"
Il faut ensuite fermer la session Windows pour que la variable soit reprise par le service : setx n'affecte pas les processus déjà lancés. C'est la source d'erreur numéro un des installations Windows.
macOS
Sur les Mac de la direction, l'application .dmg installe Ollama comme n'importe quelle application, et un agent launchd démarre le service à l'ouverture de session. Les modèles vont dans ~/.ollama/models. Pour changer d'emplacement, on définit la variable dans le fichier de configuration du shell (~/.zshrc par défaut) :
echo 'export OLLAMA_MODELS="/Volumes/Externe/ollama/models"' >> ~/.zshrc
launchctl setenv OLLAMA_MODELS "/Volumes/Externe/ollama/models"
La seconde ligne rend la variable visible au service launchd, qui n'hérite pas du shell utilisateur. Un simple redémarrage de l'app Ollama depuis la barre de menus applique la nouvelle configuration.
Linux
Sur la tour Ubuntu qui sert de serveur commun, le script officiel installe Ollama en tant que service systemd :
curl -fsSL https://ollama.com/install.sh | sh
Le service tourne alors sous l'utilisateur ollama et stocke les modèles dans /usr/share/ollama/.ollama/models. Pour que les autres postes du réseau interne puissent l'interroger, il faut le faire écouter sur toutes les interfaces, pas seulement 127.0.0.1. On ajoute une entrée dans /etc/systemd/system/ollama.service.d/override.conf :
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/srv/ollama/models"
Puis sudo systemctl daemon-reload && sudo systemctl restart ollama. Attention : exposer le port 11434 sans authentification revient à donner à tout le sous-réseau un accès complet au modèle — nous reviendrons sur ce point au module 8, qui traite précisément de l'exposition réseau et de l'authentification par proxy inverse.
Vérifier que tout fonctionne
Sur les trois OS, la même commande confirme que le service répond :
curl http://127.0.0.1:11434/api/tags
Elle retourne un JSON avec la liste des modèles installés (vide au premier démarrage). Une erreur Connection refused signifie que le service n'a pas démarré : sur Windows on relance l'app depuis le menu Démarrer, sur macOS depuis la barre de menus, sur Linux via sudo systemctl start ollama. Une réponse en revanche prouve deux choses à la fois : Ollama est installé et son API HTTP est joignable, ce qui est exactement ce dont Python et LangChain auront besoin.
OLLAMA_MODELS déplace le dossier des modèles ; OLLAMA_HOST change l'adresse et le port d'écoute ; OLLAMA_KEEP_ALIVE fixe combien de temps un modèle reste en mémoire après un appel (5m par défaut, -1 pour ne jamais décharger, 0 pour libérer immédiatement). Cette dernière fait souvent la différence entre 30 secondes et 3 secondes de latence perçue.
En résumé
- Ollama est un service local écoutant par défaut sur
127.0.0.1:11434; tout appel, client ou script, passe par cette API HTTP. - Sur Windows utiliser
setx OLLAMA_MODELSpuis se reconnecter ; sur macOS ajouterlaunchctl setenven plus de~/.zshrc; sur Linux passer par unoverride.confsystemd. - Pour exposer Ollama à d'autres postes du réseau, définir
OLLAMA_HOST=0.0.0.0:11434— et prévoir dès maintenant l'authentification (module 8). - La commande
curl http://127.0.0.1:11434/api/tagsest le test de vie universel : elle valide à la fois l'installation et l'accès HTTP.
Module suivant : peupler cette installation avec les bons modèles, sans saturer le disque.