−25%

op Windows bij jaarbetaling, tot 31/10. Naar de pakketten

EQVPS
Aan de slag

OpenClaw 24/7 op een VPS: veilige installatie

Draai je OpenClaw-gateway op een server die nooit slaapt, zonder een agent met shell-toegang op het open internet te zetten. Eigen gebruiker, gateway alleen op loopback-poort 18789, SSH-tunnel, pairing en back-ups.

Op een laptop valt OpenClaw stil zodra het deksel dichtgaat: WhatsApp-berichten stapelen zich op, geplande taken wachten tot je terug bent. Op een server blijft hij antwoorden. Het addertje: de gateway is geen chatwidget. Hij bewaart je kanaalgegevens en voert, zolang je geen sandbox inschakelt, tools rechtstreeks op de host uit. Verhuizen naar een machine die altijd aan staat loont alleen als het beveiligingsmodel mee verhuist.

Deze gids doet dat in zo'n 20 minuten op een verse Ubuntu 24.04-VPS.

Laatst gecontroleerd op 2026-10-04 met OpenClaw 2026.9.8 (npm), Node 24.21 LTS en Ubuntu 24.04.

Wat je nodig hebt

  • Een Linux-VPS. Wij gebruiken ons AI-Agent-pakket: 4 vCPU, 4 GB RAM, 40 GB schijf, $10 per maand. De OpenClaw-documentatie noemt 6 GB RAM, maar dat is voor het bouwen van hun Docker-image vanaf de broncode; het npm-pakket hoeft niet gebouwd te worden.
  • Een API-sleutel van je modelaanbieder en de chataccounts die je wilt koppelen.
  • Een SSH-sleutel op je laptop. Nog geen? Inloggen met een SSH-sleutel.

Een NAT-pakket werkt hier prima, en past misschien zelfs beter. De gateway heeft nooit een open inkomende poort nodig: WhatsApp, Discord en Telegram (standaard long polling) verbinden uitgaand, en het dashboard bereik je via SSH. Neem alleen een eigen IPv4 als een kanaal dat je nodig hebt via een webhook aflevert of als je een publieke reverse proxy wilt.

1. Een gebruiker die geen root is

OpenClaw voert tools uit als de gebruiker die eigenaar is van de gateway. Is dat root, dan draait ook elk commando als root dat een verward of via prompt injection gestuurd model wil uitvoeren. De OpenClaw-documentatie noemt draaien als root onveilig en niet ondersteund. Maak een eigen gebruiker aan, zonder sudo:

# als root
apt update && apt -y upgrade
adduser --disabled-password --gecos "" claw
install -d -m 700 -o claw -g claw /home/claw/.ssh
install -m 600 -o claw -g claw ~/.ssh/authorized_keys /home/claw/.ssh/authorized_keys   # de sleutel die je bij de bestelling toevoegde
loginctl enable-linger claw

De laatste regel is belangrijker dan hij lijkt. OpenClaw installeert een systemd-user-service, en zonder lingering stopt die service als je uitlogt. Dat is op servers de meest voorkomende "gisteren werkte het nog".

2. Node 24 en OpenClaw

OpenClaw 2026.9.8 vereist Node >=24.16.0 <25 of >=26.1.0. Ubuntu's eigen pakket nodejs is ouder, dus we nemen de 24 LTS van NodeSource:

# als root
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
apt install -y nodejs
node -v          # v24.16.0 of nieuwer
npm install -g openclaw@latest
openclaw --version

De officiële one-liner (curl -fsSL https://openclaw.ai/install.sh | bash) werkt ook en installeert Node voor je. Op een server hebben wij liever de twee expliciete stappen: je ziet wat waar terechtkomt, en de binary staat in /usr/bin in plaats van in een thuismap waar de agent kan schrijven.

3. Onboarding als de agent-gebruiker

Log als claw via SSH in, niet met su. Alleen een echte login start de systemd-user-manager die de service nodig heeft:

# vanaf je laptop (NAT-pakket: voeg -p <je SSH-poort> toe)
ssh claw@<server>

openclaw onboard --install-daemon
openclaw gateway status

De wizard controleert de toegang tot het model, schrijft ~/.openclaw/openclaw.json, genereert een gateway-token en installeert de service. Klaagt systemctl --user over de bus, zet dan export XDG_RUNTIME_DIR=/run/user/$(id -u) en probeer opnieuw.

Sluit daarna de bestanden af. OpenClaw zelf adviseert 700 op de state-map en 600 op de configuratie:

chmod 700 ~/.openclaw && chmod 600 ~/.openclaw/openclaw.json
openclaw security audit --deep

openclaw security audit --fix past het veilige deel van de correcties toe: strengere bestandsrechten en allowlists in plaats van open groepsbeleid. Het verandert niets aan waar de gateway luistert en zet geen firewall; netwerkblootstelling blijft jouw taak.

4. Houd de gateway op loopback

De gateway serveert zijn WebSocket-API en het dashboard op één poort, 18789, standaard gebonden aan 127.0.0.1. Laat dat zo. Een minimale configuratie die het expliciet vastlegt:

// ~/.openclaw/openclaw.json
{
  gateway: {
    mode: "local",
    bind: "loopback",
    port: 18789,
    auth: { mode: "token", token: "paste-output-of-openssl-rand-hex-32" },
  },
}

Genereer het token met openssl rand -hex 32 of openclaw doctor --generate-gateway-token. De gateway weigert lege tokens en de voorbeeldwaarden, en de audit waarschuwt onder de 24 tekens.

Wat je niet moet doen: bind op "lan" zetten en de poort openen. De documentatie is daar duidelijk over: stel de gateway nooit zonder authenticatie bloot op 0.0.0.0, en stuur de poort ook met token niet breed door. Wie dat token heeft, is operator van een proces dat commando's op je server kan uitvoeren.

Aan de firewallkant: SSH toestaan en verder niets.

# als root
ufw allow OpenSSH
ufw enable
ufw status verbose

Op onze NAT-pakketten toont het dashboard een externe SSH-poort, maar binnen de server luistert sshd nog steeds op 22. Sta OpenSSH (poort 22) toe, niet het externe poortnummer, anders sluit ufw enable je buiten. Meer in de UFW-gids.

5. Het dashboard via SSH bereiken

Open vanaf je laptop een tunnel en laat hem openstaan:

ssh -N -L 18789:127.0.0.1:18789 claw@<server>
# NAT-pakket: ssh -N -p <je SSH-poort> -L 18789:127.0.0.1:18789 claw@<host>

Open http://127.0.0.1:18789/ en plak het gateway-token. De standaard-sshd van Ubuntu staat lokale forwarding toe; heb je hem dichtgezet, dan is AllowTcpForwarding local de instelling die -L toestaat en remote forwards blokkeert. Faalt de tunnel met administratively prohibited, controleer dan precies die regel.

Een tailnet kan ook: Tailscale Serve houdt de gateway op loopback en regelt de toegang. Allebei prima. Een publieke poort niet.

6. Pairing, sandbox en wie ermee mag praten

Chatkanalen zijn de andere ingang. Standaard moeten onbekende afzenders in kanalen met directe berichten eerst pairen; jij keurt goed vanaf de server:

openclaw pairing approve <channel> <code>

Vereis in groepen een vermelding, zodat de agent niet op elk bericht in de ruimte reageert. De geharde basisconfiguratie van OpenClaw gebruikt per kanaal dmPolicy: "pairing" en groups: { "*": { requireMention: true } }.

Twee eerlijke kanttekeningen. Eén: pairing bepaalt wie een beurt mag starten, niet wat er in de context van het model belandt; een doorgestuurd bericht of een opgehaalde webpagina kan een door jou gestarte beurt nog steeds sturen. Twee: tools van de hoofdsessie draaien op de host zolang je geen sandbox inschakelt (agents.defaults.sandbox.mode: "non-main" sandboxt alles behalve je eigen hoofdsessie). De sandbox staat standaard uit en de standaardbackend is Docker, dus installeer eerst Docker als je hem aanzet: Docker op een VPS. Delen mensen die je niet vertrouwt een kanaal met de bot, gebruik dan een aparte gateway, liefst op een aparte server.

7. Updates en back-ups

openclaw update
openclaw gateway status
openclaw backup create --output ~/backups/openclaw --verify

~/.openclaw bevat de configuratie, de kanaalgegevens (inclusief de WhatsApp-sessie), de auth-profielen van modellen en de sessietranscripties. Kwijtraken betekent alles opnieuw pairen; lekken betekent dat iemand anders jou is op WhatsApp. Maak back-ups en bewaar ze niet op de server: download ze met scp of gebruik restic met versleuteling.

Checklist

ControleCommandoVerwacht
Gateway draait niet als rootps -eo user,args | grep '[o]penclaw'claw in de eerste kolom
Overleeft uitloggenloginctl show-user claw -p LingerLinger=yes
Luistert alleen op loopbackss -ltnp | grep 18789127.0.0.1:18789
Geen publieke poortufw statusalleen OpenSSH
Configuratie niet voor iedereen leesbaarstat -c '%a' ~/.openclaw/openclaw.json600
Audit schoonopenclaw security audit --deepgeen kritieke bevindingen

Waar EQVPS in beeld komt

Veel hosts kunnen een Node-proces draaien. Wij voegen cryptobetaling zonder KYC toe, een NAT-pakket dat past bij een gateway die alleen op loopback luistert, en een MCP-server waarmee je agent zijn eigen servers kan beheren. Koppel je OpenClaw daaraan, lees dan eerst MCP-vangrails: een token waarmee je servers kunt bestellen verdient dezelfde zorg als het gateway-token. Voor een breder beeld van agents op een VPS, zie de gids voor AI-agents.

Onze mening: deze 20 minuten zijn het verschil tussen een assistent en een open shell met een chatinterface. Doe in elk geval stap 1, 4 en 5, ook als je de rest overslaat.

Klaar om te implementeren? Betaal met crypto, geen KYC — live in ongeveer een minuut.

Nu implementeren →

FAQ

Welke Node.js-versie heeft OpenClaw nodig?

Node 24.16 of nieuwer op de 24-lijn, of 26.1 en nieuwer. Het npm-pakket (openclaw 2026.9.8 op het moment van schrijven) weigert al het andere, dus Node 22 is niet genoeg. Op Ubuntu levert de NodeSource-repository 24.x de huidige 24 LTS.

Moet ik poort 18789 openzetten naar internet?

Nee. De gateway luistert standaard op loopback (127.0.0.1:18789), en daar hoort hij te blijven. Het dashboard bereik je via een SSH-tunnel. Binden aan LAN of 0.0.0.0 betekent dat alleen een token, dat kan lekken, nog tussen vreemden en een proces staat dat commando's op de server kan uitvoeren.

Werkt een NAT-VPS zonder eigen IPv4 voor OpenClaw?

Ja, voor de meeste setups. WhatsApp, Discord en Telegram (standaard long polling) maken uitgaande verbindingen, en het dashboard gaat via een SSH-tunnel op je doorgestuurde SSH-poort. Een eigen IPv4 heb je alleen nodig voor kanalen die via een webhook afleveren, of als je er een publieke reverse proxy voor zet.

Hoeveel RAM heeft OpenClaw nodig op een VPS?

De gateway zelf is licht. De 6 GB in de OpenClaw-documentatie gaat over het bouwen van de Docker-image vanaf de broncode. Met het npm-pakket valt er niets te compileren; wij draaien het op ons AI-Agent-pakket (4 vCPU, 4 GB RAM, 40 GB schijf), met ruimte voor de browsertool en een sandbox.

Blijft OpenClaw draaien als ik uit SSH log?

Alleen als je lingering inschakelt voor de gebruiker die eigenaar is van de service: sudo loginctl enable-linger <user>. OpenClaw installeert een systemd-user-unit, en zonder lingering stopt de user-manager met je laatste sessie.

Reacties

Nog geen reacties. Wees de eerste.

Laat een reactie achter

Reacties worden gemodereerd voordat ze verschijnen.