On this page

An always-on assistant needs more than a server. Start with a fresh OpenClaw Droplet, protect the gateway, prove one private workflow, then grow from there.

Choose a narrow first job

OpenClaw can connect an assistant to messaging channels, tools, and model providers. That is useful precisely because it can act for a long time. It also means a casual first deployment can expose more access than you intended.

Start with one private job that is easy to observe, such as answering your own Telegram messages or summarizing a small set of approved documents. Do not begin by giving the assistant access to a production repository, customer data, or a shared channel. A working private path tells you more than a complicated demo.

  • One administrator account and one SSH key you control.
  • One model-provider account with a spend limit or alert you understand.
  • One messaging account for your own test messages.
  • A written decision about which tools, network access, and files the assistant may use.
  • A cost boundary: the Droplet and your model-provider usage are separate ongoing costs, so set an alert or limit before the first real task.

Size and create a fresh OpenClaw Droplet

DigitalOcean publishes a dedicated OpenClaw 1-Click image for a fresh Ubuntu 24.04 Droplet. Its current sizing guide starts personal use at 4 GB RAM and 2 vCPUs, then increases capacity for more people and channels. Browser automation and multiple sandbox instances can need more resources, so treat the table as a starting point rather than a promise.

Create a new Droplet from that Marketplace image instead of running an installation command on an existing application server. That separation makes it easier to keep the assistant's configuration, logs, and tool permissions away from the systems it may eventually help with.

  1. Choose the OpenClaw 1-Click image and a region near the people or services the assistant must reach.
  2. For a personal first deployment, start with the published 4 GB RAM and 2 vCPU recommendation unless your planned workload clearly needs more.
  3. Attach an SSH key. Avoid password SSH for this server.
  4. Use a Cloud Firewall with SSH restricted to your administrator address or VPN range. Do not add broad inbound rules merely to make a dashboard work.

Self-host a private Stoat chat server

Source check, 8 October 2026: the Marketplace page recommends 4 GB RAM and 2 vCPUs for personal use and describes image-level protections. Confirm them on the actual image rather than treating them as a security test. Review OpenClaw security guidance before granting tools access. Companion checks use 625efb3958d1.

Prove the server before connecting a channel

The Marketplace image supplies an openclaw system service and a Caddy service. DigitalOcean notes that the control plane uses gateway authentication, firewall-level rate limiting, non-root execution, container sandboxing, and private DM pairing. Those defaults help, but they are not a substitute for checking what actually started on your Droplet.

The companion repository performs two read-only checks. It does not install software, alter execution policy, open ports, or send any token. Review the remote output before you make a configuration change. A healthy service check only establishes the server baseline; dashboard pairing and one private message are separate acceptance checks.

Shell command
git clone https://github.com/TylorMayfield/openclaw-droplet-safety-checks.git
git -C openclaw-droplet-safety-checks checkout --detach 625efb3958d1c1e5012e96bb8c6615bd386c0c25
test "$(git -C openclaw-droplet-safety-checks rev-parse HEAD)" = 625efb3958d1c1e5012e96bb8c6615bd386c0c25
cd openclaw-droplet-safety-checks
chmod 700 scripts/preflight.sh scripts/check-service.sh
OPENCLAW_SSH_TARGET=root@YOUR_DROPLET_IP ./scripts/preflight.sh
OPENCLAW_SSH_TARGET=root@YOUR_DROPLET_IP ./scripts/check-service.sh

Pair the dashboard and one private channel

Connect with SSH after the Droplet has finished provisioning. The Marketplace setup flow asks you to choose a model provider and enter that provider's API key. Treat the key and the generated gateway token as secrets: do not commit them, paste them into an issue, or put them in a screenshot.

Open the dashboard URL shown by the welcome flow, then complete its device pairing from a device you control. Add one channel after the dashboard is connected. Test it with your own account before allowing another person, group, or bot to reach the assistant. If the channel supports an allow list, populate it before treating the assistant as private.

For this first channel use Telegram direct messages. In Telegram, open the verified @BotFather account, run /newbot and save the token privately. In OpenClaw’s channel configuration, set Telegram enabled, store the token in the token field and set dmPolicy to pairing. Keep groups disabled for this exercise. Restart the Marketplace openclaw service after saving.

Send a message from your own Telegram account to create the pending request before running the commands below.

Find the service context rather than guessing that its account is named openclaw. The Marketplace setup uses /opt/openclaw-cli.sh for CLI operations. Inspect the configured User and main-process owner below; an empty User field is not evidence of a non-root process. A wrapper can change identity, so inspect that local wrapper privately if these disagree. Use the supplied wrapper for pairing only after its help works. If it is missing, stop and follow the installed image's documented environment; sudo -u alone may select the wrong HOME, state directory or credentials. Never print /opt/openclaw.env into shared logs.

Shell command
# Read-only: identify the configured account and the service's main process.
sudo systemctl show openclaw.service --property=User,Group,WorkingDirectory,FragmentPath
pid=$(sudo systemctl show openclaw.service --property=MainPID --value)
if [ "$pid" -gt 0 ]; then ps -o user= -p "$pid"; fi
# Use the Marketplace wrapper from its documented setup, not an unrelated shell profile.
sudo /opt/openclaw-cli.sh --help
sudo /opt/openclaw-cli.sh pairing list telegram
Shell command
# Only after checking the pending request belongs to your own account:
sudo /opt/openclaw-cli.sh pairing approve telegram YOUR_PAIRING_CODE

Pairing semantics are documented in Telegram setup.

After approving only your own pending request, send “Reply with the word ready.” Expect a reply only after approval.

From a second unapproved Telegram account, send the same request. It may receive pairing instructions, but must not get a model answer or trigger a tool. Leave that request unapproved. If it gets an answer, stop the service and check the active account’s dmPolicy and allowlist before continuing.

  1. Verify the dashboard is paired with your device and does not show a connection error.
  2. Send one harmless prompt from your own messaging account.
  3. Confirm that an unpaired or unapproved account cannot invoke the assistant.
  4. Record which model provider, channel, and tool permissions are active so a later change is visible.

Telegram setup and pairing

Expand tool access deliberately

A tool-capable assistant can make network calls, run commands, and read files depending on its configuration. That is not a setting to copy from an example without a threat model. Keep the default sandboxing and non-root boundary in place, then grant the smallest capability needed for the first job.

If you decide a skill needs broader execution or network access, put that work on a dedicated Droplet rather than a server that holds your app, source checkout, credentials, or customer data. Test with a disposable account or folder. Review the tool's inputs and outputs before connecting it to anything valuable.

  • Do not place provider keys or gateway tokens in a Git repository.
  • Do not expose a management dashboard to a broad audience without device pairing and authentication.
  • Do not assume an assistant sandbox makes every third-party skill safe.
  • Remove a channel integration if you no longer review its access path.

Back up before updating, then recheck

OpenClaw's documentation warns that raw copies of a live database can be incomplete or corrupt. Use its backup tooling before an update, reset, uninstall, or machine move, and protect the resulting archive because it can contain configuration and account state.

After an update, repeat the service check, dashboard pairing check, and one harmless channel message. A version that installs successfully is not proof that the gateway, provider authentication, and channel integration still work together.

Run backup commands in that same verified service context. The backup guide supports backup create --output … --verify; verification checks archive structure and payload, not that an isolated assistant can be restored. Use the wrapper's backup create --help first, protect the output directory, copy the archive off the Droplet, and rehearse restoration with channel delivery blocked. Do not assume a backup made from root's unrelated HOME contains the running assistant's state.

Replace /ABSOLUTE/PROTECTED/BACKUP_DIR with an existing private directory writable by the verified service context. Do not run the backup until you have checked its owner and permissions.

Shell command
sudo /opt/openclaw-cli.sh backup create --help
sudo /opt/openclaw-cli.sh backup create --output /ABSOLUTE/PROTECTED/BACKUP_DIR --verify

Frequently asked questions

Can I install the OpenClaw Marketplace image on an existing Droplet?

No. Use the Marketplace image for a fresh Droplet. Keeping the assistant on its own server reduces the chance that its setup or tool access affects an existing application.

What size should I start with for a personal OpenClaw assistant?

DigitalOcean's current OpenClaw page recommends 4 GB RAM and 2 vCPUs for one to five personal users. Increase capacity only when your channels, sandbox instances, browser automation, or observed resource use justify it.

Should I enable every tool capability so the assistant is useful?

No. Start with the least access that completes one private task. Add capabilities only after you understand their data and execution boundary, and prefer a dedicated Droplet for broader tool access.

What is the smallest useful first success test?

Pair the dashboard from your own device, connect one private channel, send one harmless message from your own account, and confirm an unpaired account cannot invoke the assistant. Record the active provider, channel, and tool permissions before you add anything else.