Si vous avez suivi la marche à suivre Installer Ollama en 10 minutes, vous avez déjà un modèle de langage local qui tourne sur du matériel que vous possédez. Bien. Le terminal suffit pour tester des prompts, mesurer les tokens/s et confirmer que la chose fonctionne. Il est inutilisable au quotidien. Vous ne collerez pas des conversations multi-tours dans une fenêtre shell pendant un mois et n’en ressortirez pas encore enthousiaste à l’idée d’une IA souveraine.
Ce que vous voulez, c’est ChatGPT. Plus précisément, vous voulez l’UX de ChatGPT — la barre latérale de conversations enregistrées, le sélecteur de modèle, les téléversements de fichiers, les belles bulles de chat — pointée sur votre modèle sur votre boîte. C’est exactement ce qu’est Open WebUI. C’est une interface web open source, sous licence MIT, qui a débuté comme « Ollama WebUI » et est devenue un frontend complet de classe ChatGPT. Tout crédit à Timothy J. Baek et aux contributeurs d’Open WebUI — ils ont fait le travail difficile pour que les plebs comme nous obtiennent un produit soigné au prix d’une seule commande Docker.
À la fin de ce billet, vous aurez : une interface de clavardage dans le navigateur, des comptes multi-utilisateurs pour la maisonnée, l’historique des conversations, un sélecteur de modèle qui liste chaque modèle qu’Ollama a téléchargé, le téléversement de fichiers par glisser-déposer avec RAG sur vos documents, de la recherche web optionnelle, et (optionnellement) l’accessibilité depuis n’importe quel appareil, n’importe où, via Tailscale. Un ChatGPT privé, tournant sur votre Hashcenter, payé une seule fois.
Prérequis
Avant de lancer quoi que ce soit ci-dessous, assurez-vous d’avoir :
- Ollama qui tourne localement. Sinon, arrêtez-vous ici et faites d’abord l’installation d’Ollama en 10 minutes. Open WebUI est un frontend — il ne sert pas les modèles tout seul.
- Docker installé. Sous Linux :
curl -fsSL https://get.docker.com | shet c’est réglé. Sous macOS ou Windows : récupérez Docker Desktop depuis docker.com, installez-le, lancez-le une fois. Le projet Docker Engine (et le script d’installation maintenu par Docker Inc.) rend l’opération véritablement indolore — crédit à qui de droit. - 4 Go de RAM libre. Open WebUI lui-même est léger. Le gros du travail GPU-et-VRAM se passe dans Ollama; le conteneur WebUI n’est qu’une app Python/Node qui balade du JSON.
- Facultatif : Tailscale. Si vous voulez joindre la chose depuis votre téléphone au café sans ouvrir de ports sur votre routeur, installez Tailscale sur l’hôte du Hashcenter. Nous couvrons cela en fin de billet. (Brief Tailscale adapté aux plebs dans notre marche à suivre Du S19 à votre premier Hashcenter IA — cherchez l’encadré Tailscale.)
C’est tout. Pas de venv Python, pas de npm, pas d’étape de build frontend. Docker s’occupe de tout.
Étape 1 — Installer via Docker (~2 minutes)
Voici la commande canonique tirée de la doc d’Open WebUI. Copiez, collez, exécutez :
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
Ce que chaque drapeau fait, en langage clair :
-d— exécuter en détaché (en arrière-plan).-p 3000:8080— mapper le port 3000 de l’hôte sur le port 8080 du conteneur. Vous accéderez à l’UI àhttp://<hôte>:3000.--add-host=host.docker.internal:host-gateway— c’est la ligne magique. Elle permet au conteneur de rejoindre Ollama sur la machine hôte àhttp://host.docker.internal:11434. Sans elle, le conteneur ne trouve pas vos modèles.-v open-webui:/app/backend/data— volume persistant pour les comptes utilisateurs, l’historique de clavardage, les paramètres et les documents téléversés. Survit aux redémarrages et aux mises à niveau du conteneur.--name open-webui— nom lisible pour ne pas avoir à retenir le hash.--restart always— redémarre automatiquement après un reboot. C’est un service du quotidien, traitez-le comme tel.ghcr.io/open-webui/open-webui:main— l’image. Téléchargée depuis GitHub Container Registry.
Variante : image avec Ollama inclus. Si vous avez sauté l’installation séparée d’Ollama et voulez un seul conteneur qui fait les deux, il y a ghcr.io/open-webui/open-webui:ollama. Il inclut Ollama dans le même conteneur. Plus simple pour un pleb qui débute; moins flexible si vous voulez faire tourner Ollama comme service système (recommandé pour la production). Choisissez l’un, pas les deux.
Vérifiez que le conteneur est vivant :
docker ps
Vous devriez voir open-webui dans la liste, statut Up, port 0.0.0.0:3000->8080/tcp.
Si vous ne voyez rien, consultez docker logs open-webui pour les erreurs. Le problème le plus fréquent au premier lancement est que le port est déjà pris — changez -p 3000:8080 pour -p 3001:8080 ou similaire.
Étape 2 — Configuration au premier lancement
Ouvrez un navigateur. Allez à http://localhost:3000 si vous êtes sur la même boîte. Si le Hashcenter est un serveur sans tête sur votre LAN, utilisez http://<ip-serveur>:3000 depuis votre portable.
Vous arriverez sur un écran d’inscription. Créez le premier compte soigneusement — le premier utilisateur créé est automatiquement promu admin. C’est vous. Chaque inscription suivante est un utilisateur régulier par défaut (et vous pouvez désactiver les inscriptions une fois la maisonnée installée, depuis le panneau admin).
Une fois connecté, rendez-vous à Paramètres → Connexions. Open WebUI détecte automatiquement Ollama à http://host.docker.internal:11434. Vous devriez voir une coche verte et la liste de vos modèles installés. Si elle est rouge, le drapeau --add-host de la commande Docker n’a pas pris — détruisez le conteneur (docker rm -f open-webui) et rejouez l’étape 1 à l’identique.
Étape 3 — Première conversation
Cliquez sur Nouveau clavardage. En haut de la vue de clavardage, il y a un sélecteur de modèle. Il liste chaque modèle que vous avez téléchargé via ollama pull. Si vous avez suivi le billet d’installation d’Ollama, vous avez probablement déjà llama3.1:8b ou gemma3:4b. Choisissez-en un.
Tapez un prompt. Appuyez sur entrée. Regardez la réponse défiler.
Open WebUI affiche les tokens/s dans le pied de réponse — utile pour savoir quels modèles votre matériel fait tourner confortablement. Un modèle 8B sur une 3090 devrait tomber autour de 60–80 tokens/s; le même modèle en CPU seul rampera à 4–8. Les chiffres vous disent quels modèles sont candidats au quotidien et lesquels sont pour la démo.
Chaque conversation que vous avez s’enregistre automatiquement dans la barre latérale gauche. Renommer, supprimer, épingler, chercher — tout est là.
Multi-utilisateurs — partagez le Hashcenter avec la maisonnée
C’est là que ça devient bon. Un seul abonnement ChatGPT Plus, c’est environ 20 $/mois, un utilisateur. Un plan famille ChatGPT coûte davantage. Vous avez déjà payé votre matériel. Pourquoi ne pas laisser tout le monde sous votre toit s’en servir ?
Allez à Panneau admin → Utilisateurs → Ajouter un utilisateur. Ajoutez votre conjoint, vos enfants, le colocataire, la belle-famille de passage qui voulait essayer ce truc d’IA. Chaque utilisateur obtient :
- Son propre login
- Son propre historique de clavardage (pleinement isolé — personne ne voit les conversations d’autrui)
- Ses propres paramètres
En tant qu’admin, vous pouvez cadrer l’accès aux modèles par rôle d’utilisateur. Vous voulez que les enfants soient limités à un petit modèle sécuritaire ? Réglez-le au niveau du rôle. Vous voulez que les invités aient un compte temporaire avec un seul modèle ? Faisable aussi.
L’angle de la souveraineté : votre maisonnée opère maintenant une seule instance de LLM, sur du matériel que vous possédez, dans un immeuble dont vous payez l’électricité, et aucun prompt — y compris les très bizarres que votre adolescent va taper — ne quitte votre LAN. C’est un substitut discret à l’abonnement famille des labos de pointe, et il s’améliore chaque fois que vous téléchargez un nouveau modèle.
Intégration de la recherche web (facultatif)
La configuration de base est géniale pour clavarder avec un modèle qui sait tout jusqu’à sa date de coupure d’entraînement. Elle ne peut pas « voir ce qui s’est passé la semaine dernière ». Open WebUI corrige cela avec une intégration de recherche web.
Allez à Paramètres → Recherche web. Vous verrez une liste de backends pris en charge :
- SearXNG — moteur méta-recherche auto-hébergé. L’option souveraine. Un fichier Docker Compose, pointez Open WebUI dessus, c’est fait. C’est ce que nous recommandons aux plebs.
- Google PSE, Bing, Brave — API commerciales. Il vous faudra une clé d’API et une relation de facturation avec Google/Microsoft/Brave. Rapide, fiable, pas souverain.
- DuckDuckGo — fonctionne sans clé, mais agressivement limité en débit.
SearXNG est une belle pièce d’infrastructure open source (grand merci aux mainteneurs du projet SearXNG). Il agrège les résultats de dizaines de moteurs de recherche sans envoyer vos requêtes directement à l’un d’entre eux. Opérez-le localement, et votre Open WebUI peut citer de l’information en direct sans livrer votre historique de questions à un seul fournisseur commercial.
Flux sommaire pour le chemin SearXNG :
docker run -d --name searxng -p 8888:8080 searxng/searxng- Dans Open WebUI, Paramètres → Recherche web → SearXNG, URL
http://host.docker.internal:8888/search?q=<query>&format=json. - Activez « Recherche web » dans le composeur de clavardage. Maintenant votre modèle peut répondre à « à combien BTC a clôturé hier » en allant vraiment le chercher.
Le durcissement complet de SearXNG (settings.yml, limitation de débit, quels moteurs activer) dépasse ce billet — la doc de SearXNG le couvre bien.
RAG sur les documents locaux
RAG — Retrieval-Augmented Generation — ça sonne comme du jargon. En langage clair : plutôt que de bourrer un PDF entier dans le prompt, le système découpe vos documents en morceaux, les indexe et, au moment de la requête, ne va chercher que les morceaux pertinents à votre question. Le modèle voit un contexte court et ciblé au lieu d’un livre de 500 pages. Vous obtenez des réponses rapides, précises et appuyées sur du matériel que le modèle n’a jamais entraîné.
Open WebUI intègre le RAG. Pour l’utiliser :
- Dans n’importe quel clavardage, cliquez sur l’icône + dans le composeur. Choisissez un fichier. PDF, DOCX, TXT, MD — tout est pris en charge.
- Posez une question sur le document. Exemple : « Résume la section sur les profils de puissance. »
- Le modèle répond avec des citations qui pointent vers le fichier téléversé.
Pour le pleb hardcore : le modèle d’embedding par défaut est correct mais biaisé anglais. Pour de meilleurs résultats, allez à Paramètres → Documents → Modèle d’embedding et pointez vers nomic-embed-text (libre, ouvert, excellent — téléchargez-le d’abord via ollama pull nomic-embed-text). Vos documents sont découpés et indexés avec ce modèle d’embedding, conservés dans le volume Open WebUI, et ne quittent jamais votre machine. Pour aller plus loin, le magasin vectoriel par défaut est interchangeable contre pgvector ou similaire — crédit à l’équipe pgvector et à l’écosystème Postgres plus large qui rend la recherche vectorielle locale si accessible.
Le gain en vie privée est énorme. Vous pouvez téléverser des documents fiscaux, des PDF juridiques, des dossiers médicaux, des documents d’entreprise internes — du matériel que vous ne colleriez jamais dans l’UI web d’un modèle de pointe — et les interroger avec un modèle local capable. Les documents ne quittent jamais le LAN.
Outils et fonctions (brièvement)
Open WebUI possède un système d’outils : de petits scripts Python que le modèle peut appeler pendant une conversation. Consultations météo, calculatrices, récupérateurs web, contrôle de Home Assistant, commandes shell — tout ce que vous pouvez écrire en Python.
Il existe un registre communautaire d’outils. Passez en revue chaque outil avant de l’installer — un outil exécute du code sur votre serveur. Ne collez pas n’importe quoi venu d’Internet dans un panneau admin qui est branché pour appeler Python sur votre Hashcenter. C’est du territoire de pleb-puissance; commencez par lire la doc des outils Open WebUI, puis écrivez vous-même un outil hello world, puis, peut-être, installez quelque chose venu de la communauté.
Un exemple petit mais utile est de brancher Open WebUI sur Home Assistant pour pouvoir demander « éteins la chaufferette du garage » et que le LLM le fasse vraiment. Nous parcourrons ce branchement de bout en bout dans le prochain billet Connectez l’IA à Home Assistant + Obsidian.
Exposition via Tailscale (accès de niveau LAN depuis n’importe où)
Vous avez maintenant un ChatGPT privé sur votre Hashcenter. Il fonctionne à merveille sur votre LAN. Mais vous sortez de la maison. Votre téléphone ne peut pas joindre 192.168.1.50:3000 depuis un café.
La réponse bête, c’est de rediriger le port 3000 vers Internet. Ne faites pas ça. Vous exposeriez votre serveur LLM et tout son historique de clavardage à chaque bot de Shodan.
La bonne réponse, c’est Tailscale — un VPN en maille qui donne à chaque appareil de votre compte une IP privée sur un réseau WireGuard. Installez Tailscale sur l’hôte du Hashcenter et sur votre téléphone, tous deux connectés au même compte, et votre téléphone peut désormais joindre le Hashcenter comme à la maison — sauf que le trafic est un tunnel WireGuard chiffré de bout en bout, et aucun port n’est ouvert sur votre routeur.
Étapes sommaires :
- Sur le Hashcenter :
curl -fsSL https://tailscale.com/install.sh | shpuissudo tailscale up. - Notez le nom d’hôte attribué par Tailscale, quelque chose comme
hashcenter.tailnet-name.ts.net. - Installez l’app Tailscale sur votre téléphone, connectez-vous.
- Naviguez à
http://hashcenter.tailnet-name.ts.net:3000. ChatGPT privé, dans votre poche, partout.
Posture de sécurité : le système de comptes d’Open WebUI gère l’authentification (utilisez un vrai mot de passe), Tailscale gère l’accès au niveau réseau (seuls les appareils de votre tailnet peuvent même joindre le port 3000). Ceinture et bretelles. L’équipe de Tailscale et le projet WireGuard méritent tous deux du crédit ici — ils ont rendu cette opération ennuyeuse et en une commande aussi banale qu’elle l’est aujourd’hui.
Clôture de la souveraineté : votre LLM vous suit maintenant comme une app infonuagique — sauf que c’est votre nuage, sur une maille que vous contrôlez, sur du matériel que vous possédez. Aucun fournisseur ne peut couper votre accès, augmenter les prix ou changer les conditions d’utilisation du modèle que vous employez.
Où s’inscrit le Hashcenter
Tout ce qui précède est trivial sur un simple poste de bureau avec un GPU décent. C’est mieux sur un serveur dédié. C’est élégant dans un Hashcenter monté en cabanon, où le matériel DCENT gère puissance, thermique et supervision dans la même baie que le GPU qui fait l’inférence. La même boîte qui chauffe votre garage l’hiver sert aussi ChatGPT à votre maisonnée. C’est ce qu’on veut dire par Hashcenter IA — compute et chaleur comme un seul produit, orchestrés par du matériel souverain et du logiciel souverain.
(Rappel : tous les produits DCENT sont en bêta fermée, GPL-3.0, bêta publique visée pour l’été 2026. Nous ne vous vendons pas un miracle; nous le bâtissons à ciel ouvert.)
Pour la visite complète de l’architecture, voyez Chauffer votre maison à l’inférence et Du S19 à votre premier Hashcenter IA. Pour quand toute la pile fait des siennes — et elle en fera — le prochain Dépannage d’IA auto-hébergée couvrira les modes de panne courants. Et si vous pesez vos options de backend, LM Studio vs Ollama vs llama.cpp mérite une lecture avant de vous engager à long terme.
Pour conclure
Comptons ce que vous venez de bâtir :
- UX de classe ChatGPT dans le navigateur
- Comptes multi-utilisateurs avec historique de clavardage isolé
- RAG sur vos documents privés, avec embeddings locaux
- Recherche web auto-hébergée en option
- Accès distant en option depuis n’importe où via Tailscale
- Zéro prompt quittant votre LAN, à moins que vous activiez la recherche web
L’abonnement que vous pouvez maintenant annuler a une valeur en dollars, et vous pouvez y mettre un chiffre. La souveraineté — le fait que personne d’autre ne journalise les questions de votre maisonnée, que personne ne peut changer les conditions sur vous, que personne ne peut rendre obsolète le modèle sur lequel vous vous êtes mis à compter — a une autre forme de valeur, et elle n’a pas de prix mensuel.
Vous faites maintenant tourner une couche de plus de votre vie numérique sur votre propre infrastructure. C’est tout le propos.
Continuez :
- Le Guide du pleb pour l’IA auto-hébergée — la vue d’ensemble de l’emboîtement
- L’IA souveraine pour les Bitcoiners : un manifeste — le pourquoi, dit simplement
Ressources externes
- openwebui.com — site du projet
- github.com/open-webui/open-webui — sources
- docs.openwebui.com — doc officielle
- searxng.github.io — recherche auto-hébergée
- tailscale.com — VPN en maille



