Come Ospitare Ollama in Self-Hosting su un VPS (Setup Reale nel 2026)
Il comando di installazione di Ollama è notoriamente semplice. La complicazione sta nel fatto che lo stesso comando può configurare un server di inferenza utile su una macchina con GPU da 24 GB e uno invece molto lento su un VPS da 2 GB. La differenza sta nella scelta del modello e nella configurazione che si fa dopo l’installazione.
Ecco la configurazione che davvero funziona nel 2026, con numeri reali presi dal mio server Hetzner.
Decisiones Pre-Installazione
Prima di eseguire l’installatore, decidi:
- Quale modello installerai? Questo determina RAM e spazio disco necessari. I modelli 7B necessitano di 10 GB di RAM, i 13B di 16 GB, i 70B di almeno 48 GB con Q4 quantization.
- CPU o GPU? La CPU funziona bene con modelli da 7B a 5-7 token/sec, accettabile per batch e fastidiose per chat. La GPU è obbligatoria per lavori interattivi a partire da 13B.
- Chi accederà? Uso personale può rimanere locale. Per team, è necessario l’autenticazione e probabilmente un frontend separato come Open WebUI.
Salta l’installazione se il tuo hardware non supporta il modello. Eseguire un modello da 70B con 16 GB di RAM non funzionerà, nessuna quantizzazione astuta può risolverlo.
Passo 1: Preparazione del VPS
Per questa guida, supponiamo un Hetzner CCX23 (4 vCPU, 16 GB RAM, NVMe). Adegua alle tue esigenze. Accedi tramite SSH e prepara il sistema:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl ca-certificates
Se hai un VPS con GPU (Hetzner GEX, Lambda, ecc.), verifica che i driver NVIDIA siano installati:
nvidia-smi
Se fallisce, installa prima i driver seguendo le istruzioni del provider. Ollama non utilizzerà la GPU se i driver sono assenti, e il fallback silenzioso alla CPU è la causa più comune di domande tipo “perché è così lento”.
Passo 2: Installare Ollama
L’installatore ufficiale:
curl -fsSL https://ollama.com/install.sh | sh
Questo installa il binario in /usr/local/bin/ollama e configura un servizio systemd che viene eseguito come utente ollama. Per default, Ollama si collega a 127.0.0.1:11434 (solo localhost), il che garantisce sicurezza.
Verifica che il servizio sia attivo:
sudo systemctl status ollama
Dovrebbe risultare active (running).
Passo 3: Sposta lo Storage dei Modelli in una Directory Dedicata
I modelli sono grandi. La posizione predefinita /usr/share/ollama condivide spazio sul disco di root, che di solito è il più piccolo. Configura Ollama con un percorso sul disco dati:
sudo systemctl stop ollama
sudo mkdir -p /var/ollama/models
sudo chown -R ollama:ollama /var/ollama
Modifica le impostazioni di systemd:
sudo systemctl edit ollama
Aggiungi:
[Service]
Environment="OLLAMA_MODELS=/var/ollama/models"
Environment="OLLAMA_KEEP_ALIVE=10m"
Environment="OLLAMA_NUM_PARALLEL=2"
Ricarica e riavvia:
sudo systemctl daemon-reload
sudo systemctl start ollama
OLLAMA_KEEP_ALIVE di 10 minuti bilancia pressione sulla memoria e reattività. Il default di 5 minuti genera latenza di avvio a ogni pausa d’uso. OLLAMA_NUM_PARALLEL di 2 permette a due richieste di condividere il modello in RAM, ottimo per team o multi-app.
Passo 4: Scarica il Primo Modello
Per VPS da 16 GB senza GPU, inizia con Llama 3.1 8B Q4:
ollama pull llama3.1:8b-instruct-q4_K_M
Il download è circa 4,6 GB. La prima volta che lo carichi, ci impiega 15-30 secondi per caricarlo in RAM. Provalo:
ollama run llama3.1:8b-instruct-q4_K_M "Spiega in una frase cosa significa self-hosting."
Dovresti ricevere una risposta coerente. Su una CPU CCX23, aspettati 5-7 token/sec. Su una GPU, 50-100+ token/sec a seconda della GPU.
Passo 5: Rendere Ollama Accessibile ad Altre App (In modo Sicuro)
Per app locali sullo stesso VPS (Open WebUI, Flowise, LangGraph), 127.0.0.1:11434 è ciò a cui si connettono. Niente di più.
Per app su altri dispositivi, bindare Ollama a una rete privata e mettere una autenticazione davanti. Pattern che uso:
- Tailscale sul VPS e sui dispositivi client
- Bindare Ollama all’interfaccia Tailscale
Modifica di nuovo le impostazioni di systemd:
sudo systemctl edit ollama
Aggiungi (sostituisci 100.x.x.x con il tuo IP Tailscale):
[Service]
Environment="OLLAMA_HOST=100.x.x.x:11434"
Ricarica e riavvia. Ora altri dispositivi collegati a Tailscale possono accedere al tuo endpoint Ollama senza esporlo a internet pubblico.
Per un’esposizione pubblica (solo se realmente necessario), posiziona Caddy o Nginx con autenticazione token davanti. Mai esporre Ollama su 0.0.0.0:11434 senza protezioni, non ha autenticazione integrata e potresti subito aver problemi di mining sul VPS.
Passo 6: Monitorare l’Utilizzo delle Risorse
Tieni sotto controllo RAM mentre il modello si carica e funziona:
watch -n 2 'free -h && echo "" && systemctl status ollama | grep Memory'
Il modello Q4 da 8B dovrebbe occupare circa 5-6 GB di memoria residua. Se vedi Ollama usare molto di più, potrebbe esserci un context window più grande di quello che pensavi. Verifica con:
ollama show llama3.1:8b-instruct-q4_K_M
Cosa Fare Dopo
Una volta avviato Ollama, la domanda è cosa ci metti davanti:
- Open WebUI per chat multiutente simili a ChatGPT
- AnythingLLM per workspace di Q&A sui documenti
- Flowise per automatizzare workflow visivi
- Cline per assistenza di coding nell’IDE
- SmolAgents o CrewAI per framework di agenti
Per confronti tra VPS su questi strumenti, consulta le guide SelfHostVPS. Per la matematica realistica GPU vs CPU su Ollama, la pagina Best VPS for Ollama illustra i numeri di token/sec misurati su varie tipologie di hardware.
Frequently asked questions
Posso installare Ollama su qualsiasi VPS o serve hardware speciale?
Puoi installare Ollama su qualsiasi VPS Linux. Il comando di installazione funziona tranquillamente su un Hetzner CPX11 da 2 GB. La nota importante è che senza una GPU sei limitato a modelli piccoli (3B e 7B con una quantizzazione decente). Senza abbastanza RAM, anche quelli ridurranno la velocità o potrebbero non caricarsi. Pianifica l'hardware in base al modello che vuoi effettivamente usare, non in base ai requisiti minimi dell'installazione.
Quale modello Ollama dovrei scaricare prima su un VPS con CPU?
Inizia con llama3.1:8b-instruct-q4_K_M per un modello bilanciato e versatile, o qwen2.5:3b per qualcosa di più veloce su VPS piccoli. Il modello Q4 da 8B richiede circa 10 GB di RAM in pratica e funziona a 5-7 token al secondo su un Hetzner CCX23. Qualsiasi modello più grande diventa difficile da gestire su CPU. Il modello coder più piccolo e utile è deepseek-coder-v2:lite, con circa 6 GB.
Come posso esporre Ollama ad altri dispositivi in modo sicuro?
Ci sono due metodi. Per uso interno, collega Ollama a un'interfaccia di rete privata e usa una VPN come Tailscale o WireGuard. Per un'esposizione pubblica, non bindare mai direttamente su 0.0.0.0; utilizza un reverse proxy (Caddy o nginx) con autentificazione corretta. Ollama stesso non ha autenticazione, quindi un endpoint pubblico senza protezioni è come lasciare credit card free a chiunque lo trovi.
Ollama ha bisogno di configurazioni dopo l'installazione o funziona subito?
Funziona immediatamente per test. Per l'uso in produzione, devi impostare OLLAMA_HOST, OLLAMA_MODELS (per puntare al tuo disco dati), OLLAMA_KEEP_ALIVE (per controllare quanto a lungo i modelli restano in RAM) e OLLAMA_NUM_PARALLEL (gestione di richieste concorrenti). I valori di default sono ottimizzati per usare su desktop; i server beneficiano di una configurazione più esplicita.