Open WebUI: Eseguire la Tua Interfaccia AI Localmente e nel Cloud
Configurare Open WebUI per lo sviluppo locale e il deployment nel cloud — confrontando le interfacce AI self-hosted con le alternative commerciali.

Ogni sviluppatore che conosco ha almeno tre schede di chat AI aperte in qualsiasi momento. ChatGPT per una cosa, Claude per un'altra, magari una finestra Gemini per attività multimodali. Ognuna ha la propria cronologia delle conversazioni, il proprio contesto, la propria fatturazione. Passare da una all'altra è un attrito che smetti di notare finché non scompare.
Open WebUI elimina questo attrito. È un'interfaccia self-hosted che si connette a più backend AI — modelli locali tramite Ollama, API cloud come OpenAI e Anthropic, o qualsiasi endpoint compatibile con OpenAI. Un'unica interfaccia, un'unica cronologia delle conversazioni, un unico posto per gestire tutto. E poiché la ospiti tu stesso, i tuoi dati non lasciano mai la tua infrastruttura a meno che tu non li invii esplicitamente a un'API cloud.
Cos'è Open WebUI
Open WebUI (precedentemente Ollama WebUI) è un'interfaccia web open-source e self-hosted per interagire con modelli linguistici di grandi dimensioni. È nata come frontend per Ollama — lo strumento che esegue gli LLM localmente — ma si è evoluta in una piattaforma AI completa che supporta:
- Molteplici backend di modelli (Ollama, OpenAI, Anthropic, qualsiasi API compatibile con OpenAI)
- Cronologia delle conversazioni con ricerca e organizzazione
- RAG (Retrieval-Augmented Generation) con caricamento di documenti
- Preset di modelli personalizzati e prompt di sistema
- Gestione utenti e controlli di accesso per i team
- Chiamata di funzioni e utilizzo di strumenti
- Integrazione per la generazione di immagini
- Input e output vocale
Non è un progetto giocattolo. L'interfaccia è curata, il set di funzionalità è completo e la community è attiva. Al momento della scrittura, il repository GitHub ha oltre 75.000 stelle e una cadenza di rilascio di circa ogni due settimane.
La vera proposta di valore è il controllo. Decidi dove viene eseguito, a quali modelli si connette, chi ha accesso e dove vanno i dati. Per gli sviluppatori che lavorano con codice sensibile, dati aziendali proprietari o settori regolamentati, questo è più importante di qualsiasi confronto di funzionalità.
Configurazione Locale con Docker
Il modo più veloce per far funzionare Open WebUI localmente è Docker. Un solo comando, nessuna dipendenza da installare, nessun file di configurazione da scrivere:
docker run -d \
-p 3000:8080 \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main
Questo è tutto. Apri http://localhost:3000 nel tuo browser, crea un account amministratore e avrai un'interfaccia AI funzionante. Il flag -v open-webui:/app/backend/data crea un volume Docker per l'archiviazione persistente — le tue conversazioni, impostazioni e documenti caricati sopravvivono ai riavvii del container.
Connessione a Ollama
Per utilizzare modelli locali, è necessario che Ollama sia in esecuzione sulla tua macchina. Installalo da ollama.com, quindi scarica un modello:
ollama pull llama3.1
ollama pull codellama
ollama pull mistral
Se Open WebUI e Ollama sono entrambi in esecuzione sulla stessa macchina, Open WebUI rileva automaticamente Ollama all'indirizzo http://host.docker.internal:11434 (su macOS e Windows) o http://localhost:11434 (su Linux con --network host).
Per Linux, il comando Docker necessita della modalità network host per raggiungere 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
Una volta connesso, ogni modello che hai scaricato in Ollama appare nel menu a discesa dei modelli in Open WebUI. Puoi passare da uno all'altro durante la conversazione, confrontare gli output e impostare prompt di sistema per ogni modello.
Connessione alle API Cloud
Open WebUI si connette anche ai provider di modelli cloud. Nelle impostazioni di amministrazione sotto "Connections", aggiungi le tue chiavi API:
- OpenAI: Aggiungi la tua chiave API e tutti i modelli GPT diventeranno disponibili
- Anthropic: Aggiungi la tua chiave API per i modelli Claude (tramite proxy compatibile con OpenAI o integrazione diretta a seconda della versione)
- Custom endpoints: Qualsiasi servizio che espone un'API compatibile con OpenAI — Azure OpenAI, Together AI, Groq, istanze vLLM locali
È qui che Open WebUI diventa veramente utile come strumento quotidiano. Ottieni un'unica interfaccia per i modelli Llama locali (gratuiti, privati, ottimi per la sperimentazione) e i modelli cloud (più capaci, fatturazione basata sull'utilizzo). Il costo del cambio di contesto si azzera — cambi semplicemente il modello nel menu a discesa.
Docker Compose per uno Stack Completo
Per una configurazione locale più robusta, usa Docker Compose per eseguire Open WebUI e Ollama insieme:
# 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 sezione di prenotazione GPU è opzionale — rimuovila se stai eseguendo solo su CPU. Sui Mac con Apple Silicon, Ollama utilizza automaticamente il framework Metal GPU senza passthrough GPU di Docker (esegui Ollama nativamente su macOS piuttosto che in Docker per le migliori prestazioni).
Opzioni di Deployment nel Cloud
Eseguire Open WebUI localmente è ottimo per l'uso individuale. Ma quando vuoi che il tuo team vi acceda, o quando vuoi usarlo da qualsiasi dispositivo, hai bisogno di un deployment nel cloud.
Deployment VPS (Hetzner, DigitalOcean, ecc.)
Il percorso cloud più semplice è un VPS con Docker installato. Un server da $20/mese da Hetzner o DigitalOcean è sufficiente per l'interfaccia Open WebUI stessa. Se vuoi eseguire anche i modelli sul server, avrai bisogno di un'istanza GPU ($50-150/mese a seconda della GPU).
# Sul tuo VPS
apt update && apt install docker.io docker-compose-plugin -y
# Crea docker-compose.yml (uguale a sopra, meno la prenotazione GPU)
docker compose up -d
# Configura un reverse proxy con SSL
apt install nginx certbot python3-certbot-nginx -y
Configurazione del 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;
}
}
Poi certbot --nginx -d ai.yourdomain.com per SSL gratuito da Let's Encrypt. Ora hai un'interfaccia AI privata e protetta da SSL accessibile da qualsiasi luogo.
Deployment su Railway / Fly.io
Per un deployment gestito senza amministrazione del server:
# Usando Railway
railway login
railway init
railway up
O con 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
Queste piattaforme gestiscono SSL, scaling e riavvii automaticamente. Il compromesso è un minor controllo sull'infrastruttura e un costo maggiore su larga scala rispetto a un VPS.
Decisione Architettonica: Dove Eseguire i Modelli
La decisione architettonica chiave per i deployment nel cloud è se eseguire i modelli sullo stesso server di Open WebUI o connettersi a provider API esterni.
Stesso server: Latenza inferiore, nessun costo API per token, piena privacy dei dati. Ma hai bisogno di un server dotato di GPU ($100-300/mese per un'istanza GPU decente), e la selezione dei modelli è limitata dal tuo hardware.
Solo API esterne: Nessuna GPU necessaria, accesso ai migliori modelli da ogni provider, pagamento per token. Il server Open WebUI è leggero e economico da ospitare. Ma ogni conversazione passa attraverso un'API di terze parti, e i costi aumentano con l'utilizzo.
Ibrido: Esegui un modello locale per attività di routine e lavori sensibili alla privacy, connettiti alle API cloud per attività che richiedono modelli più capaci. Questo è ciò che uso io — Llama 3.1 per domande rapide e completamento del codice dove la privacy è importante, Claude o GPT-4o per ragionamenti complessi e attività di generazione.
Confronto con le Interfacce Commerciali
ChatGPT Plus ($20/mese)
ChatGPT ti offre GPT-4o, integrazione DALL-E, navigazione, interprete di codice e GPT personalizzati. L'interfaccia è curata e l'app mobile è eccellente.
Dove Open WebUI vince: flessibilità del modello (non sei bloccato su OpenAI), privacy dei dati (le conversazioni rimangono sul tuo server), personalizzazione (prompt di sistema personalizzati, pipeline RAG, chiamata di funzioni). Nessun limite di utilizzo sui modelli locali.
Dove ChatGPT vince: integrazioni native di strumenti, sandbox dell'interprete di codice, esperienza mobile, configurazione zero. L'ecosistema di plugin e GPT Store non ha equivalenti in Open WebUI.
Verdetto: ChatGPT Plus è difficile da battere per gli utenti non tecnici che desiderano un'esperienza pronta all'uso. Open WebUI è migliore per gli sviluppatori che desiderano controllo e flessibilità.
Claude Pro ($20/mese)
Claude Pro ti offre i modelli Claude Sonnet e Opus con finestre di contesto estese, creazione di artefatti e progetti con contesto persistente. La capacità di Claude di seguire le istruzioni e gestire documenti lunghi è la migliore della categoria.
Dove Open WebUI vince: puoi comunque utilizzare i modelli Claude tramite l'API pur avendo accesso a tutti gli altri modelli. Possiedi la tua cronologia delle conversazioni. Puoi aggiungere RAG e strumenti personalizzati.
Dove Claude vince: la funzione Progetti con contesto persistente, il sistema di artefatti per codice e documenti, la visualizzazione nativa del pensiero/ragionamento. Questi sono profondamente integrati nell'interfaccia di Claude e non hanno equivalenti in Open WebUI.
Verdetto: Se Claude è il tuo modello principale, è difficile abbandonare l'interfaccia nativa. Open WebUI è migliore come interfaccia unificata quando utilizzi più provider.
Per i Team
Il caso più convincente per Open WebUI è l'uso in team. Le interfacce AI commerciali offrono piani per team, ma di solito addebitano per posto ($25-30/utente/mese), le conversazioni sono archiviate sull'infrastruttura del provider e non puoi personalizzare l'esperienza.
Open WebUI con accesso per team ti offre: un costo di hosting unico indipendentemente dal numero di utenti, conversazioni archiviate sulla tua infrastruttura, preset di modelli personalizzati per team o progetto, raccolte di documenti RAG condivise e controlli amministrativi su quali modelli e funzionalità sono disponibili.
Per un team di 10 sviluppatori, gli abbonamenti commerciali di chat AI costano $200-300/mese. Un'istanza Open WebUI self-hosted con accesso API cloud costa $20-40/mese per l'hosting più l'utilizzo API pay-as-you-go. L'economia si sposta ulteriormente a tuo favore man mano che il team cresce.
Configurazione della Pipeline RAG
La Retrieval-Augmented Generation è una delle funzionalità più potenti di Open WebUI. Carica documenti e l'AI potrà farvi riferimento quando risponde alle domande. Questo trasforma Open WebUI da una chat generica in una base di conoscenza che comprende la tua documentazione specifica, il tuo codebase o i tuoi dati aziendali.
Caricamento Documenti
Open WebUI supporta il caricamento diretto di documenti tramite l'interfaccia. Trascina un PDF, un file markdown o un file di testo nella chat, e verrà automaticamente suddiviso in chunk, incorporato e indicizzato per il recupero. L'AI farà riferimento ai documenti caricati quando risponde alle domande.
Per l'ingestione massiva di documenti, usa la sezione di gestione dei documenti del pannello di amministrazione. Puoi organizzare i documenti in collezioni e controllare quali collezioni sono disponibili in quali chat.
Configurazione dell'Embedding
Open WebUI utilizza modelli di embedding per convertire i documenti in vettori per la ricerca semantica. Per impostazione predefinita, utilizza un modello di embedding locale, ma puoi configurarlo per utilizzare l'API di embedding di OpenAI per una migliore qualità:
Nelle impostazioni di amministrazione sotto "Documents," configura:
- Embedding model:
text-embedding-3-small(OpenAI) o un modello locale tramite Ollama - Chunk size: 1000 token (predefinito, regola in base ai tuoi documenti)
- Chunk overlap: 100 token (aiuta a mantenere il contesto tra i chunk)
- Top K: 5 (numero di chunk rilevanti da recuperare per query)
Casi d'Uso Pratici del RAG
Documentazione del codebase: Carica il README del tuo progetto, i documenti di architettura e la documentazione API. Poni domande all'AI sul tuo progetto e ottieni risposte basate sui tuoi documenti reali piuttosto che sui dati di addestramento generali del modello.
Note e decisioni delle riunioni: Carica trascrizioni delle riunioni e registri delle decisioni. "Cosa è stato deciso riguardo alla tempistica della migrazione del database nella riunione della scorsa settimana?" ottiene una risposta accurata invece di una allucinata.
Articoli di ricerca e specifiche tecniche: Carica PDF di articoli o specifiche con cui stai lavorando. L'AI può riassumere, confrontare e rispondere a domande su contenuti che non sono nei suoi dati di addestramento.
La qualità delle risposte RAG dipende fortemente dalla suddivisione in chunk dei documenti e dalla qualità dell'embedding. Se le risposte sembrano mancare informazioni rilevanti, prova a ridurre la dimensione del chunk (in modo che ogni chunk sia più focalizzato) o ad aumentare Top K (in modo che vengano recuperati più chunk).
Configurazioni di Modelli Personalizzati
Open WebUI ti consente di creare preset di modelli — configurazioni salvate con prompt di sistema personalizzati, impostazioni di temperatura e selezioni di modelli. Questo è utile per creare assistenti specifici per uno scopo senza modificare i modelli sottostanti.
Creazione di un Preset per la Revisione del Codice
Nelle impostazioni di Open WebUI, crea un nuovo preset di modello:
- Name: Code Reviewer
- Base model: Claude Sonnet (o il tuo modello preferito)
- System prompt: "Sei un revisore di codice senior. Analizza il codice fornito per bug, problemi di sicurezza, problemi di prestazioni e violazioni dello stile. Sii specifico sui numeri di riga e fornisci snippet di codice corretti. Dai priorità ai problemi in base alla gravità."
- Temperature: 0.3 (più bassa per un output più coerente e focalizzato)
Creazione di un Preset per l'Assistente alla Scrittura
- Name: Technical Writer
- Base model: GPT-4o
- System prompt: "Sei un assistente alla scrittura tecnica. Aiuta a redigere documentazione tecnica chiara e concisa. Usa la voce attiva. Evita il gergo a meno che il pubblico non sia tecnico. Struttura il contenuto con intestazioni, elenchi ed esempi di codice dove appropriato."
- Temperature: 0.7 (più alta per un output più creativo)
Questi preset appaiono nel menu a discesa dei modelli insieme ai tuoi modelli regolari. Passi al preset "Code Reviewer" quando rivedi il codice e al "Technical Writer" quando redigi documenti. Il prompt di sistema viene applicato automaticamente.
Vantaggi per la Privacy
L'argomento della privacy per l'AI self-hosted non è teorico. Ha implicazioni concrete per diversi casi d'uso.
Codice Sensibile
Quando incolli codice proprietario in ChatGPT o Claude, lo stai inviando a un server di terze parti. I provider hanno politiche di gestione dei dati — OpenAI e Anthropic dichiarano entrambi di non addestrare sui dati API — ma i dati lasciano comunque la tua infrastruttura. Per le aziende con politiche IP rigorose, settori regolamentati o contratti governativi, questo può essere un ostacolo insormontabile.
Con Open WebUI connesso a Ollama, il tuo codice non lascia mai la tua macchina. Il modello viene eseguito localmente, l'inferenza avviene localmente e la cronologia delle conversazioni è archiviata localmente. Per i deployment nel cloud, i dati rimangono sul tuo server.
Dati del Cliente
Se sei un consulente o un'agenzia che lavora con dati del cliente, l'utilizzo di interfacce AI commerciali crea una questione di gestione dei dati a cui devi rispondere per ogni cliente. Open WebUI self-hosted ti offre una risposta chiara: i dati rimangono nella tua infrastruttura, sotto il tuo controllo, soggetti alle tue politiche di sicurezza.
Conformità
HIPAA, SOC 2, GDPR — questi framework si preoccupano di dove i dati vengono elaborati e archiviati. Un'interfaccia AI self-hosted sulla tua infrastruttura conforme è intrinsecamente più facile da includere nel tuo ambito di conformità rispetto a uno strumento SaaS di terze parti.
Questo non significa che il locale sia sempre migliore. Le API AI cloud hanno le proprie certificazioni di conformità, e per molti casi d'uso, la postura di conformità delle offerte enterprise di OpenAI o Anthropic è più forte di quella che puoi costruire tu stesso. Il punto è che l'auto-hosting ti offre l'opzione quando ne hai bisogno.
Considerazioni sulle Prestazioni
Prestazioni dei Modelli Locali
L'esecuzione di modelli localmente significa che il tuo hardware determina l'esperienza. Ecco dei benchmark approssimativi per Llama 3.1 8B:
- Apple M1 Pro (16GB RAM): ~15 token/secondo — utilizzabile per interazioni brevi
- Apple M2 Ultra (64GB RAM): ~40 token/secondo — confortevole per conversazioni estese
- NVIDIA RTX 4090: ~80 token/secondo — risposte quasi istantanee
- Solo CPU (senza GPU): ~2-5 token/secondo — dolorosamente lento, non raccomandato
Per modelli più grandi come Llama 3.1 70B, hai bisogno di almeno 48GB di RAM (M2 Max o superiore su Mac, o una GPU di livello server). Il miglioramento della qualità è significativo, ma il requisito hardware è elevato.
Confronto della Latenza
Per le connessioni API cloud, Open WebUI aggiunge un overhead minimo — tipicamente 10-30ms in aggiunta alla latenza nativa dell'API. Il collo di bottiglia è sempre l'inferenza del modello, non l'interfaccia.
Per i modelli locali, la latenza è una funzione della dimensione del modello e dell'hardware. La latenza del primo token (il tempo prima che il modello inizi a generare) varia da 100ms per modelli piccoli su hardware veloce a diversi secondi per modelli grandi su hardware limitato. La visualizzazione in streaming nasconde la maggior parte di questo all'utente.
Quando Auto-Ospitare vs. Usare Commerciale
Auto-ospita quando:
- Lavori con dati sensibili o proprietari
- Vuoi usare modelli locali per motivi di privacy o costo
- Hai bisogno di un'interfaccia AI per team senza licenze per posto
- Vuoi personalizzare la pipeline RAG o aggiungere strumenti personalizzati
- Usi più provider di modelli e vuoi un'interfaccia unificata
Usa interfacce commerciali quando:
- Hai bisogno della più stretta integrazione possibile con un modello specifico (Claude Projects, plugin ChatGPT)
- Apprezzi le app mobili e la sincronizzazione tra dispositivi
- Non vuoi gestire l'infrastruttura
- Il tuo caso d'uso non coinvolge dati sensibili
- Hai bisogno dell'esperienza più curata e con le ultime funzionalità
Per la maggior parte degli sviluppatori, la risposta è entrambi. Io uso l'interfaccia nativa di Claude per lavori approfonditi che beneficiano di Claude Projects, ChatGPT per attività che richiedono l'interprete di codice e Open WebUI per tutto il resto — specialmente quando voglio usare modelli locali, confrontare gli output tra i provider o lavorare con documenti che non voglio inviare a un'API cloud.
Open WebUI non mira a sostituire le interfacce commerciali. Si tratta di avere l'opzione di controllare la tua infrastruttura AI quando quel controllo è importante. La configurazione richiede 30 minuti. I vantaggi in termini di privacy e flessibilità sono permanenti.