Skip to main content

OpenClaw on Oracle Cloud (OCI)

Goal

Run a persistent OpenClaw Gateway on Oracle Cloud’s Always Free ARM tier. Oracle’s free tier can be a great fit for OpenClaw (especially if you already have an OCI account), but it comes with tradeoffs:
  • ARM architecture (most things work, but some binaries may be x86-only)
  • Capacity and signup can be finicky

Cost Comparison (2026)


Prerequisites

1) Create an OCI Instance

  1. Log into Oracle Cloud Console
  2. Navigate to Compute → Instances → Create Instance
  3. Configure:
    • Name: openclaw
    • Image: Ubuntu 24.04 (aarch64)
    • Shape: VM.Standard.A1.Flex (Ampere ARM)
    • OCPUs: 2 (or up to 4)
    • Memory: 12 GB (or up to 24 GB)
    • Boot volume: 50 GB (up to 200 GB free)
    • SSH key: Add your public key
  4. Click Create
  5. Note the public IP address
Tip: If instance creation fails with “Out of capacity”, try a different availability domain or retry later. Free tier capacity is limited.

2) Connect and Update

Note: build-essential is required for ARM compilation of some dependencies.

3) Configure User and Hostname

4) Install Tailscale

This enables Tailscale SSH, so you can connect via ssh openclaw from any device on your tailnet — no public IP needed. Verify:
From now on, connect via Tailscale: ssh ubuntu@openclaw (or use the Tailscale IP).

5) Install OpenClaw

When prompted “How do you want to hatch your bot?”, select “Do this later”.
Note: If you hit ARM-native build issues, start with system packages (e.g. sudo apt install -y build-essential) before reaching for Homebrew.

6) Configure Gateway (loopback + token auth) and enable Tailscale Serve

Use token auth as the default. It’s predictable and avoids needing any “insecure auth” Control UI flags.

7) Verify

8) Lock Down VCN Security

Now that everything is working, lock down the VCN to block all traffic except Tailscale. OCI’s Virtual Cloud Network acts as a firewall at the network edge — traffic is blocked before it reaches your instance.
  1. Go to Networking → Virtual Cloud Networks in the OCI Console
  2. Click your VCN → Security Lists → Default Security List
  3. Remove all ingress rules except:
    • 0.0.0.0/0 UDP 41641 (Tailscale)
  4. Keep default egress rules (allow all outbound)
This blocks SSH on port 22, HTTP, HTTPS, and everything else at the network edge. From now on, you can only connect via Tailscale.

Access the Control UI

From any device on your Tailscale network:
Replace <tailnet-name> with your tailnet name (visible in tailscale status). No SSH tunnel needed. Tailscale provides:
  • HTTPS encryption (automatic certs)
  • Authentication via Tailscale identity
  • Access from any device on your tailnet (laptop, phone, etc.)

With the VCN locked down (only UDP 41641 open) and the Gateway bound to loopback, you get strong defense-in-depth: public traffic is blocked at the network edge, and admin access happens over your tailnet. This setup often removes the need for extra host-based firewall rules purely to stop Internet-wide SSH brute force — but you should still keep the OS updated, run openclaw security audit, and verify you aren’t accidentally listening on public interfaces.

What’s Already Protected

  • Credential permissions: chmod 700 ~/.openclaw
  • Security audit: openclaw security audit
  • System updates: sudo apt update && sudo apt upgrade regularly
  • Monitor Tailscale: Review devices in Tailscale admin console

Verify Security Posture


Fallback: SSH Tunnel

If Tailscale Serve isn’t working, use an SSH tunnel:
Then open http://localhost:18789.

Troubleshooting

Instance creation fails (“Out of capacity”)

Free tier ARM instances are popular. Try:
  • Different availability domain
  • Retry during off-peak hours (early morning)
  • Use the “Always Free” filter when selecting shape

Tailscale won’t connect

Gateway won’t start

Can’t reach Control UI

ARM binary issues

Some tools may not have ARM builds. Check:
Most npm packages work fine. For binaries, look for linux-arm64 or aarch64 releases.

Persistence

All state lives in:
  • ~/.openclaw/ — config, credentials, session data
  • ~/.openclaw/workspace/ — workspace (SOUL.md, memory, artifacts)
Back up periodically:

See Also