Initial vault setup
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
---
|
||||
title: Open WebUI
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, artificial-intelligence, llm, frontend, typescript, svelte, ollama, auto-hebergement]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Artificial+Intelligence, https://github.com/open-webui/open-webui]
|
||||
---
|
||||
|
||||
# 🧠 Open WebUI
|
||||
|
||||
> **Interface web auto-hébergée pour LLMs** — alternative à ChatGPT, multi-modèles, entièrement offline, extensible. Supporte Ollama, OpenAI API, et la plupart des backends d'inférence locaux ou distants.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [openwebui.com](https://openwebui.com/) |
|
||||
| **GitHub** | [open-webui/open-webui](https://github.com/open-webui/open-webui) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | TypeScript, Svelte, Python (backend) |
|
||||
| **Étoiles** | 20 155 ⭐ |
|
||||
| **Dernière MAJ** | 2026-06-05 |
|
||||
| **Catégorie** | [[cat-artificial-intelligence]] |
|
||||
|
||||
## Description
|
||||
|
||||
**Open WebUI** (anciennement *Ollama WebUI*) est devenu en quelques années la **référence de facto** des frontends pour LLMs auto-hébergés. Né comme simple UI pour Ollama, le projet a grossi pour devenir une **plateforme IA complète** supportant pratiquement n'importe quel backend d'inférence : Ollama, llama.cpp, OpenAI API compatible (via [[app-localai]], vLLM, etc.), mais aussi les fournisseurs distants (OpenAI, Anthropic, Groq, Google).
|
||||
|
||||
L'**expérience utilisateur** est le point fort du projet : conversations multi-tours, gestion de prompts système, import/export de conversations au format ChatGPT, **RAG (Retrieval-Augmented Generation)** intégré avec ingestion de PDF/DOCX/sites web, **recherche web** via SearXNG/Tavily, génération d'images via Stable Diffusion/AUTOMATIC1111, **voice mode** (TTS/STT), et un système de **plugins** (les *Functions* et *Tools*) qui permet d'ajouter des capacités arbitraires via du code Python ou JS.
|
||||
|
||||
Côté **administration**, Open WebUI propose une gestion fine des utilisateurs et groupes, RBAC, quotas, journalisation d'audit, et un mode **multi-utilisateur** prêt pour homelab familial ou petite équipe. L'**architecture** sépare un frontend SvelteKit d'un backend FastAPI Python, le tout distribuable en une seule image Docker (`ghcr.io/open-webui/open-webui`).
|
||||
|
||||
## Installation
|
||||
|
||||
### Option 1 : Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
container_name: ollama
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "11434:11434"
|
||||
volumes:
|
||||
- ollama_data:/root/.ollama
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- capabilities: [gpu]
|
||||
|
||||
open-webui:
|
||||
image: ghcr.io/open-webui/open-webui:main
|
||||
container_name: open-webui
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:8080"
|
||||
environment:
|
||||
- OLLAMA_BASE_URL=http://ollama:11434
|
||||
- WEBUI_AUTH=true
|
||||
- WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY:-change-me-in-prod}
|
||||
- ENABLE_SIGNUP=true
|
||||
- DEFAULT_MODELS=qwen2.5:7b,llama3.2:3b
|
||||
volumes:
|
||||
- openwebui_data:/app/backend/data
|
||||
depends_on:
|
||||
- ollama
|
||||
|
||||
volumes:
|
||||
ollama_data:
|
||||
openwebui_data:
|
||||
```
|
||||
|
||||
### Option 2 : Installation manuelle
|
||||
|
||||
```bash
|
||||
# Prérequis : Python 3.11+, Node 20+, Ollama installé
|
||||
git clone https://github.com/open-webui/open-webui.git
|
||||
cd open-webui
|
||||
|
||||
# Backend
|
||||
cd backend
|
||||
pip install -r requirements.txt
|
||||
bash start.sh # http://localhost:8080
|
||||
|
||||
# Frontend (en dev)
|
||||
cd ../
|
||||
npm install
|
||||
npm run dev # http://localhost:5173
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Points clés du fichier `.env` ou des variables Docker :
|
||||
|
||||
- `OLLAMA_BASE_URL` : URL du backend Ollama (par défaut `http://localhost:11434`)
|
||||
- `OPENAI_API_BASE_URL` : URL d'un backend compatible OpenAI ([[app-localai]], vLLM, etc.)
|
||||
- `WEBUI_AUTH=true` : active l'authentification locale (multi-utilisateurs)
|
||||
- `ENABLE_SIGNUP=false` : désactiver les inscriptions publiques après création du compte admin
|
||||
- `RAG_EMBEDDING_MODEL` : modèle d'embedding pour le RAG (par défaut `snowflake-arctic-embed`)
|
||||
- `ENABLE_IMAGE_GENERATION=true` : active la génération d'images (A1111/ComfyUI/OpenAI DALL-E)
|
||||
- `SEARXNG_QUERY_URL` : URL d'une instance SearXNG pour la recherche web
|
||||
|
||||
La **base de données** SQLite est stockée dans `/app/backend/data` — sauvegarder ce volume est essentiel (contient utilisateurs, conversations, knowledge bases).
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Open Source
|
||||
|
||||
- [[app-librechat]] — frontend multi-LLM unifié, plus orienté "ChatGPT clone d'entreprise"
|
||||
- [[app-localai]] — backend d'inférence, OpenAI-compatible (complémentaire, pas concurrent)
|
||||
- **LobeChat** — équivalent plus design, moins de features d'admin
|
||||
- **TypingMind** — version self-hosted payante
|
||||
- **Hugging Face Chat UI** — officiel HF, plus minimaliste
|
||||
|
||||
### Propriétaires (ce que cette app remplace)
|
||||
|
||||
- **ChatGPT** (OpenAI) — UI et mémoire, sans dépendance cloud
|
||||
- **Claude** (Anthropic) — sans tracking
|
||||
- **Microsoft Copilot** — sans verrouillage écosystème
|
||||
- **Poe** (Quora) — multi-modèles via une seule UI
|
||||
|
||||
## Sécurité
|
||||
|
||||
- **Compte admin** : le premier compte créé devient admin — utiliser un mot de passe fort + 2FA (intégré via TOTP)
|
||||
- **Désactiver les inscriptions** (`ENABLE_SIGNUP=false`) après création de l'admin pour un homelab privé
|
||||
- **Exposition réseau** : ne jamais exposer directement le port 3000 sur Internet — passer par un reverse proxy ([[app-caddy]], [[app-traefik]], [[app-nginx-proxy-manager]]) avec HTTPS
|
||||
- **RAG et uploads** : Open WebUI exécute des extracteurs (PDF, etc.) sur les fichiers uploadés — risque SSRF/RCE si l'extracteur est vulnérable, d'où l'importance de mettre à jour régulièrement
|
||||
- **API keys distantes** : stockées chiffrées en base, mais préférer des clés à scope limité
|
||||
|
||||
## Ressources
|
||||
|
||||
- [Site officiel](https://openwebui.com/)
|
||||
- [Documentation](https://docs.openwebui.com/)
|
||||
- [GitHub](https://github.com/open-webui/open-webui)
|
||||
- [Discord communautaire](https://discord.gg/openwebui)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-artificial-intelligence]] — Catégorie parente
|
||||
- [[recettes-docker-compose]] — Templates Docker Compose
|
||||
- **Ollama** — Backend d'inférence LLM de référence (le plus simple) _(fiche à créer)_
|
||||
- [[app-localai]] — Backend alternatif OpenAI-compatible
|
||||
- [[app-librechat]] — Frontend alternatif
|
||||
Reference in New Issue
Block a user