Skip to main content
ai16 novembre 202514 min de lecture

Open WebUI : exécuter votre propre interface IA en local et dans le cloud

Configurer Open WebUI pour le développement local et le déploiement cloud — comparaison des interfaces IA auto-hébergées avec les alternatives commerciales.

open-webuiself-hostedai
Open WebUI : exécuter votre propre interface IA en local et dans le cloud

Chaque développeur que je connais a au moins trois onglets de chat IA ouverts en permanence. ChatGPT pour une chose, Claude pour une autre, peut-être une fenêtre Gemini pour les tâches multimodales. Chacun a son propre historique de conversation, son propre contexte, sa propre facturation. Passer de l'un à l'autre est une friction que vous cessez de remarquer jusqu'à ce qu'elle disparaisse.

Open WebUI élimine cette friction. C'est une interface auto-hébergée qui se connecte à plusieurs backends IA — des modèles locaux via Ollama, des API cloud comme OpenAI et Anthropic, ou tout endpoint compatible OpenAI. Une seule interface, un seul historique de conversation, un seul endroit pour tout gérer. Et comme vous l'hébergez vous-même, vos données ne quittent jamais votre infrastructure sauf si vous les envoyez explicitement à une API cloud.

Ce qu'est Open WebUI

Open WebUI (anciennement Ollama WebUI) est une interface web open-source auto-hébergée pour interagir avec les grands modèles de langage. Elle a commencé comme frontend pour Ollama — l'outil qui exécute les LLM localement — mais a évolué en une plateforme IA complète qui supporte :

  • Plusieurs backends de modèles (Ollama, OpenAI, Anthropic, toute API compatible OpenAI)
  • Historique de conversation avec recherche et organisation
  • RAG (Retrieval-Augmented Generation) avec upload de documents
  • Presets de modèles personnalisés et prompts système
  • Gestion des utilisateurs et contrôles d'accès d'équipe
  • Function calling et utilisation d'outils
  • Intégration de génération d'images
  • Entrée et sortie vocales

Ce n'est pas un projet jouet. L'interface est soignée, les fonctionnalités sont complètes, et la communauté est active. Au moment d'écrire ces lignes, le dépôt GitHub a plus de 75 000 stars et un rythme de release d'environ toutes les deux semaines.

La vraie proposition de valeur est le contrôle. Vous décidez où il s'exécute, à quels modèles il se connecte, qui a accès, et où vont les données. Pour les développeurs travaillant avec du code sensible, des données métier propriétaires, ou des industries réglementées, cela importe plus que toute comparaison de fonctionnalités.

Configuration locale avec Docker

La façon la plus rapide de lancer Open WebUI localement est Docker. Une seule commande, pas de dépendances à installer, pas de fichiers de configuration à écrire :

docker run -d \
  -p 3000:8080 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

C'est tout. Ouvrez http://localhost:3000 dans votre navigateur, créez un compte administrateur, et vous avez une interface IA fonctionnelle. Le flag -v open-webui:/app/backend/data crée un volume Docker pour le stockage persistant — vos conversations, paramètres et documents uploadés survivent aux redémarrages du conteneur.

Connexion à Ollama

Pour utiliser des modèles locaux, vous avez besoin d'Ollama en fonctionnement sur votre machine. Installez-le depuis ollama.com, puis téléchargez un modèle :

ollama pull llama3.1
ollama pull codellama
ollama pull mistral

Si Open WebUI et Ollama fonctionnent tous les deux sur la même machine, Open WebUI détecte automatiquement Ollama à http://host.docker.internal:11434 (sur macOS et Windows) ou http://localhost:11434 (sur Linux avec --network host).

Pour Linux, la commande Docker nécessite le mode network host pour atteindre Ollama :

docker run -d \
  -p 3000:8080 \
  --network host \
  -v open-webui:/app/backend/data \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

Une fois connecté, chaque modèle que vous avez téléchargé dans Ollama apparaît dans le menu déroulant de modèles dans Open WebUI. Vous pouvez basculer entre eux en pleine conversation, comparer les sorties et définir des prompts système par modèle.

Connexion aux API cloud

Open WebUI se connecte aussi aux fournisseurs de modèles cloud. Dans les paramètres administrateur sous "Connexions", ajoutez vos clés API :

  • OpenAI : Ajoutez votre clé API et tous les modèles GPT deviennent disponibles
  • Anthropic : Ajoutez votre clé API pour les modèles Claude (via un proxy compatible OpenAI ou une intégration directe selon la version)
  • Endpoints personnalisés : Tout service qui expose une API compatible OpenAI — Azure OpenAI, Together AI, Groq, instances vLLM locales

C'est là qu'Open WebUI devient véritablement utile au quotidien. Vous avez une seule interface pour les modèles Llama locaux (gratuits, privés, bons pour l'expérimentation) et les modèles cloud (plus capables, facturation à l'usage). Le coût de changement de contexte tombe à zéro — vous changez juste le modèle dans le menu déroulant.

Docker Compose pour une stack complète

Pour une configuration locale plus robuste, utilisez Docker Compose pour exécuter Open WebUI et Ollama ensemble :

# docker-compose.yml
version: "3.8"

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama-data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - open-webui-data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - ollama

volumes:
  ollama-data:
  open-webui-data:
docker compose up -d

La section de réservation GPU est optionnelle — supprimez-la si vous fonctionnez uniquement sur CPU. Sur les Mac Apple Silicon, Ollama utilise le framework GPU Metal automatiquement sans passthrough GPU Docker (exécutez Ollama nativement sur macOS plutôt que dans Docker pour les meilleures performances).

Options de déploiement cloud

Exécuter Open WebUI localement est parfait pour un usage individuel. Mais quand vous voulez que votre équipe y accède, ou quand vous voulez l'utiliser depuis n'importe quel appareil, vous avez besoin d'un déploiement cloud.

Déploiement VPS (Hetzner, DigitalOcean, etc.)

Le chemin cloud le plus simple est un VPS avec Docker installé. Un serveur à 20 $/mois de Hetzner ou DigitalOcean suffit pour l'interface Open WebUI elle-même. Si vous voulez aussi exécuter des modèles sur le serveur, vous aurez besoin d'une instance GPU (50-150 $/mois selon le GPU).

# On your VPS
apt update && apt install docker.io docker-compose-plugin -y

# Create docker-compose.yml (same as above, minus GPU reservation)
docker compose up -d

# Set up a reverse proxy with SSL
apt install nginx certbot python3-certbot-nginx -y

Configuration du reverse proxy Nginx :

server {
    server_name ai.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Puis certbot --nginx -d ai.yourdomain.com pour un SSL gratuit via Let's Encrypt. Vous avez maintenant une interface IA privée, sécurisée par SSL, accessible de partout.

Déploiement Railway / Fly.io

Pour un déploiement managé sans administration serveur :

# Using Railway
railway login
railway init
railway up

Ou avec Fly.io :

fly launch --image ghcr.io/open-webui/open-webui:main
fly secrets set OLLAMA_BASE_URL=http://your-ollama-server:11434
fly deploy

Ces plateformes gèrent le SSL, le scaling et les redémarrages automatiquement. Le compromis est moins de contrôle sur l'infrastructure et un coût plus élevé à grande échelle par rapport à un VPS.

Décision architecturale : où exécuter les modèles

La décision architecturale clé pour les déploiements cloud est de savoir s'il faut exécuter les modèles sur le même serveur qu'Open WebUI ou se connecter à des fournisseurs API externes.

Même serveur : Latence plus faible, pas de coût API par token, confidentialité totale des données. Mais vous avez besoin d'un serveur équipé GPU (100-300 $/mois pour une instance GPU correcte), et la sélection de modèles est limitée par votre matériel.

API externes uniquement : Pas besoin de GPU, accès aux meilleurs modèles de chaque fournisseur, paiement par token. Le serveur Open WebUI est léger et peu coûteux à héberger. Mais chaque conversation passe par une API tierce, et les coûts augmentent avec l'utilisation.

Hybride : Exécutez un modèle local pour les tâches routinières et le travail sensible à la confidentialité, connectez-vous aux API cloud pour les tâches qui nécessitent des modèles plus puissants. C'est ce que j'utilise — Llama 3.1 pour les questions rapides et la complétion de code quand la confidentialité importe, Claude ou GPT-4o pour les tâches de raisonnement et de génération complexes.

Comparaison avec les interfaces commerciales

ChatGPT Plus (20 $/mois)

ChatGPT vous donne GPT-4o, l'intégration DALL-E, la navigation web, l'interpréteur de code et les GPTs personnalisés. L'interface est soignée et l'application mobile est excellente.

Où Open WebUI l'emporte : flexibilité des modèles (vous n'êtes pas verrouillé chez OpenAI), confidentialité des données (les conversations restent sur votre serveur), personnalisation (prompts système personnalisés, pipelines RAG, function calling). Pas de limites d'utilisation sur les modèles locaux.

Où ChatGPT l'emporte : intégrations d'outils natives, sandbox d'interpréteur de code, expérience mobile, zéro configuration. L'écosystème de plugins et le GPT Store n'ont pas d'équivalent dans Open WebUI.

Verdict : ChatGPT Plus est difficile à battre pour les utilisateurs non techniques qui veulent une expérience prête à l'emploi. Open WebUI est meilleur pour les développeurs qui veulent contrôle et flexibilité.

Claude Pro (20 $/mois)

Claude Pro vous donne les modèles Claude Sonnet et Opus avec des fenêtres de contexte étendues, la création d'artefacts et des projets avec un contexte persistant. Le suivi d'instructions et la gestion de longs documents de Claude sont les meilleurs de leur catégorie.

Où Open WebUI l'emporte : vous pouvez quand même utiliser les modèles Claude via l'API tout en ayant accès à tous les autres modèles. Vous possédez votre historique de conversation. Vous pouvez ajouter du RAG et des outils personnalisés.

Où Claude l'emporte : la fonctionnalité Projects avec contexte persistant, le système d'artefacts pour le code et les documents, l'affichage natif du raisonnement. Ceux-ci sont profondément intégrés dans l'interface de Claude et n'ont pas d'équivalent dans Open WebUI.

Verdict : Si Claude est votre modèle principal, l'interface native est difficile à quitter. Open WebUI est meilleur comme interface unifiée quand vous utilisez plusieurs fournisseurs.

Pour les équipes

Le cas le plus convaincant pour Open WebUI est l'utilisation en équipe. Les interfaces IA commerciales proposent des plans équipe, mais elles facturent typiquement par utilisateur (25-30 $/utilisateur/mois), les conversations sont stockées sur l'infrastructure du fournisseur, et vous ne pouvez pas personnaliser l'expérience.

Open WebUI avec accès équipe vous donne : un seul coût d'hébergement quel que soit le nombre d'utilisateurs, les conversations stockées sur votre infrastructure, des presets de modèles personnalisés par équipe ou projet, des collections de documents RAG partagées, et des contrôles admin sur quels modèles et fonctionnalités sont disponibles.

Pour une équipe de 10 développeurs, les abonnements commerciaux de chat IA coûtent 200-300 $/mois. Une instance Open WebUI auto-hébergée avec accès API cloud coûte 20-40 $/mois pour l'hébergement plus l'utilisation API au fur et à mesure. L'économie penche encore plus en votre faveur à mesure que l'équipe grandit.

Configuration du pipeline RAG

Le Retrieval-Augmented Generation est l'une des fonctionnalités les plus puissantes d'Open WebUI. Uploadez des documents, et l'IA peut les référencer pour répondre aux questions. Cela transforme Open WebUI d'un chat généraliste en une base de connaissances qui comprend votre documentation spécifique, votre codebase ou vos données métier.

Upload de documents

Open WebUI supporte l'upload direct de documents via l'interface. Faites glisser un PDF, un fichier markdown ou un fichier texte dans le chat, et il est automatiquement découpé, embarqué et indexé pour la récupération. L'IA référence les documents uploadés pour répondre aux questions.

Pour l'ingestion de documents en masse, utilisez la section de gestion de documents du panneau admin. Vous pouvez organiser les documents en collections et contrôler quelles collections sont disponibles dans quels chats.

Configuration des embeddings

Open WebUI utilise des modèles d'embedding pour convertir les documents en vecteurs pour la recherche sémantique. Par défaut, il utilise un modèle d'embedding local, mais vous pouvez le configurer pour utiliser l'API d'embedding d'OpenAI pour une meilleure qualité :

Dans les paramètres admin sous "Documents", configurez :

  • Modèle d'embedding : text-embedding-3-small (OpenAI) ou un modèle local via Ollama
  • Taille des chunks : 1000 tokens (par défaut, ajustez selon vos documents)
  • Chevauchement des chunks : 100 tokens (aide à maintenir le contexte entre les chunks)
  • Top K : 5 (nombre de chunks pertinents récupérés par requête)

Cas d'utilisation pratiques du RAG

Documentation de codebase : Uploadez le README de votre projet, la documentation d'architecture et la documentation API. Posez des questions à l'IA sur votre propre projet et obtenez des réponses fondées sur vos vrais documents plutôt que sur les données d'entraînement générales du modèle.

Notes de réunion et décisions : Uploadez les transcriptions de réunions et les journaux de décisions. "Qu'est-ce qui a été décidé concernant le calendrier de migration de la base de données lors de la réunion de la semaine dernière ?" obtient une réponse précise au lieu d'une hallucination.

Articles de recherche et spécifications techniques : Uploadez des PDF d'articles ou de spécifications sur lesquels vous travaillez. L'IA peut résumer, comparer et répondre aux questions sur du contenu qui n'est pas dans ses données d'entraînement.

La qualité des réponses RAG dépend fortement du découpage des documents et de la qualité des embeddings. Si les réponses semblent manquer d'informations pertinentes, essayez de réduire la taille des chunks (pour que chaque chunk soit plus ciblé) ou d'augmenter le Top K (pour que plus de chunks soient récupérés).

Configurations de modèles personnalisés

Open WebUI vous permet de créer des presets de modèles — des configurations sauvegardées avec des prompts système personnalisés, des réglages de température et des sélections de modèles. C'est utile pour créer des assistants spécialisés sans modifier les modèles sous-jacents.

Créer un preset de revue de code

Dans les paramètres Open WebUI, créez un nouveau preset de modèle :

  • Nom : Code Reviewer
  • Modèle de base : Claude Sonnet (ou votre modèle préféré)
  • Prompt système : "You are a senior code reviewer. Analyze the provided code for bugs, security issues, performance problems, and style violations. Be specific about line numbers and provide corrected code snippets. Prioritize issues by severity."
  • Température : 0.3 (plus basse pour une sortie plus cohérente et ciblée)

Créer un preset d'assistant d'écriture

  • Nom : Technical Writer
  • Modèle de base : GPT-4o
  • Prompt système : "You are a technical writing assistant. Help draft clear, concise technical documentation. Use active voice. Avoid jargon unless the audience is technical. Structure content with headers, lists, and code examples where appropriate."
  • Température : 0.7 (plus haute pour une sortie plus créative)

Ces presets apparaissent dans le menu déroulant des modèles aux côtés de vos modèles habituels. Vous basculez vers le preset "Code Reviewer" quand vous faites de la revue de code et vers "Technical Writer" quand vous rédigez de la documentation. Le prompt système est appliqué automatiquement.

Avantages en matière de confidentialité

L'argument de confidentialité pour l'IA auto-hébergée n'est pas théorique. Il a des implications concrètes pour différents cas d'utilisation.

Code sensible

Quand vous collez du code propriétaire dans ChatGPT ou Claude, vous l'envoyez à un serveur tiers. Les fournisseurs ont des politiques de traitement des données — OpenAI et Anthropic déclarent tous deux qu'ils n'entraînent pas sur les données API — mais les données quittent quand même votre infrastructure. Pour les entreprises avec des politiques strictes de PI, des industries réglementées ou des contrats gouvernementaux, cela peut être un point bloquant.

Avec Open WebUI connecté à Ollama, votre code ne quitte jamais votre machine. Le modèle s'exécute localement, l'inférence se fait localement, et l'historique de conversation est stocké localement. Pour les déploiements cloud, les données restent sur votre serveur.

Données clients

Si vous êtes un consultant ou une agence travaillant avec des données clients, utiliser des interfaces IA commerciales crée une question de traitement des données à laquelle vous devez répondre pour chaque client. L'Open WebUI auto-hébergé vous donne une réponse claire : les données restent dans votre infrastructure, sous votre contrôle, soumises à vos politiques de sécurité.

Conformité

HIPAA, SOC 2, RGPD — ces cadres se soucient de l'endroit où les données sont traitées et stockées. Une interface IA auto-hébergée sur votre infrastructure conforme est intrinsèquement plus facile à inclure dans votre périmètre de conformité qu'un outil SaaS tiers.

Cela ne signifie pas que le local est toujours meilleur. Les API IA cloud ont leurs propres certifications de conformité, et pour de nombreux cas d'utilisation, la posture de conformité des offres entreprise d'OpenAI ou Anthropic est plus forte que ce que vous pouvez construire vous-même. Le point est que l'auto-hébergement vous donne l'option quand vous en avez besoin.

Considérations de performance

Performance des modèles locaux

Exécuter des modèles localement signifie que votre matériel détermine l'expérience. Voici des benchmarks approximatifs pour Llama 3.1 8B :

  • Apple M1 Pro (16 Go RAM) : ~15 tokens/seconde — utilisable pour de courtes interactions
  • Apple M2 Ultra (64 Go RAM) : ~40 tokens/seconde — confortable pour des conversations prolongées
  • NVIDIA RTX 4090 : ~80 tokens/seconde — réponses quasi instantanées
  • CPU uniquement (pas de GPU) : ~2-5 tokens/seconde — péniblement lent, non recommandé

Pour les modèles plus gros comme Llama 3.1 70B, vous avez besoin d'au moins 48 Go de RAM (M2 Max ou mieux sur Mac, ou un GPU serveur). L'amélioration de qualité est significative, mais l'exigence matérielle est élevée.

Comparaison de latence

Pour les connexions API cloud, Open WebUI ajoute un overhead minimal — typiquement 10-30ms au-dessus de la latence native de l'API. Le goulot d'étranglement est toujours l'inférence du modèle, pas l'interface.

Pour les modèles locaux, la latence est une fonction de la taille du modèle et du matériel. La latence du premier token (le temps avant que le modèle ne commence à générer) va de 100ms pour de petits modèles sur du matériel rapide à plusieurs secondes pour de grands modèles sur du matériel limité. L'affichage en streaming masque la majeure partie de cela pour l'utilisateur.

Quand auto-héberger vs utiliser le commercial

Auto-hébergez quand :

  • Vous travaillez avec des données sensibles ou propriétaires
  • Vous voulez utiliser des modèles locaux pour des raisons de confidentialité ou de coût
  • Vous avez besoin d'une interface IA d'équipe sans licence par utilisateur
  • Vous voulez personnaliser le pipeline RAG ou ajouter des outils personnalisés
  • Vous utilisez plusieurs fournisseurs de modèles et voulez une interface unifiée

Utilisez les interfaces commerciales quand :

  • Vous avez besoin de l'intégration la plus étroite possible avec un modèle spécifique (Claude Projects, plugins ChatGPT)
  • Vous valorisez les applications mobiles et la synchronisation multi-appareils
  • Vous ne voulez pas gérer d'infrastructure
  • Votre cas d'utilisation n'implique pas de données sensibles
  • Vous avez besoin de l'expérience la plus soignée et des dernières fonctionnalités

Pour la plupart des développeurs, la réponse est les deux. J'utilise l'interface native de Claude pour le travail en profondeur qui bénéficie de Claude Projects, ChatGPT pour les tâches qui nécessitent l'interpréteur de code, et Open WebUI pour tout le reste — surtout quand je veux utiliser des modèles locaux, comparer les sorties entre fournisseurs, ou travailler avec des documents que je ne veux pas envoyer à une API cloud.

Open WebUI ne vise pas à remplacer les interfaces commerciales. Il s'agit d'avoir la possibilité de contrôler votre infrastructure IA quand ce contrôle importe. La configuration prend 30 minutes. Les avantages en confidentialité et flexibilité sont permanents.

DU

Danil Ulmashev

Full Stack Developer

Intéressé par une collaboration ?