Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › Ansible

How to Install OpenClaw on a VPS (Debian or Ubuntu)

By Freedom251 Team · · 12 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

The shortest supported path is a Debian or Ubuntu VPS with sudo access: run OpenClaw’s installer, complete provider and channel onboarding, install the managed Gateway service, and verify it with three commands. OpenClaw currently supports Node.js 24.16 or later or 26.1 or later, with Node 26 recommended. Keep the Gateway bound to loopback and reach its Control UI through an SSH tunnel or Tailscale rather than exposing it directly to the internet. For a repeatable, hardened build, use the official Ansible installer instead; it adds UFW, Tailscale, Docker-based sandbox support, and systemd hardening while leaving the Gateway host-based.

What does OpenClaw need on a VPS?

OpenClaw is a Gateway service that runs on your server, stores its configuration and workspace there, and connects your chosen model provider and messaging channels. The official server documentation describes the arrangement plainly: “The Gateway runs on the VPS and owns state + workspace.” Treat that VPS as the deployment’s source of truth and protect it like a production host.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

As an Amazon Associate I earn from qualifying purchases.

Operating system and access

  • Use a current Debian or Ubuntu VPS with Internet access for package and runtime installation.
  • Have root or sudo privileges. The direct installer can prepare the runtime; the Ansible path performs broader host configuration.
  • For the documented Ansible route, use Debian 11 or newer or Ubuntu 20.04 or newer.
  • Have a way to administer SSH securely. If you intend to make administration tailnet-only, establish and test Tailscale access before restricting public SSH.

Node.js versions

OpenClaw’s current installation documentation lists Node.js 24.16 or newer and 26.1 or newer as supported ranges, and recommends Node 26. Check the version on an existing host before installing:

node --version

If the host has no suitable runtime, the official installer can install Node when needed. Users who already manage runtimes may install OpenClaw with npm, pnpm, or Bun instead, but those paths leave runtime maintenance to you.

What is not a prerequisite

Docker is not automatically required for the Gateway. In the official Ansible design, OpenClaw runs on the host; Docker CE and Compose V2 are installed for the optional agent-sandbox backend. Installing Docker solely because you are running a VPS Gateway adds complexity without providing that design’s intended isolation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which OpenClaw VPS installation method should you choose?

For one personal server, the direct installer is the fastest route. Choose Ansible when you need repeatable provisioning, baseline firewall rules, private networking, and a hardened service that can be recreated consistently.

Method Setup effort Gateway location Remote-access and firewall work Sandbox isolation Update and rollback control Best fit
Official installer Lowest; one command followed by onboarding Host-based You configure SSH tunneling or Tailscale and host firewall policy Not added by the installer You control package and host changes directly One-off personal VPS
npm, pnpm, or Bun Moderate if you already manage Node Host-based You configure all network controls Not stated Depends on your runtime and package-management process Administrators with an established Node workflow
Docker or source-based deployment Varies by your container or build process Depends on your design You configure exposure and authentication Depends on the container design Depends on image, source, and rollback practices Specialized environments
Official Ansible installer Higher initial setup, then repeatable Host-based Gateway; Docker for optional sandboxing Automates UFW and Tailscale-oriented hardening; default design leaves only SSH public Docker isolation through the DOCKER-USER chain plus systemd restrictions Infrastructure changes are expressed and rerun through Ansible Team, repeatable, or security-conscious deployment

How do I install OpenClaw with the direct VPS installer?

Use this path when you want the fewest moving parts on a single Debian or Ubuntu server. The installer detects the operating system, installs Node when necessary, installs OpenClaw, and starts onboarding.

1. Prepare the host and an administrative session

Connect over SSH with an account that can use sudo. Apply your normal operating-system updates and confirm that the host has outbound Internet access. Do not open the Gateway port to the public internet while you are still configuring it.

2. Run the official installer

Execute the documented installer command:

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

This command downloads and runs the installer at openclaw.ai/install.sh. Review your organization’s policy for piping a remote script to a shell; if your process requires auditing, download the script first, inspect it, and then run the approved local copy. The installer’s normal behavior is to detect the operating system, install a suitable Node runtime if needed, install OpenClaw, and launch onboarding.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Separate installation from onboarding when required

If you are building an image, automating provisioning, or want to postpone credentials, use the installer’s documented no-onboard flag. The exact flag is supplied by the OpenClaw installer documentation; use the current spelling shown there rather than guessing a replacement. After installation, invoke onboarding manually when the host is ready for provider and channel configuration.

4. Complete onboarding

Onboarding connects OpenClaw to the model provider and channels you intend to use. Keep credentials on the VPS rather than placing them in shell history or sharing them in chat transcripts. Complete provider authentication first, then add each channel and verify that its account can send and receive as expected.

5. Install the managed Linux service

Choose one of the documented service-install commands:

openclaw onboard --install-daemon

or:

openclaw gateway install

On Linux and WSL2, OpenClaw uses a systemd user service for managed startup. Installing the service makes the Gateway start under the managed user context instead of depending on an SSH terminal remaining open.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

6. Verify the installation

Run all three checks from the account that owns the OpenClaw configuration:

openclaw --version
openclaw doctor
openclaw gateway status
  • openclaw --version confirms that the CLI is installed and callable.
  • openclaw doctor identifies configuration and environment problems.
  • openclaw gateway status reports whether the Gateway service is running and reachable through its configured local endpoint.

Do not treat a successful version output as proof that channels work. A healthy deployment also needs a clean diagnostic result, a running Gateway, valid provider credentials, and a tested channel login.

How do I keep the OpenClaw Gateway private?

Leave the Gateway on loopback by default and use an authenticated path into the VPS. The two supported access patterns are an SSH tunnel for occasional administration or Tailscale for a private, persistent network.

Loopback binding: the safest default

A loopback-bound Gateway listens only on the VPS itself. Public interfaces cannot connect directly, which removes the most common accidental exposure. Open the Control UI through a tunnel from your workstation instead of changing the bind address merely to make the UI reachable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

SSH tunnel for temporary access

From your local computer, create an SSH local-forward to the Gateway’s loopback address and port configured on the VPS:

ssh -N -L <local-port>:127.0.0.1:<gateway-port> <user>@<vps-address>

Keep that SSH session open while using the UI, then browse to the local port. Replace the angle-bracket values with your actual local port, Gateway port, SSH user, and VPS address; do not expose the Gateway port in the VPS firewall just to support this tunnel.

Tailscale for private, ongoing access

Tailscale places the VPS and your administrator devices on a private tailnet. Restrict the Gateway to the tailnet interface only if you need direct private-network access. Install and verify Tailscale before disabling or restricting public SSH, and keep a second SSH session open while changing access rules so a firewall mistake does not lock you out.

Authentication when binding beyond loopback

If you bind the Gateway to a LAN or tailnet interface, configure the required shared Gateway token or password. A trusted reverse proxy can provide authentication instead, but do not assume that network reachability is authentication. Anyone who can reach an unauthenticated Control UI may be able to interact with your workspace and connected channels.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Harden SSH separately

Gateway privacy does not harden the VPS itself. Apply your normal SSH controls independently: use key-based authentication, limit administrative users, keep an emergency session during firewall changes, and verify that your private access path works before removing public access. The official VPS guidance specifically recommends installing Tailscale first when you plan to administer through the tailnet.

How do I use the hardened Ansible installation?

Ansible is the better choice when you need a repeatable server build or want the security baseline applied as part of provisioning. The official quick start installs the networking, firewall, runtime, container, and service components in one workflow.

1. Launch the official installer

curl -fsSL https://raw.githubusercontent.com/openclaw/openclaw-ansible/main/install.sh | bash

The script is published at the OpenClaw Ansible installer. Run it from a supported Debian 11-or-newer or Ubuntu 20.04-or-newer host with Internet access and the privileges required to change system services, firewall rules, and packages.

2. Understand what the playbook configures

The documented deployment installs:

  • Tailscale for private network access.
  • UFW for host firewall policy.
  • Docker CE with Compose V2 for the optional agent-sandbox backend.
  • Node.js and pnpm.
  • Host-based OpenClaw.
  • A hardened systemd service running as an unprivileged openclaw user.

Its defense layers are deliberately separate: UFW limits host exposure, Tailscale provides private administration, Docker isolates optional sandbox workloads, the Docker DOCKER-USER chain constrains container traffic, and systemd restrictions reduce the service’s privileges. The default design is intended to leave only SSH publicly reachable.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Onboard as the OpenClaw account

After the Ansible run, switch to the service account before configuring channels:

sudo -i -u openclaw
openclaw channels login --channel <name>

Replace <name> with the channel identifier used by your deployment. Keeping onboarding under the same account that owns the service avoids a split configuration in which credentials are written to an administrator’s home directory but the daemon runs as openclaw.

4. Inspect the service and live logs

sudo systemctl status openclaw
sudo journalctl -u openclaw -f

The first command shows whether the hardened system service is active. The second follows its journal so you can see startup failures, authentication errors, or channel connection events as they occur.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How do I tune OpenClaw for a small or slow VPS?

Tuning is optional. Start with the supported defaults, then apply these settings only when a low-power or slow virtual machine shows compile or startup delays.

Use a persistent Node compile cache

NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache

Pointing Node’s compile cache at a persistent SSD-backed path can reduce repeated compilation work. Ensure the service account can write to the directory and that the path has enough space.

Disable automatic respawn when diagnosing constrained hosts

OPENCLAW_NO_RESPAWN=1

This setting prevents automatic respawn behavior that can obscure the original failure on a resource-constrained machine. Use it as a troubleshooting or host-specific tuning choice, not as a universal requirement.

Review systemd startup behavior

The VPS guidance’s optional systemd checklist includes a 90-second startup timeout, the managed unit’s restart policy, and SSD-backed state and cache paths. Apply those values through the service configuration appropriate to your installation, then reload and restart the managed service using your normal systemd procedure. Do not copy a unit override blindly between direct and Ansible deployments; the service account and unit names differ.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What should I back up and how should I plan updates?

Back up the VPS state and workspace because the server holds OpenClaw’s configuration, credentials, channel state, and working data. A VPS snapshot is useful for disaster recovery, but it should be combined with an application-aware backup of the OpenClaw data paths and a record of how the service was provisioned.

Before an upgrade

  • Record the current output of openclaw --version and openclaw gateway status.
  • Back up the OpenClaw state and workspace while the service is in a known condition.
  • Capture your provider and channel configuration without exposing secrets in tickets or shell history.
  • For Ansible, preserve the playbook revision and host variables used to build the machine.

After an upgrade

Run openclaw doctor, check Gateway status, and exercise at least one channel end to end. If the new build fails, restore the VPS snapshot or application backup according to your recovery plan rather than repeatedly changing a damaged live configuration.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What can go wrong during installation?

The installer cannot find a supported Node version

Confirm the runtime with node --version. OpenClaw requires Node 24.16 or later or 26.1 or later, and Node 26 is recommended. If multiple Node installations exist, ensure the account running onboarding and the account running the service resolve the same binary.

Onboarding succeeds, but the service is not running

Run openclaw gateway status and openclaw doctor as the configuration owner. Check that you installed the managed service with openclaw onboard --install-daemon or openclaw gateway install, and confirm that you are not mixing a user-service installation with a different system account.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Control UI works locally but not remotely

That is expected when the Gateway is bound to loopback. Use an SSH tunnel or Tailscale rather than opening the Gateway publicly. If you intentionally bind to a LAN or tailnet interface, configure the shared token or password, verify firewall scope, and confirm that the listening address is the one you intended.

SSH access breaks after firewall changes

Keep a second SSH session open while changing UFW, Tailscale, or public SSH rules. If the second session cannot connect, immediately revert the last network change from the still-open session. Do not close every existing session until private access has been tested end to end.

Docker is running but the Gateway still behaves like a host service

That is normal in the Ansible design. Docker supports the optional agent-sandbox backend; the Gateway itself remains host-based and is managed by systemd. Investigate the OpenClaw service and its journal rather than assuming the container runtime should contain the Gateway.

Startup is very slow on a small VM

Check available CPU, memory, disk space, and storage latency, then consider the compile-cache and no-respawn settings. The optional 90-second systemd timeout is intended for slow hosts; it does not fix invalid credentials, broken permissions, or a missing runtime.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which deployment is right for your VPS?

Use the direct installer when speed and simplicity matter more than centralized provisioning. Use Ansible when you are deploying several hosts, need a documented rebuild, or want firewall, private networking, sandbox support, and service hardening applied together.

  • Choose direct installation for a single personal server, an operator comfortable managing SSH and firewall rules manually, and a minimal host footprint.
  • Choose Ansible for repeatable team operations, private tailnet administration, a default deny-style firewall posture, and an unprivileged hardened service.
  • Choose a manually managed package runtime only when your organization already standardizes Node, pnpm, npm, or Bun and can own the resulting update and rollback process.
  • Choose Docker or source workflows only when you have a specific isolation, build, or release requirement that the host-based paths do not meet.

OpenClaw VPS launch checklist

  1. Provision Debian or Ubuntu with sudo access and outbound Internet connectivity.
  2. Confirm Node 24.16+ or 26.1+, preferably Node 26, or let the official installer provide it.
  3. Choose the direct installer for a one-off host or Ansible for repeatable hardening.
  4. Complete model-provider and channel onboarding under the account that will run the Gateway.
  5. Install the managed service with openclaw onboard --install-daemon or openclaw gateway install.
  6. Run openclaw --version, openclaw doctor, and openclaw gateway status.
  7. Keep the Gateway on loopback; use an SSH tunnel or Tailscale for remote UI access.
  8. If binding to a LAN or tailnet interface, configure the required Gateway token or password and verify firewall scope.
  9. Back up state and workspace, then document the VPS and service account used by the deployment.
  10. On small VMs, apply compile-cache, no-respawn, timeout, restart-policy, or SSD-path tuning only after observing a real bottleneck.

Frequently Asked Questions

Can I install OpenClaw on a VPS without Docker?

Yes. The direct installer runs OpenClaw host-based, and the official Ansible design also keeps the Gateway on the host. Docker is installed by Ansible for the optional agent-sandbox backend, not as a requirement for the Gateway itself.

How do I access the OpenClaw dashboard from my laptop?

Leave the Gateway on loopback and create an SSH local-forward to its configured port, or place the VPS and your laptop on the same Tailscale tailnet. Avoid opening the Gateway port publicly just to reach the Control UI.

Which Linux user should run OpenClaw after an Ansible install?

Use the dedicated openclaw account created by the hardened deployment. Run channel login as that user so its credentials and workspace match the systemd service account.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What should I check before exposing the Gateway on a private network?

Confirm the bind address, firewall rule, and authentication setting together. A LAN or tailnet bind still requires the shared Gateway token or password unless a trusted proxy is providing authentication.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

AnsibleDebianLinuxNode.jsOpenClawServer SecuritysystemdTailscaleUbuntuVPS

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.