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.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
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
Setup
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.
Configure the gateway
Use token auth with Tailscale Serve for secure remote access.
gateway.trustedProxies=["127.0.0.1"] here is only for the local Tailscale Serve proxy’s forwarded-IP/local-client handling. It is not gateway.auth.mode: "trusted-proxy". Diff viewer routes keep fail-closed behavior in this setup: raw 127.0.0.1 viewer requests without forwarded proxy headers can return Diff not found. Use mode=file / mode=both for attachments, or intentionally enable remote viewers and set plugins.entries.diffs.config.viewerBaseUrl (or pass a proxy baseUrl) 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).
Verify the security posture
With the VCN locked down (only UDP 41641 open) and the Gateway bound to loopback, public traffic is blocked at the network edge and admin access is tailnet-only. That removes the need for several traditional VPS hardening steps:| Traditional step | Needed? | Why |
|---|---|---|
| UFW firewall | No | The VCN blocks traffic before it reaches the instance. |
| fail2ban | No | Port 22 is blocked at the VCN; no brute-force surface. |
| sshd hardening | No | Tailscale SSH does not use sshd. |
| Disable root login | No | Tailscale authenticates by tailnet identity, not system users. |
| SSH key-only auth | No | Same — tailnet identity replaces system SSH keys. |
| IPv6 hardening | Usually not | Depends on VCN/subnet settings; verify what is actually assigned/exposed. |
chmod 700 ~/.openclawto restrict credential file permissions.openclaw security auditfor an OpenClaw-specific posture check.- Regular
sudo apt update && sudo apt upgradefor OS patches. - Review devices in the Tailscale admin console periodically.
ARM notes
The Always Free tier is ARM (aarch64). Most OpenClaw features work fine; a small number of native binaries need ARM builds:
- Node.js, Telegram, WhatsApp (Baileys): pure JavaScript, no issues.
- Most npm packages with native code: pre-built
linux-arm64artifacts available. - Optional CLI helpers (e.g. Go/Rust binaries shipped by skills): check for an
aarch64/linux-arm64release before installing.
uname -m (should print aarch64). For binaries without an ARM build, install from source or skip them.
Persistence and backups
OpenClaw state lives under:~/.openclaw/—openclaw.json, per-agentauth-profiles.json, channel/provider state, and session data.~/.openclaw/workspace/— the agent workspace (SOUL.md, memory, artifacts).
Fallback: SSH tunnel
If Tailscale Serve is not working, use an SSH tunnel from your local machine:http://localhost:18789.
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 — Runsudo 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.service -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
- Channels — connect Telegram, WhatsApp, Discord, and more
- Gateway configuration — all config options
- Updating — keep OpenClaw up to date