Skip to content

# OpenSoul on DigitalOcean

# Goal

Run a persistent OpenSoul Gateway on DigitalOcean for $6/month (or $4/mo with reserved pricing).

If you want a $0/month option and don’t mind ARM + provider-specific setup, see the Oracle Cloud guide.

# Cost Comparison (2026)

ProviderPlanSpecsPrice/moNotes
Oracle CloudAlways Free ARMup to 4 OCPU, 24GB RAM$0ARM, limited capacity / signup quirks
HetznerCX222 vCPU, 4GB RAM€3.79 (~$4)Cheapest paid option
DigitalOceanBasic1 vCPU, 1GB RAM$6Easy UI, good docs
VultrCloud Compute1 vCPU, 1GB RAM$6Many locations
LinodeNanode1 vCPU, 1GB RAM$5Now part of Akamai

Picking a provider:

  • DigitalOcean: simplest UX + predictable setup (this guide)
  • Hetzner: good price/perf (see Hetzner guide)
  • Oracle Cloud: can be $0/month, but is more finicky and ARM-only (see Oracle guide)

# Prerequisites

# 1) Create a Droplet

  1. Log into DigitalOcean
  2. Click Create → Droplets
  3. Choose:
    • Region: Closest to you (or your users)
    • Image: Ubuntu 24.04 LTS
    • Size: Basic → Regular → $6/mo (1 vCPU, 1GB RAM, 25GB SSD)
    • Authentication: SSH key (recommended) or password
  4. Click Create Droplet
  5. Note the IP address

# 2) Connect via SSH

bash
ssh root@YOUR_DROPLET_IP

# 3) Install OpenSoul

bash
# Update system
apt update && apt upgrade -y

# Install Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs

# Install OpenSoul
curl -fsSL https://opensoul.ai/install.sh | bash

# Verify
opensoul --version

# 4) Run Onboarding

bash
opensoul onboard --install-daemon

The wizard will walk you through:

  • Model auth (API keys or OAuth)
  • Channel setup (Telegram, WhatsApp, Discord, etc.)
  • Gateway token (auto-generated)
  • Daemon installation (systemd)

# 5) Verify the Gateway

bash
# Check status
opensoul status

# Check service
systemctl --user status opensoul-gateway.service

# View logs
journalctl --user -u opensoul-gateway.service -f

# 6) Access the Dashboard

The gateway binds to loopback by default. To access the Control UI:

Option A: SSH Tunnel (recommended)

bash
# From your local machine
ssh -L 18789:localhost:18789 root@YOUR_DROPLET_IP

# Then open: http://localhost:18789

Option B: Tailscale Serve (HTTPS, loopback-only)

bash
# On the droplet
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up

# Configure Gateway to use Tailscale Serve
opensoul config set gateway.tailscale.mode serve
opensoul gateway restart

Open: https://<magicdns>/

Notes:

  • Serve keeps the Gateway loopback-only and authenticates via Tailscale identity headers.
  • To require token/password instead, set gateway.auth.allowTailscale: false or use gateway.auth.mode: "password".

Option C: Tailnet bind (no Serve)

bash
opensoul config set gateway.bind tailnet
opensoul gateway restart

Open: http://<tailscale-ip>:18789 (token required).

# 7) Connect Your Channels

# Telegram

bash
opensoul pairing list telegram
opensoul pairing approve telegram <CODE>

# WhatsApp

bash
opensoul channels login whatsapp
# Scan QR code

See Channels for other providers.


# Optimizations for 1GB RAM

The $6 droplet only has 1GB RAM. To keep things running smoothly:

bash
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

# Use a lighter model

If you're hitting OOMs, consider:

  • Using API-based models (Claude, GPT) instead of local models
  • Setting agents.defaults.model.primary to a smaller model

# Monitor memory

bash
free -h
htop

# Persistence

All state lives in:

  • ~/.opensoul/ — config, credentials, session data
  • ~/.opensoul/workspace/ — workspace (SOUL.md, memory, etc.)

These survive reboots. Back them up periodically:

bash
tar -czvf opensoul-backup.tar.gz ~/.opensoul ~/.opensoul/workspace

# Oracle Cloud Free Alternative

Oracle Cloud offers Always Free ARM instances that are significantly more powerful than any paid option here — for $0/month.

What you getSpecs
4 OCPUsARM Ampere A1
24GB RAMMore than enough
200GB storageBlock volume
Forever freeNo credit card charges

Caveats:

  • Signup can be finicky (retry if it fails)
  • ARM architecture — most things work, but some binaries need ARM builds

For the full setup guide, see Oracle Cloud. For signup tips and troubleshooting the enrollment process, see this community guide.


# Troubleshooting

# Gateway won't start

bash
opensoul gateway status
opensoul doctor --non-interactive
journalctl -u opensoul --no-pager -n 50

# Port already in use

bash
lsof -i :18789
kill <PID>

# Out of memory

bash
# Check memory
free -h

# Add more swap
# Or upgrade to $12/mo droplet (2GB RAM)

# See Also

Released under the MIT License.