Mayros on DigitalOcean
Goal
Run a persistent Mayros 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)
| Provider | Plan | Specs | Price/mo | Notes |
|---|---|---|---|---|
| Oracle Cloud | Always Free ARM | up to 4 OCPU, 24GB RAM | $0 | ARM, limited capacity / signup quirks |
| Hetzner | CX22 | 2 vCPU, 4GB RAM | €3.79 (~$4) | Cheapest paid option |
| DigitalOcean | Basic | 1 vCPU, 1GB RAM | $6 | Easy UI, good docs |
| Vultr | Cloud Compute | 1 vCPU, 1GB RAM | $6 | Many locations |
| Linode | Nanode | 1 vCPU, 1GB RAM | $5 | Now 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
- DigitalOcean account (signup with $200 free credit)
- SSH key pair (or willingness to use password auth)
- ~20 minutes
1) Create a Droplet
Use a clean base image (Ubuntu 24.04 LTS). Avoid third-party Marketplace 1-click images unless you have reviewed their startup scripts and firewall defaults.
- Log into DigitalOcean
- Click Create → Droplets
- 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
- Click Create Droplet
- Note the IP address
2) Connect via SSH
bashssh root@YOUR_DROPLET_IP
3) Install Mayros
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 Mayros curl -fsSL https://maryos.apilium.com/install.sh | bash # Verify mayros --version
4) Run Onboarding
bashmayros 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 mayros status # Check service systemctl --user status mayros-gateway.service # View logs journalctl --user -u mayros-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 mayros config set gateway.tailscale.mode serve mayros gateway restart
Open: https://<magicdns>/
Notes:
- Serve keeps the Gateway loopback-only and authenticates Control UI/WebSocket traffic via Tailscale identity headers (tokenless auth assumes trusted gateway host; HTTP APIs still require token/password).
- To require token/password instead, set
gateway.auth.allowTailscale: falseor usegateway.auth.mode: "password".
Option C: Tailnet bind (no Serve)
bashmayros config set gateway.bind tailnet mayros gateway restart
Open: http://<tailscale-ip>:18789 (token required).
7) Connect Your Channels
Telegram
bashmayros pairing list telegram mayros pairing approve telegram <CODE>
bashmayros 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:
Add swap (recommended)
bashfallocate -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.primaryto a smaller model
Monitor memory
bashfree -h htop
Persistence
All state lives in:
~/.mayros/— config, credentials, session data~/.mayros/workspace/— workspace (MAYROS.md, memory, etc.)
These survive reboots. Back them up periodically:
bashtar -czvf mayros-backup.tar.gz ~/.mayros ~/.mayros/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 get | Specs |
|---|---|
| 4 OCPUs | ARM Ampere A1 |
| 24GB RAM | More than enough |
| 200GB storage | Block volume |
| Forever free | No 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
bashmayros gateway status mayros doctor --non-interactive journalctl -u mayros --no-pager -n 50
Port already in use
bashlsof -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
- Hetzner guide — cheaper, more powerful
- Docker install — containerized setup
- Tailscale — secure remote access
- Configuration — full config reference