Intermedio 12 minAgenti

Installa OpenClaw con Docker: passo dopo passo e installazione jour

Questa guida mostra come installare OpenClaw con Docker Compose su un PC o un VPS: recupero del repository ufficiale, onboarding, prima connessione all'interfaccia di controllo, poi aggiornamento e disinstallazione senza lasciare residui. I comandi riprendono la documentazione del progetto, da rileggere prima di incollarli perché cambia rapidamente; questa guida non contiene né test condotti da noi né indicazioni sulla durata dell'installazione. Una regola vale per tutte le fasi: il gateway di OpenClaw non deve mai essere raggiungibile da Internet.

Di Samir K.·Agg. 2026-10-04·Testato su Windows, macOS e Linux

#Installare OpenClaw: script ufficiale o Docker?

Il progetto documenta due modi per installare OpenClaw. Il primo passa attraverso uno script che installa il comando openclaw direttamente sul sistema. Il secondo esegue il gateway (il processo centrale che collega le tue applicazioni di messaggistica al modello) in un container Docker. Entrambi portano allo stesso software e allo stesso assistente di configurazione, chiamato onboarding.

Script ufficiale
La via più breve su un computer personale con macOS, Linux o WSL2. Lo script installa il comando openclaw e Node.js se necessario, poi la procedura di configurazione iniziale registra il gateway come servizio della tua sessione.
Docker Compose
Il gateway viene eseguito in un container e sull'host è installato soltanto Docker. È una soluzione pratica su un VPS o per poter eliminare tutto con un solo gesto. La documentazione la presenta come opzionale.
Ciò che Docker non cambia
Il container mantiene un accesso completo alla cartella di configurazione e allo spazio di lavoro montati dall'host, nonché alla rete. È una barriera utile, non una cassaforte.
Terminale — il metodo tramite script, come promemoria
# Télécharger et exécuter l'installateur officiel
curl -fsSL https://openclaw.ai/install.sh | bash

# Lancer l'onboarding et installer le service
openclaw onboard --install-daemon

Il resto di questa guida segue il percorso Docker, ricordando il comando equivalente per il metodo tramite script nelle fasi di aggiornamento e disinstallazione. Se hai ancora dubbi sull'utilità dello strumento stesso, la nostra pagina «OpenClaw: che cos'è» affronta questa domanda; qui ci occupiamo dell'installazione.

!
Solo fonti ufficiali
Il progetto ha cambiato nome due volte (Clawdbot, poi Moltbot, poi OpenClaw) e la sua popolarità ha attirato falsi repository, falsi pacchetti e «installer con un clic» dubbi. Non incollare mai in un terminale un comando di installazione trovato in un video, un forum o un articolo di blog, compreso questo, senza confrontarlo con la documentazione. Tre indirizzi fanno fede: openclaw.ai per lo script, github.com/openclaw/openclaw per il codice, docs.openclaw.ai per la documentazione. E nulla vieta di leggere uno script prima di eseguirlo: scaricalo in un file, aprilo, poi eseguilo.

#Prerequisiti

Il kit Agenti Locali

Agenti che agiscono sulla tua macchina: Cline agentico, MCP, n8n + Ollama, automazioni locali.

  • Spazio online a vita
  • PDF + file
  • Aggiornamenti a vita

Il gateway stesso consuma poco: inoltra messaggi e chiama un modello. I requisiti riportati di seguito riguardano soprattutto Docker e la creazione dell'immagine.

Docker e Compose v2
Docker Desktop su macOS e Windows (con WSL2), o Docker Engine accompagnato dal plugin Compose su Linux. Il comando si scrive docker compose, con uno spazio: il vecchio binario docker-compose nella versione 1 non va bene.
Git
Per clonare il repository ufficiale, che contiene il Dockerfile, il file docker-compose.yml e lo script di installazione.
Memoria
La documentazione richiede almeno 2 GB di RAM per costruire l'immagine. Su un host da 1 GB, la compilazione può essere interrotta dal sistema a causa di mancanza di memoria (codice di uscita 137). L'immagine precostruita, vista più avanti, evita questa fase.
Disco
Spazio per le immagini Docker e i log. La documentazione non fornisce un valore numerico: controlla lo spazio con docker system df.
Un modello
Una chiave API da un fornitore online, con un limite di spesa, o un modello locale. Il collegamento di un modello locale è un argomento a parte, che questo manuale non tratta.
Su un VPS
Un accesso SSH con chiave e il firewall del fornitore impostato per consentire soltanto SSH. Nessun'altra porta deve essere aperta, come vedremo.
Terminale — verificare gli strumenti
docker --version
docker compose version
git --version

Su Windows, lavora da un terminale WSL2: lo script di installazione è uno script shell e la documentazione indirizza comunque gli utenti Windows verso WSL2. Qualunque sia il computer, evita quello che contiene i tuoi documenti personali e le tue password: un agente in grado di eseguire comandi va installato su una macchina dedicata, una macchina virtuale o un server noleggiato.

#Installare OpenClaw con Docker Compose, passo dopo passo

L’installazione Docker si basa su uno script fornito nel repository. Lo script esegue in sequenza la preparazione dell’immagine, l’onboarding e l’avvio del gateway. Le quattro fasi descritte di seguito seguono questo ordine.

#1. Clonare il repository ufficiale

Terminale
git clone https://github.com/openclaw/openclaw.git
cd openclaw

Verifica l'indirizzo carattere per carattere: è l'organizzazione openclaw su GitHub, non un repository con un nome simile. Nella documentazione che conosciamo, lo script di installazione Docker si chiama docker-setup.sh e si trova alla radice del repository. Il progetto riorganizza spesso i suoi file e nelle versioni recenti lo script potrebbe essere collocato sotto scripts/docker/: il comando seguente mostra quale percorso esiste sul tuo sistema.

Terminale — individuare lo script
ls docker-setup.sh scripts/docker/setup.sh 2>/dev/null

#2. Scegliere tra un'immagine precompilata e la compilazione locale

Per impostazione predefinita, lo script costruisce l'immagine sulla tua macchina a partire dal Dockerfile e la chiama openclaw:local. È la via più trasparente, poiché compili il codice che hai appena clonato, ma richiede memoria e tempo di calcolo. L'alternativa consiste nello scaricare l'immagine pubblicata dal progetto sul registro di GitHub, impostando la variabile OPENCLAW_IMAGE prima di avviare lo script.

Terminale — opzione: usare l'immagine pubblicata
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"

L'etichetta latest segue la versione più recente pubblicata. Su un server, è meglio sostituirla con un numero di versione preciso, preso dalla pagina delle release del repository: in questo modo tu decidi quando aggiornare e sai a quale versione tornare in caso di problemi.

#3. Eseguire lo script di installazione

Terminale
./docker-setup.sh

Secondo la documentazione, questo script fa cinque cose di seguito:

Immagine
Costruisce l'immagine localmente, o la scarica se OPENCLAW_IMAGE è definito.
Onboarding
Lancia l'assistente di configurazione in un contenitore temporaneo.
Token
Genera il token di accesso del gateway e lo scrive in un file .env alla radice del repository.
Avvio
Avvia il gateway con Docker Compose, con il nome di servizio openclaw-gateway.
Dati
Colloca la configurazione e lo spazio di lavoro sull'host, in ~/.openclaw e ~/.openclaw/workspace. Queste cartelle vengono conservate anche dopo la rimozione del container.

#4. Rispondere alle domande dell'onboarding

L'assistente pone domande sul modello, sui servizi di messaggistica e sul gateway. Per quest'ultima parte, lo script mostra le risposte previste per l'esecuzione in un container. Sono diverse da quelle di un'installazione classica e la prima merita una spiegazione.

Gateway bind: lan
All'interno del container, il gateway deve ascoltare sull'interfaccia della rete Docker, altrimenti la porta pubblicata sull'host non lo raggiunge. Questa impostazione non determina ciò che è visibile dall'esterno: questo dipende dall'host, vedi la sezione VPS.
Gateway auth: token
L'accesso all'interfaccia e all'API del gateway richiede un token.
Gateway token
Riprendi quello che lo script ha appena mostrato, perché corrisponda al file .env.
Tailscale exposure: Off
Nessuna esposizione automatica alla rete. L'accesso remoto si decide in seguito, con cognizione di causa.
Install Gateway daemon: No
In questa configurazione è Docker Compose a riavviare il contenitore, non un servizio del sistema.

Per il modello, fornisci una chiave API con un limite di budget anziché la tua chiave principale. Per i servizi di messaggistica, puoi saltare il passaggio e riprenderlo una volta verificato il gateway. Ricorda la regola di conversione: ogni comando della documentazione che inizia con openclaw si esegue qui anteponendo docker compose run --rm openclaw-cli.

Terminale — aggiungere un servizio di messaggistica in un secondo momento
# WhatsApp : affiche un QR code à scanner depuis le téléphone
docker compose run --rm openclaw-cli channels login

# Telegram : avec le jeton du bot créé auprès de BotFather
docker compose run --rm openclaw-cli channels add --channel telegram --token "<jeton-du-bot>"

#Verificare che il gateway sia attivo

Prima di collegare qualsiasi altra cosa, assicurati che il container sia avviato e che i suoi log non segnalino errori.

Terminale
docker compose ps
docker compose logs -f openclaw-gateway

Apri quindi l'interfaccia di controllo nel browser della stessa macchina, poi incolla il token nelle sue impostazioni. Se hai perso il link, il comando dashboard lo mostra di nuovo senza tentare di aprire un browser.

Interfaccia di controllo (dalla macchina stessa)
http://127.0.0.1:18789/
Terminale — visualizzare di nuovo il link di accesso
docker compose run --rm openclaw-cli dashboard --no-open

Due controlli integrati completano la verifica. Il primo diagnostica l'installazione e la configurazione; il secondo esamina le impostazioni pericolose. Eseguili di nuovo dopo ogni modifica alla configurazione.

Terminale — diagnosi e audit
docker compose run --rm openclaw-cli doctor
docker compose run --rm openclaw-cli security audit --deep

Ultimo passo: proteggi il file .env. Contiene il token del gateway, e chiunque possieda questo token controlla l'agente, quindi tutto ciò a cui l'agente ha accesso. Un chmod 600 .env limita la lettura al tuo account. Non copiarlo né in un repository Git né in uno screenshot.

#OpenClaw su un VPS: non esporre il gateway

Su un PC dietro un router domestico, una porta pubblicata da Docker rimane nella rete locale. Su un VPS, la macchina possiede un indirizzo pubblico: una porta pubblicata senza specificare l'indirizzo è raggiungibile da tutta Internet. All'inizio del 2026, alcuni ricercatori hanno censito migliaia di gateway OpenClaw accessibili in questo modo. Il token protegge l'accesso, ma basta una sola falla per aggirare questa protezione: la vulnerabilità CVE-2026-25253, corretta alla fine di gennaio 2026, permetteva proprio di rubarlo. L'approccio corretto consiste nel non esporre nulla.

!
Le regole di Docker hanno precedenza su quelle di UFW
Docker scrive le proprie regole del firewall. Una porta pubblicata da un container rimane raggiungibile dall'esterno anche quando UFW mostra una politica di rifiuto. Per questo motivo, la documentazione di sicurezza di OpenClaw rimanda alla catena DOCKER-USER. Non fidarti solo di UFW: verifica cosa è realmente in ascolto.
Terminale (sul VPS) — su quale indirizzo è pubblicata la porta?
docker compose port openclaw-gateway 18789
ss -tlnp | grep 18789

Se la risposta inizia con 0.0.0.0, la porta è pubblicata su tutte le interfacce. Tre protezioni si sommano, dalla più esterna a quella più vicina al container.

Firewall del fornitore
Il filtro disponibile nella console del provider agisce prima della macchina, quindi prima di Docker. Consenti solo il traffico SSH.
Pubblicazione su 127.0.0.1
Chiedi a Docker di pubblicare la porta solo sull'indirizzo locale dell'host, con il file qui sotto.
Accesso tramite tunnel
Accedi all'interfaccia di controllo attraverso un tunnel SSH o un VPN, mai attraverso un indirizzo pubblico.
docker-compose.override.yml — esempio da adattare
services:
  openclaw-gateway:
    ports: !override
      - "127.0.0.1:18789:18789"
      - "127.0.0.1:18790:18790"

Questo file è un esempio fornito da noi, non un estratto dalla documentazione di OpenClaw: confronta il nome del servizio e l'elenco delle porte con il docker-compose.yml della tua versione prima di usarlo. Il tag !override sostituisce l'elenco delle porte invece di aggiungersi a quello esistente; richiede Docker Compose 2.24.4 o successivo. Posiziona il file accanto a docker-compose.yml, ricrea il container con docker compose up -d openclaw-gateway, poi esegui di nuovo la verifica: ora deve restituire 127.0.0.1:18789.

Terminale (sul tuo computer) — tunnel SSH verso il gateway
ssh -N -L 18789:127.0.0.1:18789 utilisateur@adresse-du-vps

Finché questo tunnel rimane aperto, l'indirizzo http://127.0.0.1:18789/ sul tuo computer conduce al gateway del server. I servizi di messaggistica, invece, non hanno bisogno di alcuna porta in ingresso nella loro modalità di funzionamento abituale: per WhatsApp, Telegram o Discord, è il gateway ad aprire connessioni in uscita. Non c'è quindi alcun motivo di esporre l'interfaccia di controllo tramite un nome di dominio. Lo stesso ragionamento vale per un server di modelli ed è illustrato in dettaglio nella nostra guida su come mettere in sicurezza un server Ollama.

#Aggiornare OpenClaw

Il progetto pubblica nuove versioni a ritmo sostenuto, e alcune correggono vulnerabilità. Lasciare un'installazione invariata per mesi è un rischio, non un risparmio di tempo. Con Docker, aggiornare significa sostituire l'immagine e poi ricreare il container; i tuoi dati, in ~/.openclaw, restano al loro posto.

  1. 01
    Salvare una copia di backup della cartella dei dati
    Archivia ~/.openclaw prima di qualsiasi aggiornamento. Una nuova versione può migrare la configurazione, e il ritorno indietro è affidabile solo con una copia dello stato precedente.
  2. 02
    Recuperare la nuova versione
    Aggiorna il repository con git pull per ottenere il Dockerfile e il file Compose attuali, poi ricostruisci l'immagine locale o scarica l'immagine pubblicata, in base alla scelta fatta durante l'installazione.
  3. 03
    Ricreare il container
    Rilancia il servizio openclaw-gateway. Docker Compose sostituisce il contenitore appena rileva un'immagine diversa.
  4. 04
    Controllare
    Esegui doctor, leggi le ultime righe dei log e invia un messaggio di test dalla tua applicazione di messaggistica.
Terminale — 1. backup
tar czf openclaw-sauvegarde-$(date +%F).tar.gz -C ~ .openclaw
Terminale — 2 e 3, con un'immagine costruita localmente
cd openclaw
git pull
docker build -t openclaw:local -f Dockerfile .
docker compose up -d openclaw-gateway
Terminale — 2 e 3, con l'immagine pubblicata
cd openclaw
git pull
docker compose pull openclaw-gateway
docker compose up -d openclaw-gateway
Terminale — 4. controllo
docker compose run --rm openclaw-cli doctor
docker compose logs --tail 50 openclaw-gateway

La variante con immagine pubblicata presuppone che la riga OPENCLAW_IMAGE sia presente nel file .env, cosa che lo script predispone quando la variabile era definita al momento dell'installazione. Se hai fissato un numero di versione, modifica prima questa riga. Per tornare indietro, rimetti il vecchio numero, ricrea il container e, se nel frattempo la configurazione è stata migrata, ripristina il backup.

→
Leggere le note di versione prima, non dopo
La pagina delle release del repository segnala le modifiche incompatibili e le correzioni di sicurezza. Trenta secondi di lettura prima di un git pull evitano di scoprire un parametro rinominato nei log di un assistente che non risponde più.

Con il metodo basato sullo script, l'aggiornamento avviene tramite il comando integrato, seguito dalla stessa procedura diagnostica.

Terminale — installazione tramite script
openclaw update
openclaw doctor

#Disinstallare OpenClaw correttamente

Una disinstallazione completa rimuove tre cose: i container e le immagini, i dati sul disco e gli accessi che avevi concesso all'assistente. La terza è quella che si dimentica.

Terminale — 1. container e immagini
cd openclaw
docker compose down

# Supprimer l'image utilisée (l'une ou l'autre selon votre cas)
docker image rm openclaw:local
docker image rm ghcr.io/openclaw/openclaw:latest

# Vérifier qu'il ne reste ni conteneur ni volume
docker ps -a --filter name=openclaw
docker volume ls --filter name=openclaw

La cartella ~/.openclaw contiene la configurazione, le chiavi API, le sessioni di messaggistica e la memoria dell'assistente. La sua eliminazione è irreversibile: conserva un archivio se pensi di tornare un giorno, o se vuoi rileggere ciò che l'assistente aveva annotato. Il repository clonato contiene invece il file .env e il relativo token.

Terminale — 2. dati (irreversibile)
rm -rf ~/.openclaw

# Le dépôt cloné, avec son fichier .env
cd ..
rm -rf openclaw
Chiavi API
Revoca presso il fornitore del modello la chiave affidata a OpenClaw. Eliminare il file locale non la invalida.
Bot Telegram o Discord
Revoca il token del bot o elimina il bot tramite lo strumento del servizio (BotFather per Telegram, portale sviluppatori per Discord).
WhatsApp
Nell'applicazione, apri l'elenco dei dispositivi connessi e disconnetti quello che corrisponde al gateway.
Accesso alla rete
Rimuovi la regola del firewall o il tunnel creati per l'occasione, oppure rimuovi dalla VPN la macchina aggiunta per questo scopo. Se hai noleggiato un VPS esclusivamente per questo uso, disdici il servizio.

Con il metodo tramite script, il comando di disinstallazione integrato rimuove il servizio e propone di eliminare i dati; resta poi da rimuovere il comando stesso.

Terminale — installazione tramite script
openclaw uninstall
npm rm -g openclaw

#Risoluzione dei problemi: i blocchi più comuni

« unauthorized » o « pairing required (1008) »
Il browser non è ancora approvato dal gateway. Visualizza nuovamente il link di accesso, poi elenca e approva il dispositivo con i comandi seguenti. Questo caso è frequente in Docker e dietro un tunnel, perché la connessione non proviene dall'indirizzo locale del container.
Build interrotta, codice 137
Il sistema ha interrotto la compilazione per mancanza di memoria. Passa all'immagine pubblicata tramite OPENCLAW_IMAGE, oppure usa una macchina con almeno 2 GB di RAM.
Accesso negato a /home/node/.openclaw
L'immagine viene eseguita con l'utente node, con ID 1000. Le cartelle montate dall'host devono appartenere a questo utente: sudo chown -R 1000:1000 ~/.openclaw.
Porta 18789 già in uso
Un altro servizio, o una vecchia installazione di OpenClaw, occupa la porta. Arrestalo oppure modifica OPENCLAW_GATEWAY_PORT nel file .env prima di ricreare il container.
docker compose introuvable
Hai il vecchio binario docker-compose o non hai il plugin Compose. Installa il plugin Compose v2 della tua distribuzione.
Modello locale non raggiungibile
In un contenitore, localhost indica il contenitore, non l'host. Un'istanza di Ollama in ascolto su http://localhost:11434 sull'host non è quindi raggiungibile così com'è dal gateway. Questa impostazione riguarda il collegamento del modello e non rientra nell'ambito di questa guida.
Terminale — approvare il browser
docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>

Quando nessuno di questi casi corrisponde al problema, i log del servizio rimangono il punto di partenza migliore, seguiti dal comando doctor. Prima di cercare una soluzione altrove, controlla la data delle risposte che trovi: quelle che menzionano Clawdbot o Moltbot descrivono vecchi comandi.

#Fonti ufficiali da tenere a portata di mano

Questa guida non si basa su alcun test interno: non contiene né durate, né misurazioni, né confronti numerici. I comandi riprendono la documentazione del progetto, che cambia da una versione all'altra: nome dello script, variabili, passaggi dell'onboarding. In caso di discrepanza tra questa pagina e la documentazione, fa fede la documentazione.

Documentazione: installazione con Docker
https://docs.openclaw.ai/install/docker
Documentazione: aggiornamento
https://docs.openclaw.ai/install/updating
Documentazione: disinstallazione
https://docs.openclaw.ai/install/uninstall
Documentazione: sicurezza del gateway
https://docs.openclaw.ai/gateway/security
Repository ufficiale e note di rilascio
https://github.com/openclaw/openclaw/releases

#Per approfondire

L'installazione è solo la prima metà del lavoro: un agente va configurato, monitorato e confrontato. Queste guide del sito approfondiscono le nozioni utilizzate qui.

OpenClaw: cos'è e vale la pena installarlo?
Il funzionamento del gateway, gli usi e i rischi, per decidere prima di installare. https://quelllm.fr/guide/openclaw-c-est-quoi
Mettere in sicurezza un server Ollama
Firewall, ascolto locale e accesso remoto: la stessa logica di esposizione minima applicata al server dei modelli. https://quelllm.fr/guide/securiser-serveur-ollama
Distribuire un LLM con Docker Compose in produzione
File Compose, riavvio, log e backup per uno stack che funziona in modo continuo. https://quelllm.fr/guide/deployer-llm-docker-compose-production
Installa Ollama con Docker
Per avviare il server dei modelli all'interno di un contenitore, sulla stessa macchina o su un'altra. https://quelllm.fr/guide/ollama-docker-installation-guide
Agent Zero con Ollama in Docker
Un altro agente self-hosted distribuito in un container, per confrontare gli approcci. https://quelllm.fr/guide/agent-zero-ollama-docker
Questa guida ti è stata utile?

Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.