Kort antwoord. Kloon de OpenClaw-repository en voer ./scripts/docker/setup.sh uit met OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest" ingesteld, zodat het de officiële kant-en-klare image gebruikt in plaats van er een te bouwen (bouwen uit de broncode vraagt minstens 6 GB RAM). Het script doorloopt de onboarding, schrijft een Gateway-token naar .env en start de Gateway met Docker Compose. Koppel de statusmap ~/.openclaw als volume zodat niets verloren gaat wanneer de container wordt vervangen, en houd poort 18789 gesloten voor internet: door Docker gepubliceerde poorten omzeilen UFW. Geef de container minstens 2 GB geheugen; beperkt tot 1 GB zonder swap werd de officiële image in onze test beëindigd door geheugentekort.
Gecontroleerd op 6 november 2026, juist voor OpenClaw 2026.11.1.
Deze gids gebruikt de Docker-documentatie van OpenClaw, de docker-compose.yml in zijn repository en een test van de officiële image die we op onze eigen server hebben gedraaid (cijfers hieronder).
Heb je Docker eigenlijk nodig?
De documentatie van OpenClaw noemt Docker optioneel: handig voor een geïsoleerde wegwerp-Gateway of een host waarop je geen Node.js wilt installeren. Op een VPS die alleen OpenClaw draait, is de gewone npm-installatie met een systemd-service de hoofdroute (zie OpenClaw 24/7 hosten). Docker past goed als je al andere dingen in containers draait.
Wat de officiële image is
Waar:ghcr.io/openclaw/openclaw (hoofdbron) en de Docker Hub-mirror openclaw/openclaw. OpenClaw raadt onofficiële mirrors af.
Tags:latest, exacte releases zoals 2026.11.1, -slim-varianten en -browser-varianten die Chromium bevatten voor browserautomatisering.
Binnenin: hij draait als gebruiker node onder tini, en zijn entrypoint voert openclaw doctor --fix uit op je gekoppelde status voordat de Gateway start, zodat image-upgrades de status voor je migreren. Een ingebouwde health check roept /healthz aan.
Wat wij hebben gemeten
We haalden ghcr.io/openclaw/openclaw:2026.11.1 binnen op een van onze Linux-servers en startten de Gateway twee keer met docker run (niet Compose), zonder model, zonder chat-app, zonder gepubliceerde poort, beperkt tot 1 CPU en zonder swap: één keer met een geheugenlimiet van 2 GB, één keer met 1 GB. Geheugencijfers zijn in MiB, zoals Linux ze meldt.
Resultaat
Download
Ongeveer 695 MB gecomprimeerd (amd64), 2.818 MiB (ongeveer 3 GB) op schijf na het binnenhalen
Node.js in de image
24.22.1
Limiet 2 GB: start
/healthz antwoordde 48 seconden na docker run, inclusief de doctor-stap. De Gateway laadde 14 plugins en logde "ready" 22 seconden na het begin van zijn eigen start
Limiet 2 GB: geheugen in rust
1.349 MiB 30 seconden nadat hij zijn health check beantwoordde, 1.106 MiB twee minuten daarna, hoogste 1.439 MiB. Geen out-of-memory-gebeurtenissen
Limiet 1 GB
De Gateway bereikte "ready", daarna werd de hele container ongeveer 54 seconden na de start beëindigd door gebrek aan geheugen (exit code 137)
De FAQ van OpenClaw noemt 1 GB als absoluut minimum voor een VPS. Met deze release in een container beperkt tot 1 GB was dat niet genoeg. Reken op 2 GB of meer, en nog meer voor echte gesprekken, meerdere chat-apps of een -browser-image. Meer in hoeveel geheugen OpenClaw nodig heeft.
Stap voor stap met Docker Compose
Installeer Docker Engine en Docker Compose v2 en haal dan de repository op:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Voer het setupscript uit met de kant-en-klare image:
Zonder OPENCLAW_IMAGE bouwt het script openclaw:local uit de broncode, wat minstens 6 GB RAM vraagt; een build die eindigt op Killed of exit code 137 had geen geheugen meer. Het script vraagt om de API-sleutel van je provider, genereert het Gateway-token en schrijft het naar .env, en start daarna de Gateway.
Open het dashboard op http://127.0.0.1:18789/ op dezelfde machine en plak het token uit .env in Settings. Heb je de link opnieuw nodig: docker compose run --rm openclaw-cli dashboard --no-open.
Nieuwe DM's starten in pairing-modus: stuur je bot een bericht en voer dan docker compose run --rm openclaw-cli pairing approve telegram <CODE> uit. Meer in OpenClaw koppelen aan Telegram.
Voor een host zonder terminalprompts beschrijft OpenClaw een headless bootstrap: zet de sleutel van de provider, OPENCLAW_GATEWAY_TOKEN en TELEGRAM_BOT_TOKEN in .env en voer dan onboard --non-interactive en channels add --channel telegram --use-env uit via de Gateway-container, vóór docker compose up -d openclaw-gateway.
Persistentie: wat je koppelt en back-upt
In de container
Wat erin zit
Hostkant (standaard van setup)
/home/node/.openclaw
openclaw.json, de SQLite-opslag (authenticatie van providers, sessies), geïnstalleerde plugins, geheimen in .env
$HOME/.openclaw
/home/node/.openclaw/workspace
De werkruimte en geheugenbestanden van de agent
$HOME/.openclaw/workspace
/home/node/.config/openclaw
De sleutel voor oudere versleutelde inloggegevens
$HOME/.openclaw-auth-profile-secrets
Koppel de map, nooit het losse bestand. OpenClaw slaat openclaw.json op door het te vervangen, dus een bind mount van één bestand kan ervoor zorgen dat de container een oude kopie blijft lezen.
Houd de status op een lokale schijf. NFS-, SMB- en CIFS-shares bieden SQLite niet de gedeelde-geheugencoördinatie die het nodig heeft en kunnen het beschadigen.
Eén Gateway per statusmap. Stop de oude container voordat je de vervanger start.
Behandel back-ups als geheimen. Volgens de documentatie van OpenClaw staan OAuth-tokens als platte tekst in die SQLite-bestanden.
Alles wat je in een draaiende container installeert, gaat verloren als die opnieuw wordt aangemaakt. Extra tools horen bij het bouwen in de image.
Houd de poort privé
De docker-compose.yml van de repository publiceert 18789 (en 18790 en 3978) op de host en start de Gateway met --bind lan, zodat de gepubliceerde poort hem bereikt. Op een VPS betekent dat dat de dashboardpoort op het publieke adres staat, tenzij je hem blokkeert. Twee valkuilen:
UFW dekt het niet. Gepubliceerde containerpoorten lopen via de eigen forwarding-chains van Docker, niet alleen via de INPUT-regels van de host. De documentatie van OpenClaw geeft regels voor de DOCKER-USER-chain; een cloudfirewall die alleen SSH toelaat werkt ook.
Gebruik een tunnel om het dashboard te bereiken:ssh -N -L 18789:127.0.0.1:18789 root@<vps-ip>, en open dan http://127.0.0.1:18789/ op je eigen computer.
Compose zet ook restart: unless-stopped, zodat de Gateway terugkomt na een crash of herstart, en laat de capabilities NET_RAW en NET_ADMIN weg.
Het entrypoint van de image repareert en migreert de gekoppelde status bij de start. Maak eerst een back-up van ~/.openclaw. Met latest ga je mee met elke stabiele release; zet een tag zoals 2026.11.1 vast om te blijven waar je bent.
Sla Docker over: draai OpenClaw op PlayNHost
Een PlayNHost-server is al een geïsoleerde container met een eigen geheugenlimiet, dus er valt niets te composen. We gebruiken de officiële image niet: de server draait Node.js 26 en installeert het npm-pakket openclaw bij de eerste start, en controleert daarna bij elke start op een nieuwere release.
Opzet: plak een sleutel van een AI-provider en een Telegram- of Discord-bottoken op de pagina Agent, en druk dan op Start. In onze test van dezelfde opzet draaide de agent 67 seconden na de eerste Start, installatie inbegrepen.
Persistentie:.openclaw staat op de schijf van de server en in zijn back-ups (ongeveer 4 MB in onze test); het programma en zijn caches worden opnieuw geïnstalleerd, niet in de back-up gezet.
Poort: de Gateway luistert alleen op het eigen loopback-adres van de server, poort 18789, met een token dat het paneel genereert. Er wordt niets gepubliceerd, dus er is geen firewall die je verkeerd kunt instellen.
Geheugen: plannen van 2 GB, 4 GB en 8 GB. De start weigert OpenClaw te draaien onder 2 GB.
Nog niet inbegrepen: het webdashboard, andere chat-apps dan Telegram en Discord, en browserautomatisering (geen Chromium).
We gebruiken cookies om de site te laten werken, te begrijpen hoe hij wordt gebruikt en onze marketing te meten. Je kunt alles accepteren, alleen essentiële cookies accepteren of per categorie kiezen.We gebruiken cookies om de site te laten werken, te begrijpen hoe hij wordt gebruikt en onze marketing te meten. Ze staan hier standaard aan. Je kunt alles uitzetten wat je niet wilt.Lees ons privacybeleid