OpenClaw su GCP Compute Engine (Docker, guida VPS production)
Obiettivo
Eseguire un Gateway OpenClaw persistente su una VM GCP Compute Engine usando Docker, con stato persistente, binari incorporati e comportamento di riavvio sicuro. Se vuoi “OpenClaw 24/7 per ~$5-12/mese”, questa è una configurazione affidabile su Google Cloud. Il prezzo varia in base al tipo di macchina e alla regione; scegli la VM più piccola adatta al tuo carico di lavoro e aumenta le risorse se incontri OOM.Cosa stiamo facendo (in termini semplici)?
- Creare un progetto GCP e abilitare la fatturazione
- Creare una VM Compute Engine
- Installare Docker (runtime applicativo isolato)
- Avviare OpenClaw Gateway in Docker
- Rendere persistenti
~/.openclaw+~/.openclaw/workspacesull’host (sopravvive a riavvii/ricostruzioni) - Accedere alla Control UI dal laptop tramite un tunnel SSH
~/.openclaw include openclaw.json, per agente
agents/<agentId>/agent/auth-profiles.json e .env.
È possibile accedere al Gateway tramite:
- inoltro porta SSH dal laptop
- esposizione diretta della porta se gestisci personalmente firewall e token
Percorso rapido (operatori esperti)
- Crea un progetto GCP + abilita l’API Compute Engine
- Crea una VM Compute Engine (e2-small, Debian 12, 20GB)
- Accedi alla VM via SSH
- Installa Docker
- Clona il repository OpenClaw
- Crea directory host persistenti
- Configura
.envedocker-compose.yml - Incorpora i binari richiesti, compila e avvia
Cosa ti serve
- Account GCP (eleggibile al free tier per e2-micro)
- CLI gcloud installata (oppure usa Cloud Console)
- Accesso SSH dal laptop
- Familiarità di base con SSH + copia/incolla
- ~20-30 minuti
- Docker e Docker Compose
- Credenziali di autenticazione del modello
- Credenziali provider facoltative
- QR WhatsApp
- token bot Telegram
- Gmail OAuth
Installa la CLI gcloud (oppure usa Console)
Opzione A: CLI gcloud (consigliata per l’automazione)Installa da https://cloud.google.com/sdk/docs/installInizializza e autenticati:Opzione B: Cloud ConsoleTutti i passaggi possono essere eseguiti tramite l’interfaccia web su https://console.cloud.google.com
Crea un progetto GCP
CLI:Abilita la fatturazione su https://console.cloud.google.com/billing (obbligatoria per Compute Engine).Abilita l’API Compute Engine:Console:
- Vai a IAM e amministrazione > Crea progetto
- Dagli un nome e crealo
- Abilita la fatturazione per il progetto
- Vai a API e servizi > Abilita API > cerca “Compute Engine API” > Abilita
Crea la VM
Tipi di macchina:
CLI:Console:
| Tipo | Specifiche | Costo | Note |
|---|---|---|---|
| e2-medium | 2 vCPU, 4GB RAM | ~$25/mese | Più affidabile per build Docker locali |
| e2-small | 2 vCPU, 2GB RAM | ~$12/mese | Minimo consigliato per build Docker |
| e2-micro | 2 vCPU (condivise), 1GB RAM | Eleggibile al free tier | Spesso fallisce per OOM durante la build Docker (exit 137) |
- Vai a Compute Engine > Istanze VM > Crea istanza
- Nome:
openclaw-gateway - Regione:
us-central1, Zona:us-central1-a - Tipo di macchina:
e2-small - Disco di avvio: Debian 12, 20GB
- Crea
Accedi alla VM via SSH
CLI:Console:Fai clic sul pulsante “SSH” accanto alla tua VM nel pannello di controllo di Compute Engine.Nota: la propagazione della chiave SSH può richiedere 1-2 minuti dopo la creazione della VM. Se la connessione viene rifiutata, attendi e riprova.
Installa Docker (sulla VM)
Clona il repository OpenClaw
Crea directory host persistenti
I container Docker sono effimeri.
Tutto lo stato a lunga durata deve vivere sull’host.
Configura le variabili d'ambiente
Crea Genera segreti robusti:Non salvare questo file nel commit.Questo file
.env nella radice del repository..env è per variabili d’ambiente del container/runtime come OPENCLAW_GATEWAY_TOKEN.
L’autenticazione memorizzata del provider OAuth/chiave API vive nel mount
~/.openclaw/agents/<agentId>/agent/auth-profiles.json.Configurazione Docker Compose
Crea o aggiorna
docker-compose.yml.--allow-unconfigured serve solo per comodità durante il bootstrap, non sostituisce una corretta configurazione del gateway. Imposta comunque l’autenticazione (gateway.auth.token o password) e usa impostazioni di bind sicure per il tuo deployment.Passaggi runtime condivisi per Docker su VM
Usa la guida runtime condivisa per il flusso host Docker comune:
Note di avvio specifiche per GCP
Su GCP, se la build fallisce con Se hai cambiato la porta del gateway, sostituisci
Killed o exit code 137 durante pnpm install --frozen-lockfile, la VM è rimasta senza memoria. Usa almeno e2-small, oppure e2-medium per build iniziali più affidabili.Quando fai il bind su LAN (OPENCLAW_GATEWAY_BIND=lan), configura un’origine browser fidata prima di continuare:18789 con la porta configurata.Accedi dal tuo laptop
Crea un tunnel SSH per inoltrare la porta del Gateway:Apri nel browser:Se la UI richiede l’autenticazione con segreto condiviso, incolla il token o la
password configurati nelle impostazioni della Control UI. Questo flusso Docker scrive un token per
impostazione predefinita; se cambi la configurazione del container in autenticazione con password, usa invece quella
password.Se la Control UI mostra Ti serve di nuovo il riferimento su persistenza condivisa e aggiornamenti?
Vedi Docker VM Runtime e Aggiornamenti Docker VM Runtime.
http://127.0.0.1:18789/Ristampa un link dashboard pulito:unauthorized o disconnected (1008): pairing required, approva il dispositivo browser:Troubleshooting
Connessione SSH rifiutata La propagazione della chiave SSH può richiedere 1-2 minuti dopo la creazione della VM. Attendi e riprova. Problemi con OS Login Controlla il tuo profilo OS Login:Killed e exit code 137, la VM è stata terminata per OOM. Passa a e2-small (minimo) o e2-medium (consigliato per build locali affidabili):
Service account (best practice di sicurezza)
Per uso personale, il tuo account utente predefinito va benissimo. Per automazione o pipeline CI/CD, crea un service account dedicato con permessi minimi:-
Crea un service account:
-
Concedi il ruolo Compute Instance Admin (oppure un ruolo personalizzato più ristretto):
Passaggi successivi
- Configura i canali di messaggistica: Channels
- Associa dispositivi locali come nodi: Nodes
- Configura il Gateway: Gateway configuration