Open WebUI : interface ChatGPT-like pour Ollama
Open WebUI Ollama est aujourd'hui la combinaison la plus pratique pour disposer d'une interface façon ChatGPT sur sa propre machine, sans dépendance cloud. Cette pile pure self-host transforme votre serveur Ollama en application web multi-utilisateurs, avec historique de conversations, gestion de modèles et RAG documentaire. Ce guide détaille l'installation de Open WebUI Ollama via Docker, la configuration réseau, les modèles compatibles selon votre VRAM, les fonctionnalités avancées (RAG, multi-utilisateurs, MCP) et les limites à connaître avant un déploiement en production interne.
Qu'est-ce que Open WebUI et pourquoi l'associer à Ollama
Open WebUI (anciennement Ollama WebUI) est un front-end open-source écrit en SvelteKit + FastAPI, publié sous licence BSD-3 sur github.com/open-webui/open-webui. Il expose une interface conversationnelle équivalente à ChatGPT, mais brancée sur un backend d'inférence local. Ollama joue ce rôle de backend : un démon qui charge des modèles GGUF quantifiés et expose une API HTTP compatible OpenAI sur le port 11434.
L'association des deux donne une interface LLM local complète :
- Frontend : Open WebUI sur le port 8080 (chat, historique, prompts système, fonctions Python)
- Backend : Ollama sur le port 11434 (gestion mémoire GPU, quantification, streaming)
- Stockage : SQLite ou PostgreSQL pour les conversations et embeddings
Contrairement à LM Studio qui est mono-utilisateur et desktop-only, Open WebUI gère les comptes, les groupes, les permissions par modèle et un mode RAG avec base vectorielle ChromaDB intégrée. C'est l'option à privilégier pour partager un serveur d'inférence entre plusieurs collaborateurs.
Installation via Docker : la méthode recommandée
L'installation WebUI Docker est la voie supportée par l'équipe Open WebUI. Elle évite les conflits de dépendances Python et permet des mises à jour atomiques.
Prérequis :
- Docker 24+ et Docker Compose v2
- Ollama installé sur l'hôte ou conteneurisé (voir ollama.com/download)
- GPU NVIDIA avec drivers ≥ 535 et nvidia-container-toolkit, ou CPU pour les petits modèles
Commande minimale (Ollama déjà installé sur l'hôte) :
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
L'interface est ensuite accessible sur http://localhost:3000. Le premier compte créé est automatiquement promu administrateur.
Stack docker-compose tout-en-un (Ollama + WebUI + GPU NVIDIA) : voir le fichier de référence sur docs.openwebui.com/getting-started/quick-start. Le service ollama doit monter un volume persistant /root/.ollama pour conserver les modèles téléchargés entre redémarrages, sinon vous re-téléchargerez plusieurs centaines de gigaoctets à chaque docker compose down.
Pour AMD ROCm, utilisez l'image ghcr.io/open-webui/open-webui:main couplée à ollama/ollama:rocm. Les performances sur RX 7900 XTX sont approximativement 70-80 % d'une RTX 4090 en Q4_K_M (chiffre estimé, dépend du modèle).
Choisir le modèle adapté à votre matériel
Open WebUI affiche tous les modèles présents dans le registre Ollama local. Le facteur limitant reste la VRAM. Voici trois paliers cohérents avec le matériel grand public et pro.
Une RTX 4090 (24 GB de VRAM) convient pour les modèles 30-70B en Q4 avec offload partiel CPU :
- Qwen 2.5 72B Instruct (72B, Qwen License) — VRAM Q4 ~42 GB, ctx 131072. Nécessite offload CPU ou seconde carte.
- Llama 3.3 70B Instruct (70B, Llama 3.3 Community) — VRAM Q4 ~40 GB. Idem, offload requis.
- DeepSeek R1 Distill Llama 70B — bonnes performances en raisonnement, score MMLU compétitif avec les meilleurs 70B (à confirmer selon version).
Un workstation 2× RTX 6000 Ada (96 GB total) permet de viser les MoE compacts :
- gpt-oss 120B (117B, Apache 2.0, OpenAI) — VRAM Q4 ~70 GB, ctx 128000. Modèle ouvert d'OpenAI, intégration Ollama native.
- Mistral Small 4 (119B, Apache 2.0) — ctx 256000, excellent compromis francophone.
- Qwen 3.5 122B-A10B — MoE actif 10B, latence très basse pour la taille.
Un serveur 8× H100 (640 GB) ou cluster ouvre la porte aux frontières :
- DeepSeek V3.2 (685B, MIT) — VRAM Q4 ~410 GB
- Kimi K2.6 (1000B, Modified MIT) — VRAM Q4 ~600 GB, ctx 256000
- DeepSeek V4 Pro 1.6T — frontier MoE, contexte 1M tokens
Pour un dimensionnement précis selon votre carte, utilisez le configurateur de quelllm.fr qui croise VRAM disponible, quantification souhaitée et longueur de contexte cible.
Fonctionnalités avancées : RAG, fonctions, MCP
Open WebUI dépasse le simple chat. Trois capacités méritent d'être configurées dès l'installation.
Le RAG intégré : déposez des PDF, DOCX, TXT ou URLs dans une « Collection ». Open WebUI les découpe (chunk size par défaut 1500, overlap 100), génère des embeddings via sentence-transformers/all-MiniLM-L6-v2 localement ou via Ollama (nomic-embed-text), et stocke dans ChromaDB. À l'inférence, les chunks pertinents sont injectés dans le contexte. Pour des bases volumineuses, basculez sur PostgreSQL + pgvector via la variable VECTOR_DB=pgvector.
Les fonctions Python (Pipelines) : Open WebUI permet d'exécuter du code arbitraire en pré ou post-traitement. Exemple : router automatiquement les prompts contenant « code » vers Qwen3-Coder-Next 80B-A3B, et les autres vers Mistral Medium 3.5 128B. Les pipelines tournent dans un conteneur séparé sur le port 9099, isolation utile pour la sécurité.
Le support MCP (Model Context Protocol) : depuis la version 0.6, Open WebUI consomme les serveurs MCP. Voir la spec officielle pour les serveurs disponibles (filesystem, GitHub, Postgres, etc.).
Comparaison détaillée des frontends sur quelllm.fr/compare/open-webui-vs-lm-studio.
Performances et tokens/seconde observés
Les débits dépendent du couple modèle/GPU. Quelques mesures de référence avec Ollama 0.5+ et Open WebUI 0.6+ en Q4_K_M :
- Llama 3.1 70B sur 2× RTX 4090 (tensor parallelism Ollama experimental) : environ 18-22 tokens/s en génération (estimé)
- gpt-oss 120B sur H100 80GB : 60-80 tokens/s (à confirmer selon offload)
- Qwen 3 235B-A22B sur 4× A100 80GB : 45-55 tokens/s grâce à l'architecture MoE qui n'active que 22B
Le streaming WebSocket de Open WebUI ajoute une latence imperceptible (<10 ms). Le goulot reste l'inférence elle-même. Pour optimiser, activez OLLAMA_FLASH_ATTENTION=1 et OLLAMA_KV_CACHE_TYPE=q8_0 dans l'environnement du conteneur Ollama : gain mémoire de 30-40 % sur le contexte (voir github.com/ollama/ollama/blob/main/docs/faq.md).
Pour les modèles de raisonnement comme DeepSeek R1 671B, prévoyez 3 à 10× plus de tokens générés par requête (chain-of-thought interne), donc des temps de réponse de plusieurs minutes même sur infrastructure musclée.
Sécurité et déploiement multi-utilisateurs
En entreprise, trois précautions s'imposent :
- Reverse proxy TLS : placez Traefik ou Caddy devant Open WebUI. Le port 8080 par défaut n'a aucun chiffrement.
- Authentification SSO : Open WebUI supporte OIDC (Keycloak, Authentik) via les variables
OAUTH_*. Désactivez la création de compte ouverte avecENABLE_SIGNUP=false. - RBAC par modèle : depuis l'interface admin, restreignez les modèles lourds (>40 GB VRAM) aux groupes seniors pour éviter qu'un utilisateur ne sature la file d'attente.
Auditez régulièrement les logs /app/backend/data/audit.log qui tracent les prompts et téléversements.
FAQ
Q : Open WebUI fonctionne-t-il sans Ollama ?
Oui. Open WebUI accepte toute API compatible OpenAI : vLLM, llama.cpp server, LiteLLM, TGI. Configurez l'URL dans Paramètres → Connexions. Ollama reste la voie la plus simple pour démarrer car sa CLI gère le téléchargement, la quantification GGUF et la mémoire automatiquement. Pour un déploiement haute performance avec tensor parallelism mature, vLLM ou SGLang sont préférables.
Q : Quelle taille de VRAM minimale pour démarrer ?
Avec 8 GB de VRAM (RTX 3060, 4060), tournez confortablement des modèles 7-8B comme variantes distillées légères. Pour 12-16 GB, visez les 13-14B. La règle empirique : VRAM ≈ paramètres × 0,6 en Q4_K_M, plus 1-2 GB pour le contexte 8K. Voir quelllm.fr/guide/vram-quantification pour le détail par quantification (Q4, Q5, Q8, FP16).
Q : Comment installer Open WebUI sans Docker ?
Via pip install open-webui puis open-webui serve. Cette méthode est documentée mais moins isolée : conflits possibles avec d'autres environnements Python, mises à jour plus délicates. Réservez-la aux machines de développement. Pour un poste de travail mono-utilisateur, LM Studio ou Jan peuvent être plus simples ; comparez sur quelllm.fr/compare/lm-studio-vs-jan.
Q : Peut-on connecter Open WebUI à plusieurs serveurs Ollama ?
Oui. Dans Paramètres → Connexions, ajoutez plusieurs URLs Ollama (ex. http://gpu-01:11434, http://gpu-02:11434). Open WebUI agrège les modèles disponibles. Le routage est manuel (l'utilisateur choisit le modèle) ; pour un load balancing automatique, intercalez LiteLLM en proxy. Utile pour répartir Mixtral 8x22B Instruct sur un nœud et Llama 3.1 405B Instruct sur un autre.
Q : Les conversations sont-elles chiffrées au repos ?
Non par défaut. La base SQLite /app/backend/data/webui.db stocke les messages en clair. Pour le chiffrement au repos, utilisez un volume Docker sur un système de fichiers chiffré (LUKS, ZFS native encryption) ou migrez vers PostgreSQL avec Transparent Data Encryption. Le trafic réseau, lui, peut être chiffré via le reverse proxy TLS mentionné plus haut.
Q : Open WebUI supporte-t-il la vision et les images ?
Oui, avec les modèles multimodaux. Téléversez une image dans la conversation : Open WebUI l'encode en base64 et la transmet à Ollama si le modèle supporte la modalité vision. Modèles compatibles dans le catalogue : Qwen 2.5 VL 72B, Qwen 3 VL 235B-A22B, LLaVA-OneVision 72B et Molmo 72B.
Conclusion
Open WebUI Ollama constitue la pile de référence pour servir une interface ChatGPT-like en self-host, du laptop au cluster GPU. L'installation Docker prend quinze minutes, la configuration RBAC et RAG s'ajoute en quelques heures. Le choix du modèle reste le facteur déterminant : alignez précisément paramètres, quantification et VRAM disponible. Pour explorer les 249 modèles indexés selon vos contraintes matérielles, parcourez le catalogue complet de quelllm.fr ou laissez le configurateur recommander le couple modèle/quantification optimal pour votre GPU.