MODULE 01 · COURSE 02: GOING DEEPER
Module 1: Running 24/7 — Moving to a Server
If your agent is running on your laptop, it goes offline when you close the lid. That's fine for testing. It's not fine for an assistant you actually rely on.
This module gets your agent onto a server that never sleeps.
Your options
A cheap cloud VPS — The most common path. $4-10/month. Hetzner, DigitalOcean, Fly.io, and Render all work. Hetzner is the community favorite for the price-to-performance ratio. A home server or Raspberry Pi — Works if you have something running 24/7 at home. Slightly more involved network setup (you'll need a static IP or dynamic DNS), but free to run. Your existing server — If you already have a VPS for something else, you can run OpenClaw alongside it.For this guide, we'll use Hetzner — specifically their CAX11 ARM instance. It's ~$4/month and handles a single-agent setup with room to spare.
Step 1: Get a server
Go to hetzner.com → Cloud → Create Server.
Settings that work well:
- Location: Pick whatever's closest to you
- Image: Ubuntu 24.04
- Type: CAX11 (2 vCPU ARM, 4GB RAM) — ~$4/month
- SSH Key: Add your public key so you can log in without a password
Step 2: Connect to your server
ssh root@YOURSERVERIP
If you set up an SSH key, this should connect immediately. If it asks for a password, use the one Hetzner emailed you.
Step 3: Install Node.js
# Install Node.js 22 via NodeSource
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt-get install -y nodejs
Verify
node --version # should be v22.x.x
Step 4: Install OpenClaw
npm install -g openclaw@latest
openclaw --version
Step 5: Run the onboarding wizard
openclaw onboard --install-daemon
This sets everything up and installs OpenClaw as a systemd service — meaning it starts automatically when your server reboots.
Follow the prompts: choose your AI provider, enter your API key, do basic config.
Step 6: Set up your channels
Same process as your laptop setup, just on the server:
openclaw channels login
For Telegram: just paste your bot token when prompted.
For WhatsApp: you'll need to scan a QR code. If you're SSH'd in and can't see the QR in the terminal, try this to get a shareable URL:
openclaw qr
Step 7: Copy your SOUL.md and config over
If you already have a working setup on your laptop, copy your config and workspace to the server:
# From your laptop
scp ~/.openclaw/openclaw.json root@YOURSERVERIP:~/.openclaw/
scp -r /path/to/your/agent/workspace root@YOURSERVERIP:/same/path/
Or just set it up fresh on the server — it only takes a few minutes.
Step 8: Start and verify
openclaw gateway start
openclaw gateway status
Send a test message from your phone. You should get a response.
Keeping the server healthy
Check if it's running:openclaw gateway status
or
systemctl status openclaw
Restart it:
openclaw gateway restart
or
systemctl restart openclaw
View logs:
openclaw logs
or for systemd logs
journalctl -u openclaw -f
Keep the OS updated:
apt update && apt upgrade -y
Set this on a cron once a week. A server that never gets updated is a security problem waiting to happen.
Remote access to your Control UI
The OpenClaw Control UI runs at http://YOURSERVERIP:18789. But you don't want to expose that publicly — it has admin access to your agent.
The right way to access it: SSH tunnel.
From your laptop:
ssh -L 18789:localhost:18789 root@YOURSERVERIP
Now open http://127.0.0.1:18789 in your browser. You're accessing the server's Control UI through an encrypted tunnel. Nobody else can see it.
For permanent remote access, look at Tailscale — it creates a private network between your devices and the server. Dead simple to set up:
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
What if something breaks at 3am?
Two things help here:
- Systemd auto-restart — The daemon install handles this. If the Gateway crashes, systemd restarts it automatically.
- Ask your agent to alert you — Set up a heartbeat that checks its own health and messages you if something's wrong. We cover this in Module 5.