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.
#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.
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.
#Prerequisiti
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.
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
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.
#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.
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
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.
#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.
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.
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.
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.
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.
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.
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.
- 01Salvare una copia di backup della cartella dei datiArchivia ~/.openclaw prima di qualsiasi aggiornamento. Una nuova versione può migrare la configurazione, e il ritorno indietro è affidabile solo con una copia dello stato precedente.
- 02Recuperare la nuova versioneAggiorna 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.
- 03Ricreare il containerRilancia il servizio openclaw-gateway. Docker Compose sostituisce il contenitore appena rileva un'immagine diversa.
- 04ControllareEsegui doctor, leggi le ultime righe dei log e invia un messaggio di test dalla tua applicazione di messaggistica.
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.
Con il metodo basato sullo script, l'aggiornamento avviene tramite il comando integrato, seguito dalla stessa procedura diagnostica.
#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.
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.
- 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).
- 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.
#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.
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.
#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
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.