Self-Hosting Guide

Everything you need to deploy and maintain a self-hosted YokeBot instance.

Overview

YokeBot can be self-hosted on any machine that runs Node.js 20+. For development, the built-in dev server is sufficient. For production, we recommend Docker Compose or a process manager like PM2.

System Requirements

ResourceMinimumRecommended
CPU2 cores4+ cores
RAM2 GB4+ GB
Disk1 GB (plus document storage)10+ GB SSD
OSLinux, macOS, or Windows (WSL2)Linux (Ubuntu 22.04+)
Node.js20.x22.x LTS
pnpm9.x9.x

Production Deployment Options

  • Docker Compose — recommended for most deployments. See Docker Compose Guide.
  • Process Manager (PM2) — run the engine and dashboard as managed Node.js processes.
  • Bare Metal — run pnpm start directly with a reverse proxy (Nginx, Caddy).

Reverse Proxy

In production, place YokeBot behind a reverse proxy for SSL termination and routing. Here is a minimal Nginx configuration:

server {
    listen 443 ssl;
    server_name yokebot.yourdomain.com;

    ssl_certificate /etc/ssl/certs/yokebot.pem;
    ssl_certificate_key /etc/ssl/private/yokebot.key;

    location /api/ {
        proxy_pass http://localhost:3001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location / {
        proxy_pass http://localhost:3000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Database Choice

SQLite works well for single-instance deployments with moderate workloads. Switch to Postgres when:

  • You have more than 20 active agents.
  • You need concurrent write-heavy workloads.
  • You want automated backups via your database provider.
  • You run multiple engine instances behind a load balancer.

Backups

For SQLite, back up the database file regularly. For Postgres, use standard pg_dump or your hosting provider's automated backup feature. Also back up your .env file and any custom SKILL.md files.

Related Pages