Sinatra Docs
Self-hosting

Prerequisites

What you need before starting the self-host setup.

Software

  • Node 22 or newernode --version should print v22.x or higher.
  • pnpm 10corepack enable && corepack prepare pnpm@10 --activate (Node ships Corepack since 16.13).
  • Docker with Docker Compose v2 — docker compose version should succeed.
  • Git.

Accounts and access

  • A GitHub organization where you can create a GitHub App and install it on the repos Sinatra should work in. A personal GitHub account works for evaluation.
  • A Linear workspace with admin access — you'll create an OAuth app under workspace settings.
  • An LLM account with API access — Anthropic (Claude) for direct Claude access, or OpenRouter for access to OpenAI (GPT-5, GPT-4o), Google (Gemini), Meta (Llama), and more. You'll need at least one. See LLM keys.
  • (Optional) A Daytona account if you want managed cloud sandboxes. Free for evaluation. Skip if you'll use the local sandbox provider.

Network

  • A way to expose your API publicly so Linear and GitHub can deliver webhooks to it. Options, easiest → most production-ready:

    • cloudflared tunnel --url http://localhost:8080 — free, random URL each run.
    • ngrok http 8080 --domain=... — free tier with a stable subdomain.
    • A named cloudflared tunnel on a domain you own — free, stable URL.
    • A real domain pointing at a load balancer in front of your API.

    See Expose the API publicly for the full breakdown.

For laptop evaluation you can use a tunnel and skip a real domain entirely. For production, point a domain at your API ingress.

Disk and resources

The Compose stack runs Postgres, the Temporal dev server, the API, and the worker. On a laptop:

  • ~2 GB RAM headroom while running.
  • Sandbox storage: if you use the local provider, agent work happens in /tmp/sinatra-<id>/. Each run is a fresh clone of the target repo — budget a few hundred MB per concurrent run. daytona runs in the cloud, no local disk impact.