NUOVO 📢 Offerta di lancio limitata: fino al 70% di sconto sul tuo primo mese, per tutti i giochi!Vedi i piani

Come eseguire OpenClaw con Docker

OpenClawUpdated Nov 6, 20268 min read

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
DownloadCirca 695 MB compressi (amd64), 2.818 MiB (circa 3 GB) su disco dopo il pull
Node.js nell'immagine24.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 riposo1.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 GBIl 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

  1. Installa Docker Engine e Docker Compose v2, poi scarica il repository:
    git clone https://github.com/openclaw/openclaw.git
    cd openclaw
  2. Esegui lo script di setup con l'immagine già pronta:
    export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
    ./scripts/docker/setup.sh
    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.
  3. 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.
  4. Aggiungi un'app di chat:
    docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"
    docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"
    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.
  5. Controlla:
    docker compose ps
    docker compose logs --tail=100 openclaw-gateway
    curl -fsS http://127.0.0.1:18789/healthz

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 containerChe cosa contieneLato host (predefinito dal setup)
/home/node/.openclawopenclaw.json, i database SQLite (autenticazione del provider, sessioni), i plugin installati, i segreti di .env$HOME/.openclaw
/home/node/.openclaw/workspaceIl workspace dell'agente e i file di memoria$HOME/.openclaw/workspace
/home/node/.config/openclawLa 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.

Aggiornare

docker compose pull openclaw-gateway openclaw-cli
docker compose stop openclaw-gateway
docker compose up -d openclaw-gateway

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).

Crea un server OpenClaw.

PlayNHost non è affiliata alla OpenClaw Foundation. OpenClaw è un software open source con licenza MIT.

Lo ospiti già altrove? Sposta il tuo server da noi

ULTIMI ARTICOLI