Oracle Cloud
Oracle Cloud
Section titled “Oracle Cloud”Run a persistent OpenClaw Gateway on Oracle Cloud’s Always Free ARM tier (up to 4 OCPU, 24 GB RAM, 200 GB storage) at no cost.
Prerequisites
Section titled “Prerequisites”- Oracle Cloud account (signup) — see community signup guide if you hit issues
- Tailscale account (free at tailscale.com)
- An SSH key pair
- About 30 minutes
Create an OCI instance
- Log into Oracle Cloud Console.
- Navigate to Compute > Instances > Create Instance.
- 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
- Name:
- Click Create and note the public IP address.
Connect and update the system
Terminal window ssh ubuntu@YOUR_PUBLIC_IPsudo apt update && sudo apt upgrade -ysudo apt install -y build-essentialbuild-essentialis required for ARM compilation of some dependencies.Configure user and hostname
Terminal window sudo hostnamectl set-hostname openclawsudo passwd ubuntusudo loginctl enable-linger ubuntuEnabling linger keeps user services running after logout.
Install Tailscale
Terminal window curl -fsSL https://tailscale.com/install.sh | shsudo tailscale up --ssh --hostname=openclawFrom now on, connect via Tailscale:
ssh ubuntu@openclaw.Install OpenClaw
Terminal window curl -fsSL https://openclaw.ai/install.sh | bashsource ~/.bashrcWhen prompted “How do you want to hatch your bot?”, select Do this later.
Configure the gateway
Use token auth with Tailscale Serve for secure remote access.
Terminal window openclaw config set gateway.bind loopbackopenclaw config set gateway.auth.mode tokenopenclaw doctor --generate-gateway-tokenopenclaw config set gateway.tailscale.mode serveopenclaw config set gateway.trustedProxies '["127.0.0.1"]'systemctl --user restart openclaw-gatewaygateway.trustedProxies=["127.0.0.1"]is for the local Tailscale Serve proxy. Diff viewer routes keep fail-closed behavior in this setup: raw127.0.0.1viewer requests without forwarded proxy headers can returnDiff not found. Usemode=file/mode=bothfor attachments, or intentionally enable remote viewers and setplugins.entries.diffs.config.viewerBaseUrl(or pass a proxybaseUrl) if you need shareable viewer links.Lock down VCN security
Block all traffic except Tailscale at the network edge:
- Go to Networking > Virtual Cloud Networks in the OCI Console.
- Click your VCN, then Security Lists > Default Security List.
- Remove all ingress rules except
0.0.0.0/0 UDP 41641(Tailscale). - Keep default egress rules (allow all outbound).
This blocks SSH on port 22, HTTP, HTTPS, and everything else at the network edge. You can only connect via Tailscale from this point on.
Verify
Terminal window openclaw --versionsystemctl --user status openclaw-gatewaytailscale serve statuscurl http://localhost:18789Access the Control UI from any device on your tailnet:
https://openclaw..ts.net/ ```
Replace `with your tailnet name (visible intailscale status`).
Fallback: SSH tunnel
Section titled “Fallback: SSH tunnel”If Tailscale Serve is not working, use an SSH tunnel from your local machine:
ssh -L 18789:127.0.0.1:18789 ubuntu@openclawThen open http://localhost:18789.
Troubleshooting
Section titled “Troubleshooting”Instance creation fails (“Out of capacity”) — Free tier ARM instances are popular. Try a different availability domain or retry during off-peak hours.
Tailscale will not connect — Run sudo tailscale up --ssh --hostname=openclaw --reset to re-authenticate.
Gateway will not start — Run openclaw doctor --non-interactive and check logs with journalctl --user -u openclaw-gateway -n 50.
ARM binary issues — Most npm packages work on ARM64. For native binaries, look for linux-arm64 or aarch64 releases. Verify architecture with uname -m.
Next steps
Section titled “Next steps”- Channels — connect Telegram, WhatsApp, Discord, and more
- Gateway configuration — all config options
- Updating — keep OpenClaw up to date