Open WebUI: interfaccia simile a ChatGPT per Ollama
Open WebUI Ollama è oggi la combinazione più pratica per avere un'interfaccia simile a ChatGPT sul tuo computer, senza dipendere dal cloud. Questo stack interamente self-hosted trasforma il tuo server Ollama in un'applicazione web multiutente, con cronologia delle conversazioni, gestione dei modelli e RAG sui documenti. Questa guida descrive in dettaglio l'installazione di Open WebUI Ollama tramite Docker, la configurazione di rete, i modelli compatibili in base alla tua VRAM, le funzionalità avanzate (RAG, multiutente, MCP) e i limiti da conoscere prima di una distribuzione in produzione per uso interno.
Che cos'è Open WebUI e perché associarlo a Ollama
Open WebUI (ex Ollama WebUI) è un front-end open-source scritto in SvelteKit + FastAPI, pubblicato sotto licenza BSD-3 su github.com/open-webui/open-webui. Propone un'interfaccia conversazionale equivalente a ChatGPT, ma collegata a un backend di inferenza locale. Ollama svolge questo ruolo di backend: un demone che carica modelli GGUF quantizzati e offre un'API HTTP compatibile con OpenAI sulla porta 11434.
L'associazione dei due dà una interfaccia per LLM locali completa:
- Frontend : Open WebUI sulla porta 8080 (chat, cronologia, prompt di sistema, funzioni Python)
- Backend : Ollama sulla porta 11434 (gestione memoria GPU, quantizzazione, streaming)
- Archiviazione : SQLite o PostgreSQL per le conversazioni e gli embedding
A differenza di LM Studio, che è monoutente e disponibile solo come applicazione desktop, Open WebUI gestisce account, gruppi, permessi per modello e una modalità RAG con un database vettoriale ChromaDB integrato. È l'opzione da preferire per condividere un server di inferenza tra più collaboratori.
Installazione tramite Docker: il metodo consigliato
L'installation WebUI Docker è il metodo supportato dal team di Open WebUI. Evita i conflitti tra dipendenze Python e consente aggiornamenti atomici.
Prerequisiti :
- Docker 24+ e Docker Compose v2
- Ollama installato sull'host o in un container (vedi ollama.com/download)
- GPU NVIDIA con driver ≥ 535 e nvidia-container-toolkit, oppure CPU per i modelli piccoli
Comando minimo (Ollama già installato sull'host) :
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'interfaccia è successivamente accessibile su http://localhost:3000. Il primo account creato viene automaticamente promosso ad amministratore.
Stack docker-compose tutto in uno (Ollama + WebUI + GPU NVIDIA) : consultare il file di riferimento su docs.openwebui.com/getting-started/quick-start. Il servizio ollama deve montare un volume persistente /root/.ollama per conservare i modelli scaricati tra un riavvio e l'altro, altrimenti scaricherai di nuovo diverse centinaia di gigabyte a ogni docker compose down.
Per AMD ROCm, usa l'immagine ghcr.io/open-webui/open-webui:main abbinata a ollama/ollama:rocm. Le prestazioni su RX 7900 XTX sono approssimativamente il 70-80% di quelle di una RTX 4090 in Q4_K_M (dato stimato, dipende dal modello).
Scegliere il modello adatto al tuo hardware
Open WebUI mostra tutti i modelli presenti nel registro Ollama locale. Il fattore limitante rimane la VRAM. Ecco tre livelli coerenti con l'hardware consumer e professionale.
Una RTX 4090 (24 GB di VRAM) è adatta ai modelli da 30 a 70B in Q4 con offload parziale sulla CPU:
- Qwen 2.5 72B Instruct (72B, Qwen License) — VRAM Q4 ~42 GB, ctx 131072. Richiede offload CPU o seconda scheda.
- Llama 3.3 70B Instruct (70B, Llama 3.3 Community) — VRAM Q4 ~40 GB. Idem, richiesto offload.
- DeepSeek R1 Distill Llama 70B — buone prestazioni in ragionamento, punteggio MMLU competitivo con i migliori 70B (da confermare in base alla versione).
Una workstation con 2× RTX 6000 Ada (96 GB totali) permette di puntare ai modelli MoE compatti :
- gpt-oss 120B (117B, Apache 2.0, OpenAI) — VRAM Q4 ~70 GB, ctx 128000. Modello aperto di OpenAI, integrazione Ollama nativa.
- Mistral Small 4 (119B, Apache 2.0) — ctx 256000, eccellente compromesso per l'uso in francese.
- Qwen 3.5 122B-A10B — MoE con 10B di parametri attivi, latenza molto bassa rispetto alle dimensioni.
Un server con 8× H100 (640 GB) o un cluster Apri le frontiere:
- 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 — MoE all'avanguardia, contesto di 1M token
Per un dimensionamento preciso in base alla tua scheda, usa il configuratore di QualeLLM che combina la VRAM disponibile, la quantizzazione desiderata e la lunghezza di contesto desiderata.
Funzionalità avanzate: RAG, funzioni, MCP
Open WebUI va oltre la semplice chat. Tre funzionalità meritano di essere configurate fin dall'installazione.
RAG integrato : carica PDF, DOCX, TXT o URL in una «Collection». Open WebUI li suddivide in chunk (dimensione predefinita dei chunk 1500, sovrapposizione 100), genera embedding tramite sentence-transformers/all-MiniLM-L6-v2 localmente o tramite Ollama (nomic-embed-text), e li memorizza in ChromaDB. Durante l'inferenza, i chunk pertinenti vengono inseriti nel contesto. Per database di grandi dimensioni, passa a PostgreSQL + pgvector tramite la variabile VECTOR_DB=pgvector.
Le funzioni Python (Pipelines) : Open WebUI permette di eseguire codice arbitrario in pre- o post-elaborazione. Esempio: reindirizzare automaticamente i prompt contenenti «code» verso Qwen3-Coder-Next 80B-A3B, e gli altri verso Mistral Medium 3.5 128B. Le pipeline vengono eseguite in un container separato sulla porta 9099, un isolamento utile per la sicurezza.
Il supporto MCP (Model Context Protocol) : dalla versione 0.6, Open WebUI utilizza i server MCP. Vedi la specifica ufficiale per i server disponibili (filesystem, GitHub, Postgres, ecc.).
Confronto dettagliato dei front-end su quelllm.fr/compare/open-webui-vs-lm-studio.
Prestazioni e token al secondo osservati
Le velocità dipendono dalla combinazione modello/GPU. Alcune misurazioni di riferimento con Ollama 0.5+ e Open WebUI 0.6+ in Q4_K_M:
- Llama 3.1 70B su 2× RTX 4090 (parallelismo tensoriale Ollama sperimentale): circa 18-22 token/s in generazione (stimato)
- gpt-oss 120B su H100 80GB: 60-80 token/s (da confermare in base all'offload)
- Qwen 3 235B-A22B su 4× A100 80GB: 45-55 token/s grazie all'architettura MoE che attiva solo 22B
Lo streaming WebSocket di Open WebUI aggiunge una latenza impercettibile (<10 ms). Il collo di bottiglia rimane l'inferenza stessa. Per ottimizzare, attiva OLLAMA_FLASH_ATTENTION=1 et OLLAMA_KV_CACHE_TYPE=q8_0 nell'ambiente del contenitore Ollama: risparmio di memoria del 30-40% sul contesto (vedi github.com/ollama/ollama/blob/main/docs/faq.md).
Per i modelli di ragionamento come DeepSeek R1 671B, prevedi da 3 a 10 volte il numero di token generati per richiesta (catena di pensiero interna), quindi tempi di risposta di diversi minuti anche su infrastrutture potenti.
Sicurezza e deploy multiutente
In azienda, sono necessarie tre precauzioni:
- Reverse proxy TLS : posiziona Traefik o Caddy davanti a Open WebUI. La porta predefinita 8080 non usa alcuna cifratura.
- Autenticazione SSO : Open WebUI supporta OIDC (Keycloak, Authentik) tramite le variabili
OAUTH_*. Disattiva la registrazione aperta a tutti conENABLE_SIGNUP=false. - RBAC per modello : dall'interfaccia amministrativa, limita i modelli pesanti (>40 GB VRAM) ai gruppi senior per evitare che un utente saturi la coda.
Controlla regolarmente i log /app/backend/data/audit.log che tracciano i prompt e i caricamenti.
FAQ
Q: Open WebUI funziona senza Ollama?
Sì. Open WebUI accetta qualsiasi API compatibile con OpenAI: vLLM, server llama.cpp, LiteLLM, TGI. Configura l'URL in Impostazioni → Connessioni. Ollama rimane la strada più semplice per iniziare perché la sua CLI gestisce automaticamente il download, la quantizzazione GGUF e la memoria. Per un deployment ad alte prestazioni con tensor parallelism maturo, vLLM o SGLang sono preferibili.
Q: Qual è la quantità minima di VRAM per iniziare?
Con 8 GB di VRAM (RTX 3060, 4060), puoi gestire comodamente modelli 7-8B come varianti leggere distillate. Per 12-16 GB, scegli modelli da 13-14B. La regola empirica: VRAM ≈ parametri × 0,6 in Q4_K_M, più 1-2 GB per il contesto 8K. Vedi quelllm.fr/guide/vram-quantification per i dettagli suddivisi per quantizzazione (Q4, Q5, Q8, FP16).
Q: Come installare Open WebUI senza Docker?
Via pip install open-webui puis open-webui serve. Questo metodo è documentato ma meno isolato: possibili conflitti con altri ambienti Python, aggiornamenti più delicati. Riservalo alle macchine di sviluppo. Per una postazione di lavoro monoutente, LM Studio o Jan possono essere più semplici; confrontali su quelllm.fr/compare/lm-studio-vs-jan.
Q: È possibile collegare Open WebUI a più server Ollama?
Sì. In Impostazioni → Connessioni, aggiungi più URL Ollama (es. http://gpu-01:11434, http://gpu-02:11434). Open WebUI aggrega i modelli disponibili. Il routing è manuale (l'utente sceglie il modello); per un bilanciamento automatico, inserisci LiteLLM come proxy. Utile per distribuire Mixtral 8x22B Instruct su un nodo e Llama 3.1 405B Instruct su un altro.
Q: Le conversazioni sono cifrate a riposo?
Non di default. Il database SQLite /app/backend/data/webui.db memorizza i messaggi in chiaro. Per la crittografia a riposo, usa un volume Docker su un file system crittografato (LUKS, crittografia nativa ZFS) o migra a PostgreSQL con Transparent Data Encryption. Il traffico di rete, invece, può essere crittografato tramite il reverse proxy TLS menzionato sopra.
Q: Open WebUI supporta la visione e le immagini?
Sì, con i modelli multimodali. Carica un'immagine nella conversazione: Open WebUI la codifica in base64 e la invia a Ollama se il modello supporta la modalità visione. Modelli compatibili nel catalogo: Qwen 2.5 VL 72B, Qwen 3 VL 235B-A22B, LLaVA-OneVision 72B et Molmo 72B.
Conclusione
Open WebUI Ollama costituisce lo stack di riferimento per offrire un'interfaccia simile a ChatGPT in self-hosting, dal portatile al cluster GPU. L'installazione con Docker richiede quindici minuti, mentre la configurazione di RBAC e RAG richiede qualche ora in più. La scelta del modello resta il fattore determinante: allinea con precisione i parametri, la quantizzazione e la VRAM disponibile. Per esplorare i 249 modelli indicizzati in base ai tuoi vincoli hardware, consulta il catalogo completo di QualeLLM o lascia che il configuratore consigliare la combinazione modello/quantizzazione ottimale per la tua GPU.