Risposta breve. Clona il repository di OpenClaw ed esegui ./scripts/docker/setup.sh con OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest" impostata, così usa l'immagine ufficiale già pronta invece di compilarne una (una compilazione dai sorgenti richiede almeno 6 GB di RAM). Lo script esegue l'onboarding, scrive un token del Gateway in .env e avvia il Gateway con Docker Compose. Monta la cartella di stato ~/.openclaw perché nulla vada perso quando il container viene sostituito, e tieni la porta 18789 chiusa a internet: le porte pubblicate da Docker aggirano UFW. Dai al container almeno 2 GB di memoria; con un limite di 1 GB senza swap, l'immagine ufficiale è stata terminata per mancanza di memoria nel nostro test.
Verificato il 6 novembre 2026, valido per OpenClaw 2026.11.1.
Questa guida usa la documentazione Docker di OpenClaw, il docker-compose.yml del suo repository e un test dell'immagine ufficiale che abbiamo eseguito sul nostro server (numeri qui sotto).
Ti serve davvero Docker?
La documentazione di OpenClaw definisce Docker facoltativo: utile per un Gateway isolato e usa e getta, o per un host su cui non vuoi installare Node.js. Su una VPS che esegue solo OpenClaw, la semplice installazione npm con un servizio systemd è la strada principale (vedi come fare hosting di OpenClaw 24/7). Docker è una buona scelta quando esegui già altre cose nei container.
Che cos'è l'immagine ufficiale
Dove:ghcr.io/openclaw/openclaw (principale) e il mirror su Docker Hub openclaw/openclaw. OpenClaw sconsiglia i mirror non ufficiali.
Tag:latest, versioni esatte come 2026.11.1, varianti -slim e varianti -browser che includono Chromium per l'automazione del browser.
Dentro: gira come utente node sotto tini e il suo entrypoint esegue openclaw doctor --fix sullo stato montato prima dell'avvio del Gateway, quindi gli aggiornamenti dell'immagine migrano lo stato al posto tuo. Un health check integrato chiama /healthz.
Che cosa abbiamo misurato
Abbiamo scaricato ghcr.io/openclaw/openclaw:2026.11.1 su uno dei nostri server Linux e avviato il Gateway due volte con docker run (non Compose), senza modello, senza app di chat, senza porta pubblicata, limitato a 1 CPU e senza swap: una volta con un limite di memoria di 2 GB, una volta con 1 GB. Le cifre di memoria sono in MiB, come le riporta Linux.
Risultato
Download
Circa 695 MB compressi (amd64), 2.818 MiB (circa 3 GB) su disco dopo il pull
Node.js nell'immagine
24.22.1
Limite 2 GB: avvio
/healthz ha risposto 48 secondi dopo docker run, compreso il passaggio di doctor. Il Gateway ha caricato 14 plugin e ha scritto "ready" 22 secondi dopo l'inizio del proprio avvio
Limite 2 GB: memoria a riposo
1.349 MiB 30 secondi dopo la risposta al suo health check, 1.106 MiB due minuti dopo, massimo 1.439 MiB. Nessun evento di memoria esaurita
Limite 1 GB
Il Gateway ha raggiunto "ready", poi l'intero container è stato terminato per mancanza di memoria circa 54 secondi dopo l'avvio (exit code 137)
Le FAQ di OpenClaw indicano 1 GB come minimo assoluto per una VPS. Con questa versione in un container limitato a 1 GB non è bastato. Conta su 2 GB o più, e ancora di più per conversazioni reali, più app di chat o un'immagine -browser. Altri dettagli in quanta memoria serve a OpenClaw.
Passo dopo passo con Docker Compose
Installa Docker Engine e Docker Compose v2, poi scarica il repository:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Esegui lo script di setup con l'immagine già pronta:
Senza OPENCLAW_IMAGE, lo script compila openclaw:local dai sorgenti, il che richiede almeno 6 GB di RAM; una compilazione che finisce con Killed o exit code 137 ha esaurito la memoria. Lo script ti chiede la chiave API del provider, genera il token del Gateway e lo scrive in .env, poi avvia il Gateway.
Apri la dashboard su http://127.0.0.1:18789/ sulla stessa macchina e incolla il token da .env in Settings. Ti serve di nuovo il link: docker compose run --rm openclaw-cli dashboard --no-open.
I nuovi DM partono in modalità pairing: scrivi al tuo bot, poi esegui docker compose run --rm openclaw-cli pairing approve telegram <CODE>. Altri dettagli in collegare OpenClaw a Telegram.
Per un host senza prompt da terminale, OpenClaw documenta un bootstrap headless: metti la chiave del provider, OPENCLAW_GATEWAY_TOKEN e TELEGRAM_BOT_TOKEN in .env, poi esegui onboard --non-interactive e channels add --channel telegram --use-env tramite il container del Gateway prima di docker compose up -d openclaw-gateway.
Persistenza: che cosa montare e salvare nel backup
Nel container
Che cosa contiene
Lato host (predefinito dal setup)
/home/node/.openclaw
openclaw.json, i database SQLite (autenticazione del provider, sessioni), i plugin installati, i segreti di .env
$HOME/.openclaw
/home/node/.openclaw/workspace
Il workspace dell'agente e i file di memoria
$HOME/.openclaw/workspace
/home/node/.config/openclaw
La chiave per le credenziali cifrate più vecchie
$HOME/.openclaw-auth-profile-secrets
Monta la cartella, mai il singolo file. OpenClaw salva openclaw.json sostituendolo, quindi un bind mount di un singolo file può far leggere al container una copia vecchia.
Tieni lo stato su un disco locale. Le condivisioni NFS, SMB e CIFS non offrono a SQLite il coordinamento della memoria condivisa di cui ha bisogno e possono corromperlo.
Un solo Gateway per cartella di stato. Ferma il vecchio container prima di avviare il suo sostituto.
Tratta i backup come segreti. La documentazione di OpenClaw dice che i token OAuth stanno in chiaro in quei file SQLite.
Tutto ciò che installi dentro un container in esecuzione va perso quando viene ricreato. Gli strumenti extra vanno nell'immagine al momento della build.
Tieni privata la porta
Il docker-compose.yml del repository pubblica 18789 (e 18790 e 3978) sull'host e avvia il Gateway con --bind lan, quindi la porta pubblicata lo raggiunge. Su una VPS questo significa che la porta della dashboard è sull'indirizzo pubblico a meno che tu non la blocchi. Due trappole:
UFW non la copre. Le porte dei container pubblicate passano per le catene di inoltro di Docker, non solo per le regole INPUT dell'host. La documentazione di OpenClaw fornisce regole per la catena DOCKER-USER; funziona anche un firewall cloud che ammette solo SSH.
Usa un tunnel per raggiungere la dashboard:ssh -N -L 18789:127.0.0.1:18789 root@<vps-ip>, poi apri http://127.0.0.1:18789/ sul tuo computer.
Compose imposta anche restart: unless-stopped, così il Gateway torna dopo un crash o un riavvio, e rimuove le capability NET_RAW e NET_ADMIN.
L'entrypoint dell'immagine ripara e migra lo stato montato all'avvio. Fai prima un backup di ~/.openclaw. Con latest segui ogni versione stabile; fissa un tag come 2026.11.1 per restare fermo.
Salta Docker: esegui OpenClaw su PlayNHost
Un server PlayNHost è già un container isolato con il suo limite di memoria, quindi non c'è nulla da comporre. Non usiamo l'immagine ufficiale: il server esegue Node.js 26 e installa il pacchetto npm openclaw al primo avvio, poi controlla se c'è una versione più recente a ogni avvio.
Configurazione: incolla una chiave del provider IA e un token del bot Telegram o Discord nella pagina Agente, poi premi Avvia. Nel nostro test della stessa configurazione, l'agente era in esecuzione 67 secondi dopo il primo Avvia, installazione compresa.
Persistenza:.openclaw vive sul disco del server e nei suoi backup (circa 4 MB nel nostro test); il programma e le sue cache vengono reinstallati, non salvati nel backup.
Porta: il Gateway ascolta solo sull'indirizzo di loopback del server stesso, porta 18789, con un token generato dal pannello. Niente è pubblicato, quindi non c'è un firewall da configurare male.
Memoria: piani da 2 GB, 4 GB e 8 GB. L'avvio rifiuta di eseguire OpenClaw sotto i 2 GB.
Non ancora incluso: la dashboard web, le app di chat diverse da Telegram e Discord, e l'automazione del browser (niente Chromium).
Utilizziamo i cookie per far funzionare il sito, capire come viene usato e misurare il nostro marketing. Puoi accettare tutto, accettare solo i cookie essenziali o scegliere per categoria.Utilizziamo i cookie per far funzionare il sito, capire come viene usato e misurare il nostro marketing. Qui sono attivi per impostazione predefinita: puoi disattivare ciò che non desideri.Leggi la nostra informativa sulla privacy