← Home

Guide

OpenClaw on OVHcloud: Self-Host on an OVH VPS

OVHcloud is one of Europe's largest hosts, and its VPS line is a common choice for people who want an agent running on European infrastructure with included anti-DDoS. This walks through choosing a plan, installing OpenClaw, putting TLS in front of the gateway — and the one ordering decision that is expensive to get wrong.

Which OVH VPS Plan?

OVH sells VPS-1 through VPS-6. For a single OpenClaw agent, the entry tier is genuinely enough: the VPS-1 ships 4 vCPU, 8 GB RAM and 75 GB NVMe SSD, with unmetered traffic, anti-DDoS included and daily backups on the plans that offer them. At roughly $6.46/mo in the US region it sits close to comparable Hetzner boxes on price while giving more RAM than a minimal agent needs.

Step up to VPS-2 (about $9.99/mo) if you plan to run browser-driving skills, several agents on one box, or a local model alongside. Chromium is the thing that actually eats memory; text-only agents are comfortable on the base tier.

Be aware that OVH raised VPS pricing by an average of 9–11% in March 2026, with the entry tier moving proportionally more — roughly 30%, from about $4.90 to $6.46 — which the company attributed to RAM and disk supply pressure driven by GPU demand. Older guides quoting sub-$5 OVH pricing are describing a world that no longer exists. Always check the live pricing page for your region before ordering.

Check this before you order: OVH VPS plans in the US region support in-place resize. Outside the US region they do not — changing tier means cancelling and re-ordering, then migrating your data by hand. If you are unsure how much headroom you need, either start one tier up or order in a region where you can resize.

Step 1: Prepare the Server

Order the VPS with Ubuntu 24.04, then connect and do the usual hardening before installing anything:

ssh ubuntu@<your-vps-ip>

sudo apt update && sudo apt upgrade -y

# key-only SSH
sudo sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart ssh

sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable

OVH's anti-DDoS protection operates at the network edge and is always on. It does not filter application traffic, so the firewall above is still your responsibility.

Step 2: Install Docker

OVH images already give you a non-root sudo user (ubuntu on the Ubuntu image), so add that user to the docker group rather than creating another one — adding a different account and then running newgrp as yourself is the usual reason the next docker command returns a permission error.

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker

docker run --rm hello-world   # confirm it works without sudo

Step 3: Run OpenClaw

mkdir -p ~/openclaw && cd ~/openclaw

docker pull ghcr.io/openclaw/openclaw:main

docker run -d \
  --name openclaw \
  --restart unless-stopped \
  -v ~/openclaw:/home/node/.openclaw \
  -p 127.0.0.1:18789:18789 \
  ghcr.io/openclaw/openclaw:main

Use the :main tag, matching the Hetzner and Hostinger guides, and mount to /home/node/.openclaw — the container runs as the node user, so a mount at /root/.openclaw leaves the config unreadable to the process that needs it.

Binding to 127.0.0.1 rather than 0.0.0.0 is deliberate. The gateway should be reachable only through the reverse proxy, never directly on a public port. Full configuration options are in the install guide.

Step 4: TLS With Caddy

Point a DNS A record at the VPS IP, then let Caddy handle certificates automatically:

sudo apt install -y caddy

sudo tee /etc/caddy/Caddyfile >/dev/null <<'EOF'
agent.example.com {
    reverse_proxy 127.0.0.1:18789
}
EOF

sudo systemctl reload caddy

Caddy provisions and renews the certificate on its own. Once this is up, your gateway is on HTTPS and nothing is listening on a raw public port.

Step 5: Backups

Some OVH plans include daily snapshots, and where available they are worth enabling — but a host snapshot is disaster recovery, not a backup you can restore selectively. Take your own copy of the data directory too:

mkdir -p ~/backups

# nightly at 03:00 — the % must be escaped as \% inside a crontab
0 3 * * * tar czf ~/backups/openclaw-$(date +\%F).tar.gz ~/openclaw

That directory holds credentials, memory and installed skills. Keep a copy off the same machine.

OVH vs Hetzner vs Managed

OVHcloud VPSHetznerOpenClaw Launch
Entry cost~$6.46/mo (VPS-1)Comparable at the low end$6/mo Lite, $20/mo Pro
You maintainOS, Docker, TLS, backups, updatesOS, Docker, TLS, backups, updatesNothing
Anti-DDoSIncluded at the edgeIncludedHandled upstream
ResizeIn place in US region onlyIn placeChange plan any time
Setup time30–60 minutes30–60 minutesAbout 30 seconds
AI creditsNone — bring your own keysNoneIncluded, BYOK also supported

Self-hosting on OVH makes sense when you want the box for other things too, need data in a specific European jurisdiction, or simply enjoy running your own infrastructure. If the server would exist only to hold the agent, managed hosting costs about the same and removes the maintenance. See also OpenClaw on Hetzner and the cheapest hosting round-up.

Troubleshooting

The gateway is unreachable after install

Expected, if you followed step 3 — it is bound to localhost until Caddy is in front. Confirm locally with curl -I http://127.0.0.1:18789 on the VPS before blaming DNS.

Caddy will not issue a certificate

Nearly always DNS or port 80. The A record must resolve to the VPS before Caddy can validate, and ports 80 and 443 must be open in both ufw and any firewall rules configured in the OVH control panel.

The container is killed overnight

Memory pressure. Check docker stats and dmesg | grep -i oom. Browser-based skills are the usual cause — either move up a tier or add swap.

What's Next?

Skip the server setup

Deploy a managed OpenClaw agent in about 30 seconds — TLS, backups and updates included.

Deploy Now