Come Autohostare OpenClaw su un VPS (Configurazione di Produzione 2026)
OpenClaw è passato da 9K a 210K stelle su GitHub in sei settimane, il che significa che la documentazione non ha ancora tenuto il passo con le esigenze di produzione. La configurazione demo funziona. Quella reale, per uso quotidiano, richiede un lavoro più accurato, soprattutto riguardo ai gateway di messaggistica e all’isolamento sandbox degli strumenti.
Ecco l’installazione di produzione che io uso su un Hetzner CCX23, con i dettagli non segnalati nelle guide ufficiali.
Checklist Pre-Installazione
Hai bisogno di:
- VPS con Ubuntu 24.04 o Debian 12
- almeno 16 GB di RAM per la produzione (8 GB solo per testing o uso singolo)
- un disco NVMe da 160 GB
- un nome di dominio puntato al tuo VPS per HTTPS
- chiavi API del provider del modello (OpenAI, Anthropic, o Ollama locale)
- token API per i gateway di messaggistica che intendi usare
Le dimensioni del VPS sono più importanti qui rispetto a molti altri strumenti perché il registry MCP di OpenClaw e i daemon dei gateway si sommano. La guida migliore sui VPS per OpenClaw copre in dettaglio il calcolo delle caratteristiche.
Passo 1: Provisionare e Rinforzare il VPS
Aggiorna il sistema e installa i prerequisiti:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git ufw ca-certificates gnupg
Configura il firewall prima di qualsiasi altra cosa:
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Installa Docker seguendo la documentazione ufficiale Docker (non usare il pacchetto distro, è indietro):
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
Verifica Docker:
docker run --rm hello-world
Passo 2: Clona e Configura OpenClaw
Clona il repository ufficiale:
mkdir -p /opt
sudo git clone https://github.com/openclaw/openclaw.git /opt/openclaw
sudo chown -R $USER:$USER /opt/openclaw
cd /opt/openclaw
Copia il esempio di configurazione e modificalo:
cp .env.example .env
nano .env
Le impostazioni critiche da cambiare:
POSTGRES_PASSWORD=<Genera una password sicura>
[email protected]
ADMIN_PASSWORD=<Genera un'altra password sicura>
PUBLIC_DOMAIN=openclaw.yourdomain.com
MODEL_PROVIDER=openai
OPENAI_API_KEY=sk-...
Per la password del database, genera una casuale con openssl rand -hex 24. Stessa cosa per la password dell’amministratore. Non usare valori di default, le distribuzioni di OpenClaw vengono scansionate per credenziali trapelate poche ore dopo essere rese pubbliche.
Passo 3: Avvia i Container
docker compose pull
docker compose up -d
Il primo avvio richiede dai 2 ai 5 minuti poiché inizializza il database Postgres e applica le migrazioni. Guarda i log:
docker compose logs -f openclaw
Cerca Server listening on :8080 per confermare che sia attivo.
Passo 4: Configura il Reverse Proxy
OpenClaw gira sulla porta 8080 in modo interno. Usa Caddy davanti per la terminazione HTTPS. Installa Caddy:
sudo apt install -y caddy
Configura /etc/caddy/Caddyfile:
openclaw.yourdomain.com {
reverse_proxy localhost:8080
}
Assicurati che il record A DNS punti al VPS, poi ricarica Caddy:
sudo systemctl reload caddy
Caddy gestisce automaticamente Let’s Encrypt. Visita https://openclaw.yourdomain.com e vedrai la schermata di login di OpenClaw con un certificato valido.
Passo 5: Setup Iniziale via Web UI
Accedi con le credenziali dell’amministratore dal file .env. La procedura guidata chiederà:
- Configurazione del provider del modello (auto-detect se impostato nel
.env) - Nome della workspace iniziale
- Integrazioni MCP opzionali (comincia con il file system e la ricerca web)
- Primo account utente
Testa che l’agente funzioni: in una chat con la workspace di default, chiedi “Cosa puoi fare?” L’agente dovrebbe descrivere gli strumenti disponibili.
Se ottieni un errore riguardo all’endpoint del modello, verifica i log:
docker compose logs openclaw | grep -i error
Problemi comuni in questa fase:
- Formato chiave OpenAI sbagliato (deve iniziare con
sk-) - Errore nel nome del modello (usa
gpt-4o-minioclaude-3-5-sonnet-20241022, non nomi arbitrari) - Rate limit sul tuo account API, specialmente con chiavi OpenAI del piano gratuito
Passo 6: Aggiungi i Gateway di Messaggistica
Questo è il step che rende OpenClaw così potente. Per WhatsApp Business:
- Ottieni un account WhatsApp Business API (via Meta, Twilio, o 360dialog)
- Nelle impostazioni di OpenClaw: Integrazioni → WhatsApp → Aggiungi
- Incolla il token di accesso e l’ID del numero di telefono
- Configura l’URL del webhook:
https://openclaw.yourdomain.com/webhooks/whatsapp
Per Slack:
- Crea un’app Slack su api.slack.com/apps
- Abilita Socket Mode e le sottoscrizioni degli eventi
- Installa nel tuo workspace
- In OpenClaw: Integrazioni → Slack → Aggiungi, incolla il token bot e il token app
Per Telegram:
- Crea un bot tramite @BotFather e ottieni il token
- In OpenClaw: Integrazioni → Telegram → Aggiungi, incolla il token
Ogni gateway appare come un nuovo canale di conversazione in OpenClaw. Lo stesso agente serve tutti i canali, con lo storico delle conversazioni salvato per utente e canale.
Passo 7: Ruggedizzazione del Registry degli Strumenti
Il registry MCP è ciò che rende OpenClaw potente e introduce veri problemi di sicurezza. Configurazione di default consente all’agente di installare nuovi strumenti in runtime, ottimo per capacità, ma rischioso in produzione.
Limitandolo si modifica .env:
TOOL_REGISTRY_MODE=allowlist
TOOL_REGISTRY_ALLOWLIST=filesystem,web-search,github,gmail
Ora solo gli strumenti nella allowlist possono essere attivati. Aggiungi altri strumenti man mano che li verifichi. Riavvia:
docker compose restart openclaw
Passo 8: Strategia di Backup
Le due cose che devono assolutamente sopravvivere a un guasto del VPS: il database Postgres e il volume di archiviazione file.
Aggiungi un backup automatico quotidiano:
sudo crontab -e
E inserisci:
0 3 * * * cd /opt/openclaw && docker compose exec -T postgres pg_dump -U openclaw openclaw | gzip > /backup/openclaw-$(date +\%Y\%m\%d).sql.gz && find /backup -name "openclaw-*.sql.gz" -mtime +14 -delete
Esegue tutti i giorni alle 3 di notte, dump del Postgres e conserva 14 giorni di backup. Replica i backup su un ambiente offsite (S3, Backblaze, altro VPS) per un disaster recovery reale.
Cosa Fare Dopo
Con l’installazione di base funzionante, le priorità successive sono di solito:
- Aggiungere più strumenti MCP man mano che li verifici sicuri
- Configurare account utenti e permessi per il team
- Implementare monitoraggio (Uptime Kuma funziona bene con OpenClaw)
- Ottimizzare la
Frequently asked questions
Quanto tempo richiede effettivamente l'installazione di OpenClaw?
Circa 25 minuti su un VPS Ubuntu 24.04 fresco con il percorso Docker Compose. I pull dei container sono lo step più lento (da 10 a 15 minuti a seconda della banda del tuo VPS). Successivamente, la configurazione iniziale tramite l'interfaccia web richiede dai 5 ai 10 minuti per l'endpoint del modello, l'account amministratore e il primo gateway di messaggistica.
Devo usare Docker o posso installare OpenClaw nativamente?
Docker Compose è il metodo supportato e raccomandato. L'installazione nativa è tecnicamente possibile seguendo i componenti nel file compose, ma l'isolamento sandbox degli strumenti rende Docker praticamente obbligatorio per l'uso in produzione. Provare a eseguire il registry di strumenti MCP senza isolamento dei container crea problemi di sicurezza reali. Usa Docker.
Quali porte deve aprire OpenClaw sul VPS?
Porta 443 per l'accesso HTTPS all'interfaccia web (mediante il reverse proxy). Internamente, OpenClaw usa la 8080 per l'API e 5432 per Postgres, ma queste non devono essere esposte pubblicamente. I gateway di messaggistica (WhatsApp, Telegram, Slack) utilizzano solo connessioni in uscita e non richiedono porte in ingresso. Blocca il firewall solo sulle porte 22 (SSH) e 443.
Come posso aggiornare OpenClaw dopo l'installazione senza perdere i miei dati?
Lo schema standard: fermare i container, scaricare le nuove immagini, riavviare. Il volume di Postgres e il volume di archiviazione file persistono tra aggiornamenti dei container. Fai sempre uno snapshot del VPS o un backup del database Postgres prima di aggiornare, specialmente per major version bump. Le note di rilascio indicano eventuali cambiamenti di schema che richiedono migrazioni manuali.