Installer Ollama & Open WebUI avec Docker : LLM Local pour PME
À l’ère de l’intelligence artificielle générative, la dépendance aux API tierces comme OpenAI, Anthropic ou Google présente des risques majeurs pour les entreprises. Hausse imprévisible des coûts d'abonnement, modifications unilatérales des conditions d'utilisation, et surtout, fuite de données stratégiques. Pour une Petite ou Moyenne Entreprise (PME), envoyer des données clients, des rapports financiers ou du code source propriétaire sur des serveurs cloud étrangers est une faille de confidentialité critique.
Heureusement, l'écosystème open-source a radicalement évolué. Aujourd’hui, il est tout à fait possible de faire tourner des modèles de langage (LLM) extrêmement performants (comme Llama 3, Mistral ou Phi-3) directement sur votre propre infrastructure.
Ce guide complet vous explique pas à pas comment déployer Ollama et Open WebUI à l'aide de Docker. En combinant ces technologies, vous offrirez à vos équipes une alternative souveraine, gratuite, sans abonnement, et accessible via une interface web identique à celle de ChatGPT.
1. Pourquoi l'auto-hébergement des LLM est l'avenir des PME ?
L’adoption de l’IA ne doit pas se faire au détriment de la souveraineté technologique. L'auto-hébergement (on-premise ou sur serveur privé dédié) répond à trois enjeux fondamentaux pour le tissu économique actuel :
Confidentialité absolue et RGPD
Lorsque vous utilisez un service Cloud standard, vos invites (prompts) et vos documents peuvent être utilisés pour réentraîner les modèles futurs. En local, aucune donnée ne quitte votre réseau. Cela garantit une conformité native avec le RGPD et protège le secret des affaires.
Maîtrise des coûts à long terme
Les modèles économiques au jeton (tokens) des API Cloud peuvent rapidement devenir un gouffre financier si vos employés automatisent des tâches à grande échelle. Avec une infrastructure locale, votre seul coût est l'électricité et l'amortissement du matériel. Le coût marginal d'une requête tombe à zéro.
Indépendance technologique et résilience
Pas de panne de réseau externe qui bloque vos applications, pas de changement de politique tarifaire soudain. Vous êtes propriétaire de votre outil de production intellectuelle. C'est un pilier central pour toute stratégie d'automatisation PME visant à pérenniser les processus métiers sans dépendre de géants du SaaS.
2. Comprendre l'architecture de la solution
Avant de passer à la pratique, comprenons le rôle des deux composants principaux que nous allons installer :
- Ollama : C'est le moteur, le "back-end". Il s'occupe de gérer le cycle de vie des modèles, de charger les poids en mémoire (RAM/VRAM) et d'exécuter les calculs de manière optimisée selon votre matériel (CPU ou GPU). Il expose une API locale très légère.
- Open WebUI : C'est l'interface utilisateur, le "front-end". Visuellement très proche de ChatGPT, il se connecte à Ollama et permet de gérer des discussions, de téléverser des documents pour faire du RAG (Retrieval-Augmented Generation), de gérer des comptes utilisateurs et de personnaliser des invites système.
En encapsulant ces deux outils dans Docker, nous garantissons une installation propre, isolée du système hôte, et facilement transposable d'un serveur à un autre.
3. Prérequis matériels et logiciels
Pour faire tourner des LLM en local de manière fluide, le choix du matériel est crucial. Bien qu'Ollama puisse fonctionner uniquement sur CPU, l'utilisation d'une carte graphique (GPU) est fortement recommandée pour obtenir une vitesse de génération acceptable (mesurée en tokens par seconde).
Recommandations Matérielles
| Composant | Configuration Minimale (Modèles 3B à 8B) | Configuration Recommandée (Modèles 8B à 70B) |
|---|---|---|
| Processeur (CPU) | Intel Core i5 / AMD Ryzen 5 (Moins de 4 ans) | Intel Xeon / AMD EPYC / Ryzen 9 |
| Mémoire RAM | 16 Go DDR4 / DDR5 | 32 Go à 64 Go DDR5 |
| Carte Graphique (GPU) | Nvidia GTX 1080 / RTX 3060 (6 Go VRAM minimum) | Nvidia RTX 4090 ou GPU Pro (A100/H100) (24 Go+ VRAM) |
| Stockage | 50 Go d'espace libre sur SSD NVMe | 500 Go+ SSD NVMe (les modèles sont lourds) |
Note pour les utilisateurs Mac : Les puces Apple Silicon (M1, M2, M3, M4) disposent d'une mémoire unifiée d'une efficacité redoutable pour les LLM. Si vous êtes sur Mac, Ollama exploitera directement la puissance du processeur graphique intégré.
Prérequis Logiciels
- Un système d'exploitation basé sur Linux (Ubuntu, Debian, Arch Linux) ou Windows 11 avec WSL2.
- Docker installé et configuré (version 24.0 ou supérieure).
- Docker Compose (souvent inclus avec Docker Desktop ou installable via
docker-compose-plugin). - Pour les systèmes avec GPU Nvidia : Les pilotes Nvidia officiels à jour et le NVIDIA Container Toolkit installé.
4. Étape 1 : Préparation de l'environnement Linux et GPU (Optionnel mais recommandé)
Si vous disposez d'une carte graphique NVIDIA, vous devez impérativement permettre à Docker d'accéder au GPU sous-jacent. Sans cela, vos conteneurs n'utiliseront que le processeur (CPU), ralentissant la vitesse d'exécution de l'IA par 10 ou 20.
Sur Ubuntu/Debian, exécutez les commandes suivantes pour installer le kit d'outils d'exécution Nvidia pour Docker :
# Configuration des dépôts
curl -fsSL [https://nvidia.github.io/libnvidia-container/gpgkey](https://nvidia.github.io/libnvidia-container/gpgkey) | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L [https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list](https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list) | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
## Mise à jour et installation
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Redémarrage du démon Docker pour appliquer les changements
sudo systemctl restart docker
FAQ : Tout savoir sur les agents IA
Mes données ou mes prompts sont-ils envoyés à des serveurs externes avec Ollama ?
Non, absolument aucune donnée ne quitte votre machine. Lorsque vous exécutez Ollama et Open WebUI en local, le traitement du texte, l'analyse des documents (RAG) et la génération des réponses se font à 100 % sur l'infrastructure de votre PME (votre processeur ou votre carte graphique). Même si vous débranchez votre câble Ethernet ou coupez votre connexion internet, le système continuera de fonctionner parfaitement. Vos secrets industriels et vos données clients restent souverains.
Pourquoi mon LLM local est-il si lent à répondre (faible débit de tokens) ?
La vitesse de génération dépend principalement de l'emplacement où le modèle est chargé en mémoire. Deux causes principales expliquent la lenteur :
1- Utilisation exclusive du CPU : Si vous n'avez pas de carte graphique (GPU) compatible ou que Docker n'y a pas accès, les calculs reposent sur le processeur et la mémoire RAM classique, qui sont structurellement beaucoup plus lents que la VRAM d'un GPU.
2- Dépassement de la VRAM : Si la taille du modèle choisi dépasse la mémoire vidéo de votre GPU, Ollama bascule une partie des calculs sur votre RAM système (bottleneck), ce qui ralentit considérablement l'exécution. Pour y remédier, privilégiez des modèles plus légers (ex: Llama 3.2:3b ou Mistral 7B).
Quelle est la différence entre Ollama et LM Studio pour faire tourner des IA ?
Réponse : Bien que les deux outils permettent d'exécuter des modèles open-source au format .gguf, ils répondent à des besoins différents :
1- Ollama est conçu comme un service d'arrière-plan léger (daemon), particulièrement optimisé pour l'automatisation, les architectures Docker, et l'intégration au sein des serveurs de PME.
2- LM Studio est une application logicielle de bureau "tout-en-un" dotée d'une interface graphique lourde, plus adaptée aux développeurs individuels ou aux tests rapides sur un poste de travail local qu'à un déploiement multi-utilisateur en entreprise.
Comment corriger l'erreur de connexion d'Open WebUI à Ollama sous Docker ?
Réponse : Cette erreur survient généralement lorsque le conteneur Open WebUI ne parvient pas à localiser l'API d'Ollama sur le réseau virtuel de Docker. Dans un fichier docker-compose.yml unifié, assurez-vous d'avoir correctement configuré la variable d'environnement : OLLAMA_BASE_URL=http://ollama:11434 Ici, ollama correspond au nom exact du service défini dans votre architecture Docker. Si les deux outils tournent sur des conteneurs séparés non liés, remplacez ollama par l'adresse IP de votre machine hôte (ex: http://192.168.1.X:11434) et assurez-vous d'avoir démarré Ollama avec la variable OLLAMA_HOST=0.0.0.0 pour autoriser les connexions réseau.
Comment persister et modifier l'emplacement de stockage des modèles téléchargés ?
Réponse : Par défaut, Docker stocke les modèles téléchargés à l'intérieur de volumes virtuels isolés. Pour modifier l'emplacement et stocker par exemple vos LLM (très lourds) sur un disque dur externe ou un SSD secondaire dédié à votre entreprise, il suffit de mapper un dossier local de votre choix dans la section volumes de votre service ollama :
volumes:
- /chemin/vers/votre/disque_rapide/models:/root/.ollama
Grâce à cette liaison directe, chaque exécution de ollama run écrira directement sur le support de stockage externe spécifié.