gringao.
Le journal de
ToutEtRien
Le carnet · 14 septembre 2026

Open WebUI et Ollama : une interface de chat locale avec Docker

Intermédiaire · Série IA pratique · Documentation consultée le 14 septembre 2026. Les commandes sont des exemples à adapter à ta version et à ton matériel ; aucun benchmark matériel n’est revendiqué.

Déployer une interface Open WebUI reliée à Ollama, conserver ses données et vérifier une installation Docker limitée à la machine locale.

Après le terminal, voici une interface de conversation dans le navigateur. Cet atelier utilise un conteneur Open WebUI incluant Ollama, en mode CPU pour limiter les prérequis. Il crée une instance distincte : les modèles déjà installés sur ton ordinateur ne seront pas automatiquement réutilisés.

Navigateur: Affiche les conversations → Open WebUI: Gère l’interface et ses données → Ollama: Reçoit la demande via son API → Modèle local: Produit la réponse transmise à l’interface. Depuis un conteneur, localhost désigne ce conteneur, pas automatiquement l’hôte.
Navigateur: Affiche les conversations → Open WebUI: Gère l’interface et ses données → Ollama: Reçoit la demande via son API → Modèle local: Produit la réponse transmise à l’interface. Depuis un conteneur, localhost désigne ce conteneur, pas automatiquement l’hôte. — Agrandir le schéma

Préparer un dossier de travail

Il faut Docker avec Compose et la possibilité d’exécuter des conteneurs Linux. Vérifie docker version et docker compose version. Crée un dossier vide pour cet atelier. Dans un fichier .env, renseigne une clé aléatoire et l’image :

WEBUI_SECRET_KEY=REMPLACER_PAR_UN_SECRET_ALEATOIRE
OPEN_WEBUI_IMAGE=ghcr.io/open-webui/open-webui:ollama

Avec Python installé, python -c "import secrets; print(secrets.token_hex(32))" génère une valeur à copier dans le champ du secret. Garde ce fichier privé et conserve la même clé lors des redémarrages. Le tag ci-dessus évolue ; après validation, relève le digest de l’image et remplace sa valeur par la référence avec digest pour figer l’installation.

Créer compose.yaml

services:
  chat:
    image: ${OPEN_WEBUI_IMAGE:?Définir OPEN_WEBUI_IMAGE dans .env}
    ports:
      - "127.0.0.1:3000:8080"
    environment:
      WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY:?Définir WEBUI_SECRET_KEY dans .env}
    volumes:
      - chat-data:/app/backend/data
      - model-data:/root/.ollama
    restart: unless-stopped
volumes:
  chat-data:
  model-data:

Les volumes conservent les données de l’interface et les modèles. Seul le port de l’interface est publié, sur la boucle locale. Ne remplace pas cette adresse par une ouverture réseau sans prévoir l’accès et l’authentification. L’installation officielle Open WebUI décrit l’image avec Ollama et les volumes utilisés.

Démarrer et charger un modèle

docker compose up -d
docker compose ps
docker compose exec chat ollama pull llama3.2:3b

Ouvre http://localhost:3000 et termine la création du compte initial. Choisis le modèle téléchargé pour lancer un échange. Si l’écran ne répond pas immédiatement, consulte docker compose logs --tail=80 chat : le premier démarrage peut encore effectuer des téléchargements.

Vérifier puis conserver une trace

Envoie une question simple, redémarre avec docker compose restart, puis retrouve la conversation. Vérifie aussi que le port affiché par Compose commence par 127.0.0.1. Pour relever le digest : docker image inspect ghcr.io/open-webui/open-webui:ollama --format '{{index .RepoDigests 0}}'. Copie le résultat dans OPEN_WEBUI_IMAGE après ton essai.

Avant une mise à jour

Arrête les écritures, sauvegarde les volumes et le fichier de configuration, puis teste la nouvelle version avec une copie des données. Revenir à une ancienne image ne suffit pas toujours si la base a changé de format. Pour arrêter cet atelier, utilise docker compose stop. Évite down -v si tu veux conserver conversations et modèles. L’accélération GPU demande une configuration supplémentaire, volontairement hors de ce premier atelier.