Self-hosting

Self-hosting

Run Desyn on your own server with every feature unlocked, free for non-commercial use. What you need, how the pieces fit, and where to start.

On this page

The self-hosted edition is the same software as desyn.app, configured with DESYN_EDITION=selfhost. Every feature is unlocked for every account, there is no credit pool and no billing, and telemetry is off unless you turn it on. You bring the infrastructure and, if you want AI features, your own provider keys or local models.

What you run#

The repository ships the whole stack as one Compose file, deploy/compose/desyn.selfhost.yml; the quickstart walks through it.

ComponentWhat it doesIn the stack
Web appThe Desyn editor, dashboard and admin console (Next.js)web, built from deploy/docker/next.Dockerfile
Convex backendDatabase, realtime sync, server functions, HTTP API, scheduled jobsconvex-backend (ghcr.io/convex/convex-backend)
PostgresStorage engine of the Convex backendpostgres, internal network only
Convex dashboardBrowse data, logs and environment variablesconvex-dashboard, on 127.0.0.1 only
Render workerExports, thumbnails, layout and AI previews (Rust)worker, built from deploy/docker/worker.Dockerfile
Object storageUploads, generated assets, exports and snapshotsminio, or any S3-compatible store
EmailSign-in links, verification, invitesyour SMTP server or Amazon SES (mailpit for testing)
AI providers (optional)Agent, generation and asset toolsOpenRouter, Fal, members' keys, or ollama

The server functions themselves live in the repository's convex/ directory and are pushed to your backend with the Convex CLI (the stack's convex-tools service).

Requirements#

  • A Linux server (or, to evaluate, any computer) with Docker Engine and the Compose plugin. For a small team: 4 vCPU, 8 GB RAM and 40 GB of disk is comfortable; exports and AI previews are rendered by the worker and benefit from more cores. Building the images needs more memory than running them — build on a machine with at least 16 GB or use prebuilt images from your CI.
  • A domain with DNS records for four hostnames, for example:
    • design.example.org — the web app
    • convex.example.org — the Convex API (with WebSockets)
    • convex-site.example.org — Convex HTTP actions (auth, Agent API, MCP)
    • s3.example.org — object storage, reachable by browsers for direct uploads
  • TLS certificates for those hostnames (a reverse proxy with automatic HTTPS handles this; see reverse proxy & TLS).
  • Email delivery: an SMTP account or Amazon SES.
  • Optionally, AI: an OpenRouter and/or Fal key, or a machine that can run local models.

Start here#

Plan limits when self-hosted#

The selfhost plan in config/plans.json applies to every account: unlimited designs, pages, storage, collaborators, brand kits, workspaces and exports, a 1 GB maximum upload size, and no credits (AI requests use your own providers). You can change these values in config/plans.json before building, or override individual accounts in the admin console.

Popular pages

QuickstartGet started
Keyboard shortcutsEditor
The agentAI
Docker Compose quickstartSelf-hosting
Configuration referenceSelf-hosting
Agent API (v1)Developers