Deploy openclaw.ai on Linode

Beginner ⏱ 25 minutes 📅 Updated Aug 2026

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.

Special Offer

Check current Linode offers

Review current Akamai Cloud pricing and new-customer promotions.

Get Started →

📋 Prerequisites

1

Create & Connect to Your Linode

Log in to the Linode Cloud Manager and create a new Linode:

  1. Click CreateLinode
  2. Under Choose a Distribution, select Ubuntu 24.04 LTS or a newer supported LTS release
  3. Select your preferred Region (pick the datacenter closest to you)
  4. Under Linode Plan, choose a current Shared CPU plan with at least 2 GB RAM
  5. Set a strong Root Password
  6. Under SSH Keys, add your public key (recommended for security)
  7. Click Create Linode

Wait for the status to show Running (usually 1–2 minutes), then connect:

bash
# Replace with your Linode's IP from the Cloud Manager
ssh root@your-linode-ip
2

System Update & Dependencies

Update the package index and upgrade all installed packages:

bash
sudo apt update && sudo apt upgrade -y
3

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:

bash
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
4

Install openclaw.ai

Run the official one-line installer:

bash
curl -fsSL https://openclaw.ai/install.sh | bash
5

Run Onboarding

Launch the interactive onboarding wizard. The --install-daemon flag automatically configures openclaw.ai to run as a background service:

bash
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.)
6

Verify Installation

Confirm everything is running correctly:

bash
# 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
7

Configure Linode Cloud Firewall

Set up a Cloud Firewall for SSH while keeping the Gateway private:

  1. In Cloud Manager, go to FirewallsCreate Firewall
  2. Name it (e.g., openclaw-fw) and assign it to your Linode
  3. Add the following Inbound Rules:
text
Label              Protocol   Ports    Sources
SSH                TCP        22       My IP
  1. Set the default Inbound Policy to Drop
  2. 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.

8

Keep Running with systemd

The --install-daemon flag from Step 5 already set up a systemd user service. To check its status:

bash
# 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:

bash
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:

bash
# 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 SettingsResize.

Ready to deploy? Get started with Linode →