Vai al contenuto
Interfaccia di Open WebUI in modalità scura con campo di testo per chattare.

Immagine: progetto open-webui (GitHub)

Ollama fa girare i modelli linguistici sul tuo computer, ma di base si usa dal terminale. Open WebUI gli aggiunge un’interfaccia web simile a ChatGPT, con la cronologia delle chat, gli account utente e la scelta del modello. Questa guida è per chi ha un PC con Ubuntu e vuole una chat nel browser che usa solo modelli locali. Alla fine avrai Docker installato, Ollama attivo come servizio con un modello scaricato e Open WebUI su http://localhost:3000, più le istruzioni per aggiornare e disinstallare tutto. I comandi sono quelli della documentazione ufficiale di Docker, Ollama e Open WebUI, elencata in fondo.

Cosa serve

  • Sistema: la guida di Docker per Ubuntu copre le versioni a 64 bit di Ubuntu 26.04 LTS (Resolute), 24.04 LTS (Noble) e 22.04 LTS (Jammy). Le derivate come Linux Mint non sono supportate ufficialmente, anche se possono funzionare.
  • Architettura: Docker Engine per Ubuntu supporta x86_64 (amd64), armhf, arm64, s390x e ppc64le. Open WebUI funziona su Linux x86_64 e ARM64.
  • Privilegi: un utente che possa usare sudo.
  • Memoria per il modello: il modello della guida, Gemma 4 E2B, è un download di circa 7,2 GB. Ollama consiglia 8 GB di VRAM disponibile; con meno VRAM usa la RAM di sistema, ma le risposte possono essere più lente.
  • Spazio per Open WebUI: l’immagine :main è un download compresso di circa 1,66 GB su Linux/amd64.
  • Una chiave segreta per Open WebUI, da generare con openssl rand -hex 32.

Installare Docker con lo script ufficiale e verificare che sia attivo

Open WebUI si installa come container, quindi prima serve Docker. La strada più rapida è lo script di comodità di get.docker.com, che riconosce la distribuzione e configura da solo il gestore dei pacchetti. Docker lo consiglia per ambienti di test e sviluppo, non per la produzione, e avverte che installa dipendenze e pacchetti raccomandati senza chiedere conferma: conviene leggerlo prima di eseguirlo.

Scarica lo script:

curl -fsSL https://get.docker.com -o get-docker.sh

Poi eseguilo con i privilegi di root:

sudo sh get-docker.sh

Sulle distribuzioni basate su Debian, come Ubuntu, il servizio Docker parte in automatico. Controlla che sia attivo:

sudo systemctl status docker

Per la prova completa avvia l’immagine di test:

sudo docker run hello-world

Il comando scarica un’immagine di prova e la avvia in un container, che stampa un messaggio di conferma e si chiude. Un dettaglio per il futuro: se Docker è stato installato con lo script, va aggiornato con il gestore dei pacchetti e non rilanciando lo script.

Installare Ollama e controllarne la versione

Ollama è il motore che carica ed esegue i modelli. Su Linux si installa con lo script indicato nella documentazione di Ollama per Linux:

curl -fsSL https://ollama.com/install.sh | sh

Poi controlla che il programma risponda:

ollama -v

Deve comparire il numero della versione installata. Lo stesso script serve anche per aggiornare: su Linux basta rilanciarlo.

Avviare il servizio Ollama, verificarlo e leggere i log

Come servizio di systemd, Ollama resta in ascolto in background e Open WebUI può raggiungerlo senza un terminale aperto. Avvia il servizio:

sudo systemctl start ollama

Poi controlla lo stato, che deve risultare attivo:

sudo systemctl status ollama

Se il comando indica che il servizio non esiste, crealo seguendo la sezione «Adding Ollama as a startup service» della pagina Linux di Ollama, poi ripeti i due comandi. Se invece il servizio c’è ma qualcosa non torna, i log si leggono così:

journalctl -e -u ollama

Scaricare un modello e provarlo dal terminale

Prima di aggiungere l’interfaccia web conviene verificare che Ollama risponda. Il Quickstart di Ollama usa Gemma 4 E2B:

ollama run gemma4:e2b

Ollama scarica il modello e apre una chat nel terminale. Scrivi una domanda e aspetta la risposta; per uscire scrivi /bye. Il modello resta salvato in locale e lo ritroverai in Open WebUI.

Rendere Ollama raggiungibile dal container

Come spiegano le FAQ di Ollama, per impostazione predefinita Ollama ascolta solo su 127.0.0.1, porta 11434. Perché il container Docker lo raggiunga si cambia l’indirizzo di ascolto con la variabile OLLAMA_HOST, impostata in un override del servizio systemd.

Apri l’editor dell’override. Servono i privilegi di root: se non sei root, aggiungi sudo davanti, come fa la pagina Linux di Ollama.

systemctl edit ollama.service

Nel file che si apre:

  1. scrivi la riga [Service], se non c’è già;
  2. subito sotto aggiungi Environment="OLLAMA_HOST=0.0.0.0:11434";
  3. salva e chiudi l’editor.

Ricarica la configurazione di systemd, anche qui con i privilegi di root:

systemctl daemon-reload

Poi riavvia Ollama per applicare la modifica:

systemctl restart ollama

Attenzione: con 0.0.0.0 Ollama accetta connessioni da tutte le interfacce di rete, non solo dal container. Se il computer è raggiungibile da altre macchine, proteggi la porta 11434 con regole del firewall oppure mettila dietro un reverse proxy con autenticazione.

Per controllare che Ollama sia ripartito usa di nuovo sudo systemctl status ollama.

Avviare Open WebUI collegato all’Ollama del computer

Prima una questione di permessi. Dopo l’installazione con lo script il gruppo docker esiste ma non contiene utenti, quindi un utente normale riceve un errore quando lancia i comandi Docker. I comandi di questa sezione e di quelle su aggiornamento e disinstallazione sono scritti senza sudo, come nella documentazione di Open WebUI: tu scrivi sudo davanti, cioè sudo docker run … e sudo docker logs -f open-webui. L’alternativa è seguire i passaggi post-installazione di Docker per usarlo come utente normale.

Poi serve la chiave segreta. Genera una stringa casuale con openssl rand -hex 32 e conservala: nel comando che segue sostituisci your-secret-key con quella stringa. La chiave si sceglie una volta e si tiene, perché senza una chiave fissa ogni volta che il container viene ricreato tutti gli utenti vengono disconnessi.

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Il comando scarica l’immagine e avvia il container. Secondo la Quick Start di Open WebUI, le opzioni fanno questo:

  • -p 3000:8080 rende l’interfaccia disponibile sulla porta 3000 del computer;
  • --add-host=host.docker.internal:host-gateway permette al container di raggiungere i servizi del computer, Ollama compreso. Se OLLAMA_BASE_URL non è impostata, Open WebUI cerca Ollama su http://host.docker.internal:11434;
  • -v open-webui:/app/backend/data salva chat, utenti e impostazioni in un volume che sopravvive agli aggiornamenti e non va mai tolto;
  • --restart always fa ripartire il container dopo un riavvio;
  • :main è l’immagine standard, con i modelli integrati per la trascrizione vocale e gli embedding.

Per seguire l’avvio leggi i log del container (sempre con sudo davanti):

docker logs -f open-webui

L’opzione -f mostra i log in tempo reale. Quando l’avvio è finito, interrompi con Ctrl+C: il container continua a girare.

Primo accesso e prima chat

Apri il browser su http://localhost:3000: la porta è quella scelta con -p 3000:8080. Crea un account, poi scegli il modello scaricato prima, gemma4:e2b, e inizia a chattare.

Aggiornare Open WebUI

Anche qui, se non hai configurato Docker per l’utente normale, scrivi sudo davanti a ogni comando. L’immagine :main punta sempre all’ultima build del ramo principale. Per aggiornare si elimina il container, si scarica l’immagine nuova e si riavvia il container con lo stesso comando di prima. Chat e account restano nel volume open-webui, che questi comandi non toccano.

docker rm -f open-webui
docker pull ghcr.io/open-webui/open-webui:main
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Al posto di your-secret-key usa la stessa chiave dell’installazione: con una chiave diversa tutti gli utenti dovranno rifare l’accesso.

Disinstallare Open WebUI

Come per l’avvio, se non hai configurato Docker per l’utente normale scrivi sudo davanti a ogni comando. Il primo ferma ed elimina il container:

docker rm -f open-webui

Il secondo, facoltativo, elimina l’immagine scaricata:

docker rmi ghcr.io/open-webui/open-webui:main

Attenzione: il comando che segue cancella il volume open-webui con tutti i dati di Open WebUI, cioè chat, account e impostazioni. Non si può annullare. Lancialo solo se vuoi eliminare davvero tutto, e controlla che il nome sia quello del volume usato nel comando docker run.

docker volume rm open-webui

Disinstallare Ollama

La procedura segue la sezione Uninstall della pagina Linux di Ollama. Prima si ferma il servizio, poi lo si disattiva e infine si elimina il suo file:

sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service

Ora, prima di cancellare il binario, vanno eliminate le librerie di Ollama. Stanno nella cartella lib che corrisponde alla cartella bin del binario: /usr/local/lib, /usr/lib oppure /lib. L’ordine conta perché il comando della documentazione ricava il percorso delle librerie da quello del binario: se cancelli prima il binario, non lo trova più.

Controlla dove si trova il binario con which ollama. Se stampa, per esempio, /usr/local/bin/ollama, la cartella che verrà cancellata è /usr/local/lib/ollama. Se il percorso non sta in una delle tre cartelle bin standard (/usr/local/bin, /usr/bin, /bin), fermati e non lanciare il comando delle librerie.

Attenzione: il comando delle librerie cancella in modo ricorsivo, con i privilegi di root, la cartella ricavata dal percorso del binario. Lancialo solo dopo aver controllato il percorso con which ollama: se il percorso ricavato è sbagliato, puoi perdere file di sistema che non c’entrano con Ollama.

Il comando, così come compare nella sezione Uninstall della pagina Linux di Ollama:

sudo rm -r $(which ollama | tr 'bin' 'lib')

Poi elimina il binario:

sudo rm $(which ollama)

Quindi l’utente e il gruppo di servizio:

sudo userdel ollama
sudo groupdel ollama

Attenzione: il comando che segue cancella in modo ricorsivo /usr/share/ollama. Lì dentro, in .ollama/models, ci sono tutti i modelli scaricati, che per riaverli andrebbero scaricati di nuovo. Controlla di aver scritto il percorso esatto: un errore di battitura con rm -r e i privilegi di root può cancellare altre cartelle di sistema.

sudo rm -r /usr/share/ollama

Se qualcosa va storto

  • Docker non risulta attivo: va avviato a mano con systemctl (start al posto di status), poi si ripete la verifica con hello-world.
  • Errori quando lanci Docker senza root: dopo l’installazione il gruppo docker esiste ma non contiene utenti, quindi serve sudo. Per usare Docker come utente normale ci sono i passaggi post-installazione per Linux.
  • Vieni disconnesso da Open WebUI a ogni aggiornamento: il container è stato ricreato con una WEBUI_SECRET_KEY diversa o assente. Usa sempre la stessa chiave.
  • La porta 3000 è già occupata: nell’opzione -p 3000:8080 cambia il numero a sinistra e apri l’interfaccia sulla nuova porta.
  • Il firewall non blocca la porta di Open WebUI: se gestisci il firewall con ufw o firewalld, le porte che Docker pubblica per i container aggirano quelle regole. Docker supporta solo regole create con iptables o ip6tables e aggiunte alla catena DOCKER-USER.

Documentazione di riferimento

La guida di Docker usata qui è specifica per Ubuntu: su altre distribuzioni lo script prova a riconoscere il sistema, ma requisiti e comportamento possono cambiare. Pagine consultate il 29 settembre 2026:

Leggi anche