Deploy openclaw.ai on Linode
Linode (Akamai Cloud) provides straightforward Linux instances for an always-on OpenClaw Gateway.
Free Credits
New-customer promotions change over time. Check the current credit amount, eligibility, and expiration before relying on an offer.
Check current Linode offers
Review current Akamai Cloud pricing and new-customer promotions.
Get Started →📋 Prerequisites
Create & Connect to Your Linode
Log in to the Linode Cloud Manager and create a new Linode:
- Click Create → Linode
- Under Choose a Distribution, select Ubuntu 24.04 LTS or a newer supported LTS release
- Select your preferred Region (pick the datacenter closest to you)
- Under Linode Plan, choose a current Shared CPU plan with at least 2 GB RAM
- Set a strong Root Password
- Under SSH Keys, add your public key (recommended for security)
- Click Create Linode
Wait for the status to show Running (usually 1–2 minutes), then connect:
# Replace with your Linode's IP from the Cloud Manager
ssh root@your-linode-ip
System Update & Dependencies
Update the package index and upgrade all installed packages:
sudo apt update && sudo apt upgrade -y
Install supported Node.js version
openclaw.ai requires Node.js 22.22.3+, 24.15+, or 25.9+ (installer defaults to Node 26). Install it from the official NodeSource repository:
curl -fsSL https://deb.nodesource.com/setup_26.x | sudo -E bash -
sudo apt-get install -y nodejs
node --version # Should show v26.x.x
Install openclaw.ai
Run the official one-line installer:
curl -fsSL https://openclaw.ai/install.sh | bash
Run Onboarding
Launch the interactive onboarding wizard. The --install-daemon flag automatically configures openclaw.ai to run as a background service:
openclaw onboard --install-daemon
The wizard will walk you through:
- Authentication setup (API keys for your LLM provider)
- Gateway configuration (port, allowed origins)
- Optional channel setup (Slack, Discord, etc.)
Verify Installation
Confirm everything is running correctly:
# Check system configuration
openclaw doctor
# Verify the gateway is healthy
openclaw health
# Print the authenticated dashboard URL
openclaw dashboard --no-open
# On your local computer, forward the private Gateway port
ssh -N -L 18789:127.0.0.1:18789 root@your-linode-ip
# Then open http://127.0.0.1:18789
Configure Linode Cloud Firewall
Set up a Cloud Firewall for SSH while keeping the Gateway private:
- In Cloud Manager, go to Firewalls → Create Firewall
- Name it (e.g.,
openclaw-fw) and assign it to your Linode - Add the following Inbound Rules:
Label Protocol Ports Sources
SSH TCP 22 My IP
- Set the default Inbound Policy to Drop
- Click Save Changes
Keep the Gateway Private
Do not add a public rule for port 18789. Keep the default loopback bind and use the SSH tunnel from Step 6.
Keep Running with systemd
The --install-daemon flag from Step 5 already set up a systemd user service. To check its status:
# Check gateway status via openclaw CLI
openclaw gateway status
# Or check directly via systemd
systemctl --user status openclaw-gateway
# View live logs
journalctl --user -u openclaw-gateway -f
The service will automatically restart on failure and start on boot.
🔧 Troubleshooting
If node --version shows an older version, remove the system Node.js and reinstall:
sudo apt remove nodejs
curl -fsSL https://deb.nodesource.com/setup_26.x | sudo -E bash -
sudo apt-get install -y nodejs
Check the Gateway on the Linode, then restart the tunnel on your local computer:
# On the Linode
openclaw gateway status
ss -tlnp | grep 18789
# On your local computer
ssh -N -L 18789:127.0.0.1:18789 root@your-linode-ip
The Cloud Firewall only needs SSH from your IP; port 18789 stays private.
Initial setup can briefly use more CPU. If high usage persists, inspect Gateway logs and resize the instance through Linode Settings → Resize.
Ready to deploy? Get started with Linode →
Was this helpful?