System Requirements¶
Doable runs anywhere Node.js, PostgreSQL, and (optionally) Docker run. The exact requirements depend on which deployment path you take.
Recommended (production)¶
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 vCPU | 4+ vCPU |
| RAM | 2 GB | 4–8 GB |
| Disk | 20 GB SSD | 40+ GB SSD |
| OS | Ubuntu 22.04 / 24.04 LTS | Same |
| Network | Public IPv4 (or Cloudflare Tunnel) | Same |
The two AI-heavy paths (preview builds, agent sessions, thumbnail rendering with Puppeteer) benefit most from extra RAM. Each running user project spawns a Vite dev server in a sandboxed child process — budget ~150 MB per active project.
Software dependencies¶
Docker path (simplest)¶
- Docker 24+
- Docker Compose v2 (built-in
docker compose, not the legacydocker-compose)
That's it. Everything else is in the containers.
Bare-metal / source path¶
| Tool | Version | Purpose |
|---|---|---|
| Node.js | 22+ (20 minimum) | API, WS, web build/runtime |
| pnpm | 9+ | Package manager |
| PostgreSQL | 16+ | Database |
pgvector |
latest | Vector embeddings |
pgcrypto |
bundled with Postgres | UUIDs, encryption |
pg_trgm |
bundled with Postgres | Full-text search |
| Caddy or nginx | latest | Reverse proxy + TLS |
| cloudflared | latest (optional) | Tunnel for sites without a public IP |
| Chromium | bundled with Puppeteer | Thumbnail screenshots |
tmux (Linux/macOS) or psmux (Windows) |
latest | Service multiplexer |
setup-server.sh installs all of these for you on a fresh Ubuntu host.
Browser support¶
The Doable web app targets modern evergreen browsers:
- Chrome / Chromium / Edge — latest 2 releases
- Firefox — latest 2 releases
- Safari — latest 2 releases on macOS / iOS
Older browsers are not supported because the editor uses ES2022, modules, crypto.subtle, and EventSource.
Optional integrations¶
Activate any of these by setting the relevant env vars — none are required:
| Service | Why |
|---|---|
| Redis 7+ | Shared rate-limiting and sessions across multiple API replicas |
| Stripe | Billing, subscriptions, credit packs |
| AWS S3 (or any S3-compatible store) | File uploads (logos, assets) |
| Cloudflare account + Tunnel | Custom user-published domains without exposing ports |
| OAuth providers | GitHub / Google login |
Sizing rules of thumb¶
- < 100 active users: a single 2 vCPU / 4 GB VPS handles everything (no Redis needed).
- 100–1000 users: same VPS with Redis enabled, or split DB onto its own host.
- 1000+ users: scale API and WS horizontally behind a load balancer; PostgreSQL on managed RDS / Neon; Redis required.
See Scaling for the multi-instance topology.