Skip to main contentClaim $5 in free credit — one-time, per account. Claim $5 free
Krova CloudKrova Cloud

Self-host OpenClaw on a Cube

Run OpenClaw on a Krova Cube — your own open-source AI assistant that lives on your server and meets you in Discord, Telegram, WhatsApp and the chat apps you already use.

OpenClaw is an open-source personal AI assistant with about 390,000 stars on GitHub (verified 2026-09-13) that runs on your own machine and reaches you in the chat apps you already use — Discord, Telegram, WhatsApp, Slack, iMessage and others. A Cube is a good place to run it: you get root, real resources, and a server that is reachable 24/7 without leaving a laptop on. The source lives at github.com/openclaw/openclaw and is documented at docs.openclaw.ai.

The install is one command. The part worth reading carefully is Step 5 — the chat-app step is the one where most installs go silent, and the official docs for each channel are the shortest path through it.

Before you start

OpenClaw's installer provisions a supported Node.js runtime on the Cube, then writes its configuration and the local Gateway that bridges it to your chat apps. It needs roughly 1 GB of RAM for the assistant itself; the heavy resource is the LLM, which is a separate decision covered below.

  • A Cube of 2 vCPU, 4 GB RAM, 40 GB disk — about $0.0140/hour, roughly $0.34/day or $10/month if left running. Comfortable for the assistant plus a small local model.
  • If you want to run a capable local model (around 7B parameters), plan on 8 GB RAM and 8 GB of disk for the model weights alone, in addition to the assistant. The Cube size for that is 4 vCPU, 16 GB RAM, 100 GB disk.
  • An SSH key pair, as with any Cube.
  • An API key from an AI provider — or a local Ollama install if you would rather skip the paid API.

Step 1 — Create the Cube

Create a Cube with the Ubuntu 24.04 image. OpenClaw supports macOS, Linux and Windows on the desktop, and Linux is the only server-side path. Ubuntu 24.04 is the image Krova validates against.

Size it at 2 vCPU / 4 GB / 40 GB if you are pointing OpenClaw at a paid AI provider, or 4 vCPU / 16 GB / 100 GB if you want to run a local 7B model through Ollama on the same Cube.

Step 2 — Connect over SSH

ssh ubuntu@<cube-host> -p <port>

Step 3 — Run the installer

OpenClaw publishes a single install script. Fetch it, look at it, then run it — the same habit applies to any remote script:

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

The installer provisions a Node.js runtime when needed, then runs openclaw onboard at the end. That step asks a few setup questions — which chat platform you want to connect first, the workspace name, and the AI provider.

Step 4 — Pick the AI provider

When openclaw onboard asks for the AI provider, you have two reasonable choices on a Cube.

Paid API (the simplest)

Point OpenClaw at OpenAI, Anthropic, or any other provider. Paste the API key at the prompt and OpenClaw routes every chat through that provider. Billing is on the provider, not Krova.

Local Ollama on the same Cube (no per-message bill)

If you would rather not pay per message, install Ollama on the same Cube and point OpenClaw at it. Ollama runs an OpenAI-compatible API on http://localhost:11434, and OpenClaw will accept the URL the same way it accepts any other provider:

curl -fsSL https://ollama.com/install.sh | sh

Then pull a model. llama3.1:8b is a good first choice on 16 GB of RAM:

ollama pull llama3.1:8b

When OpenClaw asks for the provider URL, give it http://localhost:11434 and the model name you just pulled. Everything from there is local — your messages, the model weights, and the assistant's memory never leave the Cube.

Step 5 — Connect a chat app

Onboarding finishes by asking which channel you want to connect first. Pick one and follow the platform-specific setup — each is a few steps: create a bot or app on the chat platform, paste its token into OpenClaw, restart the Gateway, send a test message. The official docs walk through each:

  • Telegram setup — the fastest path: create a bot with @BotFather, paste the HTTP API token, restart the Gateway.
  • Discord setup — set up a guild workspace first, then create a Discord application and bot, enable privileged intents, copy the token, and invite the bot to your server.
  • WhatsApp — pair via QR code or setup code through the pairing flow.
  • Slack, iMessage, Google Chat, Signal — all listed under docs.openclaw.ai/channels.

More channels can be added later from the same menu. The most common reason a chat app stays silent after a token paste is that the Gateway is not actually running — the official troubleshooting page is at docs.openclaw.ai/channels/troubleshooting.

Step 6 — Give the Gateway a real address (optional)

OpenClaw's Gateway is the local control plane that bridges your chat apps to the assistant. You reach it on the Cube directly for now, through an SSH tunnel:

ssh -L 3000:localhost:3000 ubuntu@<cube-host> -p <port>

If you would rather reach the Gateway at a real address, point a domain at the Cube and map it to the Gateway's port through the Cube's Networking tab. Krova issues and renews the certificate — leave This app serves HTTPS itself unchecked, the same way the Dokploy guide explains.

What it costs

The 2 vCPU / 4 GB / 40 GB Cube described here bills at about $0.0140/hour — roughly $0.34/day, or $10/month if left running. Usage is metered by the minute.

On top of that, either an AI provider bill (paid per message) or the local Ollama path. Ollama is free to run; the only cost is the larger Cube to fit the model weights in RAM.

If you power the Cube off, OpenClaw stops responding — there is no inbox without the assistant running. You are billed only for storage while it is stopped, which is the cheaper option if you do not need it around the clock.

Cleaning up

Deleting the Cube removes OpenClaw, every chat-app bridge, and any local model weights along with the disk. If the assistant's memory or any conversation history matters, snapshot the Cube first.

Next steps

  • Self-host Hermes Agent on a Cube — the same shape, with persistent memory and self-created skills.
  • Custom domains — required if you want the Gateway reachable at your own address.
  • Cubes — resizing, snapshots, and how billing works when a Cube is stopped.