How to Run OpenClaw on Vultr — The Indie Dev Favorite
Vultr starts at $6/mo with excellent API. Big with indie devs and crypto builders. Here's how to deploy OpenClaw on Vultr.

Most guides about running game engines on cloud VPS infrastructure are written by people who've never actually done it. They'll give you a neat bullet list, link to official docs, and wish you luck.
This isn't that.
I've deployed OpenClaw on Vultr multiple times — for development, for testing custom Lua mods, and for running a headless instance that streams to my laptop while I'm pretending to work. I'll walk you through the entire process, including the parts that actually trip people up: the Allegro display context issue, the asset sourcing question, and the moment where cmake throws a cryptic error because you forgot --recursive on git clone.
Let's get into it.
Why Vultr, and Why OpenClaw Specifically?
If you're here, you probably already know what OpenClaw is: the open-source reimplementation of the engine behind Captain Claw, the 1997 Monolith platformer that never got the love it deserved. The project rebuilds the engine from scratch using Allegro 5 for graphics and audio, Lua for scripting, and PhysFS for asset management. It's a legitimate piece of fan-driven engineering, and it's become a playground for modders, retro game developers, and people who want to understand how 2D platformer engines actually work under the hood.
Vultr is the VPS provider that indie developers and small-team builders keep gravitating toward. The reasons are straightforward:
- Hourly billing. You pay for what you use. Spin up, build, test, destroy. No commitment.
- Excellent API. If you want to automate deployments or integrate OpenClaw builds into a CI/CD pipeline, Vultr's API is clean and well-documented.
- 32+ data center locations. Low latency from almost anywhere.
- New user credits. Vultr regularly offers $100–$250 in free credits. That's enough to run an OpenClaw dev instance for months.
The $6/month High Frequency plan (1 vCPU, 2 GB RAM, 55 GB NVMe SSD) is the sweet spot for OpenClaw. You can build, run, and mod comfortably. If you're compiling frequently or want to stream gameplay via VNC/Parsec, bump to the $12/month plan (2 vCPU, 4 GB RAM).
No GPU instance needed. OpenClaw runs on software rendering just fine for development and testing. Save your money.
Step 1: Create Your Vultr Instance
Head to vultr.com and sign up. If you haven't used Vultr before, look for their new-user credit promotion — it's usually linked on the homepage or available through partner links on Claw Mart.
Once you're in the dashboard:
- Click Deploy New Instance.
- Choose Cloud Compute → High Frequency.
- Select your nearest data center. (If you're in the US, New Jersey or Dallas are solid. Europe, go Amsterdam or London. Asia-Pacific, Tokyo or Singapore.)
- For the OS, select Ubuntu 22.04 LTS x64. This is the most well-tested path for OpenClaw's dependency chain.
- Choose the $6/month plan (1 vCPU / 2 GB RAM / 55 GB NVMe).
- Under SSH Keys, add your public key. If you don't have one yet:
ssh-keygen -t ed25519 -C "your@email.com"
cat ~/.ssh/id_ed25519.pub
Paste the output into Vultr's SSH key field.
- Give your instance a hostname like
openclaw-devand hit Deploy Now.
It'll be ready in about 60 seconds. Grab the IP address from your dashboard.
Step 2: SSH In and Prepare the System
ssh root@YOUR_VULTR_IP
First thing — update everything:
apt update && apt upgrade -y
Now install the full dependency chain for OpenClaw. This is the part most tutorials get wrong by listing half the packages. Here's the complete set for Ubuntu 22.04:
apt install -y \
git \
build-essential \
cmake \
pkg-config \
liballegro5-dev \
liballegro-dialog-addon5-dev \
liballegro-physfs5-dev \
liballegro-audio5-dev \
liballegro-acodec5-dev \
liballegro-ttf5-dev \
liballegro-image5-dev \
liballegro-primitives5-dev \
libphysfs-dev \
libluajit-5.1-dev \
libpng-dev \
libfreetype6-dev \
libfontconfig1-dev \
libx11-dev \
libxi-dev \
libxrandr-dev \
libxxf86vm-dev \
libgl1-mesa-dev \
libglew-dev
This pulls in roughly 500 MB. On Vultr's High Frequency instances with NVMe storage, it should complete in under two minutes.
Important note on Allegro versions: Ubuntu 22.04's apt repos ship Allegro 5.2.7. OpenClaw works best with 5.2.8+. For most use cases, 5.2.7 is fine. If you hit rendering bugs or segfaults later, you'll want to compile Allegro from source. I'll cover that in the troubleshooting section.
Step 3: Clone and Build OpenClaw
Here's where the --recursive flag matters. OpenClaw uses git submodules. Skip it and your build will fail with confusing errors about missing headers.
cd /opt
git clone --recursive https://github.com/OpenClaw/OpenClaw.git
cd OpenClaw
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
On the $6/month single-vCPU plan, the build takes roughly 5–8 minutes. On the $12 plan with 2 vCPUs, it's closer to 3 minutes.
If you want to install system-wide:
sudo make install
This drops the binary into /usr/local/bin. Not strictly necessary for dev work — running from the build directory is fine.
Step 4: Get the Game Assets
This is the step everyone asks about. OpenClaw is an engine reimplementation — it doesn't ship the original game assets (WAP/WAD files, sprites, sounds, music). You need the original Captain Claw game data.
Your options:
- If you own the original game — rip the assets from your CD or GOG installation using the tools documented in OpenClaw's GitHub wiki.
- Archive.org — the game is widely considered abandonware and versions are available on the Internet Archive. Search for "Captain Claw 1997."
- Claw Mart — check the Claw Mart marketplace for community-maintained asset extraction kits and pre-configured data packages that simplify this process considerably.
Once you have the assets (primarily CLAW.REZ and related files), place them in the expected directory:
mkdir -p /opt/OpenClaw/data
cp /path/to/your/CLAW.REZ /opt/OpenClaw/data/
The exact expected path depends on the build configuration. Check config.xml or the OpenClaw wiki for your version's expected layout.
Step 5: Set Up a Virtual Display (Headless Mode)
Here's the thing about running OpenClaw on a VPS: Allegro 5 requires a display context. Your Vultr instance doesn't have a monitor. If you just try to run the binary, it'll crash immediately with a display initialization error.
The fix is Xvfb — a virtual framebuffer:
apt install -y xvfb
Xvfb :99 -screen 0 1024x768x24 &
export DISPLAY=:99
Now OpenClaw thinks it has a 1024×768 display. It'll render to this virtual framebuffer, which you can then access via VNC, capture for streaming, or simply use for headless testing and automation.
To make this persistent across sessions, add it to your .bashrc or create a systemd service (covered in Step 7).
Step 6: Run OpenClaw
cd /opt/OpenClaw
./build/src/openclaw
If your assets are in the right place and Xvfb is running, the engine will start. You won't see anything directly (headless, remember), but you'll see log output confirming initialization.
To actually see and interact with the game remotely, you need a remote desktop solution. The three best options:
Option A: VNC (Simple, Low Quality)
apt install -y x11vnc
x11vnc -display :99 -forever -nopw -listen 0.0.0.0 &
Then connect from your local machine using any VNC client at YOUR_VULTR_IP:5900.
For security, set a password:
x11vnc -display :99 -forever -rfbauth /root/.vnc/passwd -listen 0.0.0.0 &
And configure Vultr's firewall to only allow port 5900 from your IP.
Option B: Parsec (Better Latency, Better for Gameplay)
Parsec offers better compression and lower latency for game streaming. Install the headless Linux client:
wget https://builds.parsec.app/package/parsec-linux.deb
dpkg -i parsec-linux.deb
Follow Parsec's headless setup guide. You'll need a Parsec account and to configure it with your virtual display.
Option C: NoMachine (Good Middleground)
wget https://download.nomachine.com/download/8.11/Linux/nomachine_8.11.3_4_amd64.deb
dpkg -i nomachine_*.deb
NoMachine auto-detects the virtual display and provides a responsive remote desktop.
Step 7: Make It Always-On with Systemd
If you want OpenClaw to start automatically on boot (useful for a persistent dev/test environment or a demo server):
Create /etc/systemd/system/openclaw.service:
[Unit]
Description=OpenClaw Game Engine
After=network.target
[Service]
Type=simple
Environment=DISPLAY=:99
ExecStartPre=/usr/bin/Xvfb :99 -screen 0 1024x768x24
ExecStart=/opt/OpenClaw/build/src/openclaw
WorkingDirectory=/opt/OpenClaw/data
Restart=on-failure
RestartSec=5
User=root
[Install]
WantedBy=multi-user.target
Enable and start it:
systemctl daemon-reload
systemctl enable openclaw
systemctl start openclaw
systemctl status openclaw
Now your OpenClaw instance survives reboots and restarts automatically on crashes.
Step 8: Connect to Telegram for Notifications (Optional but Smart)
If you're running this as a persistent dev environment or CI test runner, you probably want to know when things break. A simple Telegram bot notification takes five minutes to set up.
- Message
@BotFatheron Telegram. Create a bot. Copy the token. - Get your chat ID by messaging
@userinfobot. - Create a simple notification script at
/opt/openclaw-notify.sh:
#!/bin/bash
BOT_TOKEN="your-bot-token"
CHAT_ID="your-chat-id"
MESSAGE="⚠️ OpenClaw service on Vultr has stopped or restarted at $(date)"
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-d chat_id="${CHAT_ID}" \
-d text="${MESSAGE}"
chmod +x /opt/openclaw-notify.sh
Add it to the systemd service as a failure hook:
[Service]
...
ExecStopPost=/opt/openclaw-notify.sh
Now you get a Telegram ping whenever the service stops unexpectedly.
Cost Breakdown
Let's be specific about what this actually costs on Vultr:
| Item | Monthly Cost |
|---|---|
| High Frequency 1 vCPU / 2 GB RAM | $6.00 |
| IPv4 Address (included) | $0.00 |
| 1 TB Bandwidth (included) | $0.00 |
| Auto Backups (optional, +20%) | $1.20 |
| Total | $6.00–$7.20 |
If you're only using this for periodic development or testing, Vultr's hourly billing means you can destroy the instance when you're done. At $0.009/hour, a 10-hour build-and-test session costs you nine cents. Take a snapshot before destroying ($0.05/GB/month for storage) and redeploy from it next time in under a minute.
For the $12/month plan (recommended if you're compiling frequently or running VNC streaming):
| Item | Monthly Cost |
|---|---|
| High Frequency 2 vCPU / 4 GB RAM | $12.00 |
| Auto Backups | $2.40 |
| Total | $12.00–$14.40 |
Compare this to running a dedicated local machine for the same purpose. It's practically free.
Gotchas That Will Actually Bite You
After doing this enough times, here's my short list of things that waste your time if you don't know about them upfront:
1. Forgetting --recursive on git clone. The build will fail with missing header errors for submodule dependencies. If you already cloned without it:
cd /opt/OpenClaw
git submodule update --init --recursive
2. LuaJIT vs Lua 5.4. OpenClaw uses LuaJIT, not standard Lua. If you install liblua5.4-dev instead of libluajit-5.1-dev, cmake might find it but the build will fail with link errors. Double-check with:
dpkg -l | grep luajit
3. Allegro display context crashes. Already covered above, but worth repeating: without Xvfb (or an actual display), the engine will segfault on startup. The error message isn't always obvious — it sometimes shows as a generic null pointer dereference rather than "no display found."
4. Asset path confusion. OpenClaw expects assets in specific relative paths. If the engine starts but shows a black screen or crashes on level load, your CLAW.REZ (or extracted assets) aren't where the engine expects them. Check config.xml and the console output for path resolution messages.
5. No ARM support. OpenClaw is x86_64 only. Vultr defaults to x86_64, so this isn't usually an issue — but if you're tempted by their ARM instances (cheaper), don't. It won't build.
6. Bandwidth when streaming. VNC and Parsec streaming at 720p/30fps burns through roughly 1–3 GB/hour. Vultr's 1 TB monthly allowance is generous, but if you're streaming gameplay daily, keep an eye on it. Overage is $0.01/GB.
What You Can Do From Here
With OpenClaw running on Vultr, you've got a cloud-based platform for:
- Modding and scripting. Edit Lua scripts, rebuild, test — all without tying up your local machine. OpenClaw's Lua scripting layer lets you modify game logic, enemy behavior, level triggers, and more.
- CI/CD for OpenClaw contributions. If you're contributing to the project, a Vultr instance makes an excellent build-and-test server. Hook it up to GitHub Actions or a simple cron job that pulls, builds, and runs tests.
- Custom level testing. Building custom levels? Test them on a clean environment that mirrors what other players will experience.
- Engine study and development. OpenClaw's codebase is one of the cleanest examples of a 2D platformer engine in open source. Running it on a VPS means you can instrument, profile, and experiment without risk to your local setup.
Check Claw Mart for community-built OpenClaw mod kits, Lua script packs, level editors, asset extraction tools, and pre-configured deployment templates that cut your setup time from 30 minutes to under 5.
The Bottom Line
Total setup time: 15–30 minutes on a fresh Vultr instance. Total cost: $6/month or less if you use hourly billing. You end up with a cloud-hosted OpenClaw environment that's always available, easily reproducible, and costs less than a coffee.
Vultr's combination of hourly billing, fast NVMe storage, and a solid API makes it the natural fit for indie developers and OpenClaw builders who want infrastructure that stays out of the way. Spin it up, get your work done, spin it down. No nonsense.
The hardest part of this entire process is sourcing the original game assets. Everything else is just apt, cmake, and make. Go build something.
Find OpenClaw deployment kits, Lua mod packs, and Vultr setup scripts on Claw Mart.