Pourquoi héberger Open WebUI sur un VPS plutôt qu'en local ?
L'hébergement local fonctionne pour les tests, mais présente des limites réelles en production : consommation de ressources machine, absence d'accès distant, aucune haute disponibilité. Un VPS résout ces problèmes : il tourne 24h/24, est accessible depuis n'importe quel appareil, et vous en avez le contrôle total.
La différence avec un service SaaS cloud est tout aussi nette. Un outil IA managé facture à l'usage, centralise vos conversations sur des serveurs tiers et impose les modèles disponibles. Open WebUI auto-hébergé supprime ces trois contraintes en même temps : vous payez le VPS, pas les requêtes, vos données restent sur votre machine, et vous choisissez le modèle qui vous convient.
Local, VPS ou SaaS : quelle solution pour Open WebUI ?
Faites défiler le tableau
| Critère | Machine locale | VPS dédié | SaaS cloud |
|---|---|---|---|
| Accès 24h/24 depuis n'importe où | Non | Oui | Oui |
| Données sur votre infrastructure | Oui | Oui | Non |
| Choix du modèle LLM | Libre | Libre | Limité à l'offre |
| Coût au-delà des ressources fixes | Nul | Nul | Facturation à l'usage |
| Multi-utilisateurs et rôles | Difficile | Oui (intégré) | Selon offre |
| Installation et maintenance | Manuelle | Manuelle ou Marketplace | Aucune |
Ce que vous pouvez faire avec Open WebUI
- Discuter avec des modèles locaux via Ollama (Mistral, LLaMA 3, Gemma, etc.) ou avec l'API OpenAI
- Gérer plusieurs modèles et passer de l'un à l'autre en un clic depuis une interface unifiée
- Créer et partager des assistants personnalisés avec des instructions système sur mesure
- Télécharger et analyser des documents (PDF, texte) directement dans le chat grâce au support RAG intégré
- Ouvrir l'accès à votre équipe avec un système de comptes utilisateurs et de rôles
- Consulter l'historique complet de vos conversations, stocké sur votre propre serveur
Prérequis
Open WebUI nécessite Docker pour fonctionner. Le modèle Ollama (si vous souhaitez faire tourner un LLM localement sur le serveur) est gourmand en RAM. Comptez au minimum 4 Go de RAM pour un modèle 7B, 8 Go pour un modèle 13B. Si vous utilisez uniquement les API externes (OpenAI, Anthropic), 2 Go de RAM suffisent pour l'interface.
Côté disque, les modèles Ollama pèsent entre 4 et 40 Go selon leur taille. Prévoyez un volume SSD avec au moins 20 Go libres si vous envisagez de télécharger un modèle 7B comme Mistral ou LLaMA 3.
Déploiement en 5 étapes
Préparer votre VPS
Commandez un VPS Cloud avec Ubuntu 22.04 LTS. Mettez à jour le système :
apt update && apt upgrade -yActivez le pare-feu UFW et autorisez les ports SSH (22), HTTP (80) et HTTPS (443) :
ufw allow 22 && ufw allow 80 && ufw allow 443 && ufw enableInstaller Docker
Installez Docker Engine via le dépôt officiel Docker. Ajoutez votre utilisateur au groupe docker pour éviter les commandes sudo répétées :
curl -fsSL https://get.docker.com | sh usermod -aG docker $USERVérifiez l'installation :
docker run hello-world.Démarrer Open WebUI
Récupérez l'image Docker officielle et lancez le conteneur en exposant le port 3000. Montez un volume pour persister les données entre les redémarrages :
docker run -d \ --name open-webui \ --restart always \ -p 3000:8080 \ -v open-webui:/app/backend/data \ -e WEBUI_SECRET_KEY=$(openssl rand -hex 32) \ ghcr.io/open-webui/open-webui:mainOpen WebUI est accessible sur
http://votre-ip:3000. La variableWEBUI_SECRET_KEYest générée ici à l'installation — notez sa valeur ou posez-la dans un fichier.envavant de relancer le conteneur.Configurer un reverse proxy (Nginx)
Installez Nginx et configurez un virtual host qui proxy les requêtes vers le port 3000 :
apt install -y nginx certbot python3-certbot-nginxCréez
/etc/nginx/sites-available/open-webuiavec :server { server_name votre-domaine.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }Activez le vhost et obtenez un certificat SSL Let's Encrypt :
certbot --nginx -d votre-domaine.com. Votre interface sera accessible en HTTPS sur votre domaine.Connecter vos modèles
Dans l'interface Open WebUI, configurez vos connexions API : Ollama local, OpenAI, Anthropic, ou tout autre fournisseur compatible. Pour démarrer Ollama sur le même VPS :
docker run -d \ --name ollama \ --restart always \ -v ollama:/root/.ollama \ -p 11434:11434 \ ollama/ollamaPuis téléchargez le modèle souhaité :
docker exec ollama ollama pull mistral. Dans les paramètres d'Open WebUI, l'URL Ollama esthttp://host.docker.internal:11434si les deux conteneurs sont sur le même hôte. Créez les accès utilisateurs selon vos besoins.
Le raccourci : installer depuis le Marketplace
Si votre VPS est un VPS Cloud ServOrbit, vous n'avez pas à dérouler les étapes ci-dessus. Depuis votre espace client, ouvrez le Marketplace dans le panneau de gestion du serveur, cherchez Open WebUI et confirmez l'installation : le conteneur et ses dépendances sont déployés pour vous. Il reste deux gestes, que personne ne peut faire à votre place — créer le compte administrateur à la première connexion (le premier compte créé prend ce rôle, ouvrez-le donc vous-même sans attendre) et déclarer votre source de modèles dans les paramètres d'administration. Comptez au moins 4 Go de RAM et 2 vCPU si vous faites tourner Ollama sur la même machine : l'interface est légère, ce sont les modèles qui pèsent. La voie manuelle garde son intérêt dès que vous voulez maîtriser la composition Docker, épingler une version précise ou brancher Open WebUI sur une infrastructure existante.
Fixer la clé de signature dès le premier démarrage
Open WebUI signe chaque jeton de session avec WEBUI_SECRET_KEY. Si vous ne la déclarez pas, elle est tirée au hasard au premier lancement et écrite dans le répertoire de données : tant que le volume persiste, tout va bien. Le jour où ce volume est recréé, la clé change — et vous obtenez un refus d'accès avec des identifiants pourtant valides, symptôme trompeur qui envoie chercher du côté du mot de passe. La même clé chiffre aussi les secrets stockés (jetons OAuth, identifiants d'API) : la perdre ne coupe donc pas seulement les sessions, elle rend ces secrets illisibles. Générez-la une fois avec openssl rand -hex 32, posez-la dans votre fichier d'environnement, et traitez-la comme un secret de production. Si vous faites tourner plusieurs instances derrière un répartiteur, elles doivent toutes porter la même valeur, sans quoi un jeton émis par l'une est rejeté par l'autre.
Configurer les accès multi-utilisateurs
Open WebUI intègre un système de comptes et de rôles qui permet à plusieurs membres d'une équipe de partager la même instance. Par défaut, le premier compte créé devient administrateur. Les utilisateurs suivants passent en attente de validation si vous avez activé la modération des inscriptions — option recommandée pour éviter qu'un port 3000 accessible depuis internet devienne ouvert à tous.
Trois niveaux d'accès sont disponibles : admin (accès total à la configuration, aux modèles et aux comptes), utilisateur (accès aux chats et aux assistants partagés) et en attente (accès bloqué jusqu'à validation manuelle). Pour configurer la modération :
1. Connectez-vous en tant qu'admin.
2. Accédez à Paramètres → Administration → Utilisateurs.
3. Activez « Inscription avec validation par l'administrateur ».
Vous pouvez également créer des assistants (préréglages de modèle + instructions système) et les partager à toute l'instance ou à des groupes spécifiques, sans que les utilisateurs aient besoin de reconfigurer leur session.
Dépannage : les problèmes courants
Le conteneur redémarre en boucle. Vérifiez les logs : docker logs open-webui. La cause la plus fréquente est un WEBUI_SECRET_KEY absent ou mal formé — la variable doit être une chaîne hexadécimale non vide. Si elle est générée au lancement sans être persévérée dans un volume ou un fichier .env, elle change à chaque redémarrage du conteneur.
Connexion Ollama impossible (« Could not connect to Ollama »). L'URL par défaut http://localhost:11434 ne fonctionne pas depuis l'intérieur d'un conteneur Docker : localhost désigne le conteneur lui-même, pas l'hôte. Utilisez http://host.docker.internal:11434 (Linux : ajoutez --add-host=host.docker.internal:host-gateway à la commande docker run) ou faites tourner les deux conteneurs dans le même réseau Docker et référencez le conteneur Ollama par son nom.
502 Bad Gateway après le reverse proxy. Le proxy Nginx pointe vers le port 3000 mais Open WebUI écoute en interne sur le port 8080 — la commande docker run mappe 3000:8080. Vérifiez que votre vhost pointe bien vers http://127.0.0.1:3000, pas 8080.
Websocket coupé (interface qui se fige). Les headers Upgrade et Connection sont indispensables au bon fonctionnement des websockets qu'utilise l'interface. Vérifiez que votre bloc proxy_set_header les inclut tous les deux.
Si vous souhaitez faire tourner un modèle Ollama directement sur le même VPS, optez pour un plan avec au moins 8 Go de RAM et un stockage SSD pour réduire les temps de chargement des modèles.
La documentation officielle
Pour la configuration avancée, les options propres à l'outil et les changements de version, référez-vous à la documentation officielle de Open WebUI. Ce guide couvre la mise en ligne sur VPS ServOrbit ; la documentation éditeur reste la référence pour les réglages fins.