Install OpenClaw on Linux

Complete installation guide for Ubuntu, Debian, Fedora, Arch & more

Prerequisites

System Requirements

  • Any modern Linux distro (examples: Ubuntu/Debian/Fedora/Arch)
  • x86_64 or ARM64 architecture
  • 500MB free disk space

Software Requirements

  • Node.js 22+ (Node 22 LTS recommended)
  • Terminal/shell access
  • sudo privileges

Installation by Distribution

Ubuntu / Debian

Update and install Node.js:

sudo apt update
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs

Install OpenClaw:

npm install -g openclaw@latest
openclaw onboard --install-daemon
openclaw dashboard
# Or open: http://127.0.0.1:18789/
F

Fedora

Install Node.js and OpenClaw:

# Install Node.js 22+ using your distro's method, then:
npm install -g openclaw@latest
openclaw onboard --install-daemon
openclaw dashboard
A

Arch Linux

Install Node.js and OpenClaw:

sudo pacman -S nodejs npm
npm install -g openclaw@latest
openclaw onboard --install-daemon
openclaw dashboard

Run as Systemd Service

Recommended: let OpenClaw install a per-user systemd service for you:

openclaw onboard --install-daemon

Advanced (manual): create a systemd user unit at ~/.config/systemd/user/openclaw-gateway.service:

[Unit]
Description=OpenClaw Gateway
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/bin/env openclaw gateway --port 18789
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

Enable and start: systemctl --user enable --now openclaw-gateway.service

For a user service to survive logout/idle on servers, enable lingering: sudo loginctl enable-linger $USER (the wizard may do this for you).

Troubleshooting

Permission Errors

Fix npm permissions:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Firewall Issues

If you bind the Gateway to a network interface, allow port 18789:

sudo ufw allow 18789/tcp

Next Steps

Configure your AI assistant and start using OpenClaw