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
| Controle | Commando | Verwacht |
|---|---|---|
| Gateway draait niet als root | ps -eo user,args | grep '[o]penclaw' | claw in de eerste kolom |
| Overleeft uitloggen | loginctl show-user claw -p Linger | Linger=yes |
| Luistert alleen op loopback | ss -ltnp | grep 18789 | 127.0.0.1:18789 |
| Geen publieke poort | ufw status | alleen OpenSSH |
| Configuratie niet voor iedereen leesbaar | stat -c '%a' ~/.openclaw/openclaw.json | 600 |
| Audit schoon | openclaw security audit --deep | geen 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.
Reacties
Nog geen reacties. Wees de eerste.