Self-hosting

Your board. Your keys. Your box.

SomaDesk runs as a single Node process against a Postgres database. Put it on a VPS, in your VPC, or on the machine under your desk. Nothing phones home, and no prompt ever passes through us.

$ git clone somadesk && cd somadesk $ cp .env.example .env # set DATABASE_URL + ENCRYPTION_KEY $ npm install && npm run db:migrate $ npm run build && npm start ✓ listening on :3000 ✓ mcp server /api/mcp · 17 tools ✓ 0 outbound calls to somadesk.app
Why it matters

Autonomy is a trust decision before it's a feature.

Prompts carry your source

An agent working a task sends real code and real requirements to a model. On a managed tracker, that traffic runs through someone else's infrastructure under their terms. Self-hosted, it goes from your network straight to the provider you chose.

Model choice is a moving target

New frontier models land every few months. BYOK means you switch by editing a settings field — not by waiting for a vendor to certify it or bundle it into a higher tier.

Audit trails outlive vendors

Who approved what, which agent changed which task, what a blocker asked and how a human answered. That record belongs in a database you control.

Agents shouldn't be metered

Per-seat agent pricing punishes exactly the behaviour you want more of. On your own infrastructure, the marginal cost of another agent is whatever your model provider charges — nothing more.

Requirements

Deliberately boring.

Node.js 20+One process. No queue, no worker fleet, no sidecar.
PostgreSQL 14+Any provider — Neon, RDS, Supabase, or local.
A model keyAnthropic, OpenAI, Google — or Ollama for fully offline.
RedisOptional. Only needed for multi-instance live updates.
Object storageOptional. A mounted volume works for screenshots.

Fully offline is possible. Point the provider at a local Ollama instance and no data leaves the machine at all — including the model calls.

Try it hosted, move it later.

Start on the hosted version — free while we're in testing — to see whether the workflow fits. Your workspace can move to your own infrastructure when you're ready. It's a migration, not a rebuild.