Skip to content

Self-host Twenty

updated Aug 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

An open-source CRM with a modern, Notion-like interface covering contacts, companies, and fully customizable sales pipelines. Positioned as an open alternative to Salesforce, with a GraphQL API and a Postgres-backed data model you can extend without code.

Salesforce / yr$300
Self-hosted / yr~$283
You keep$17/yr
Pocket the difference — spin it up on a cheap VPS in minutes.Start free on Kamatera → (opens in new tab)

Key facts

CategoryCRM
LicenseAGPL-3.0
StackTypeScript, NestJS, React
Min RAM2048 MB
Official imageyes
Measured idle RAM2232 MB
Difficulty
Our recommendation

Pick Twenty when you want a modern, AI-native CRM that actually looks and feels like Salesforce or HubSpot rather than a decade-old admin panel — a clean, spreadsheet-style UI with real-time collaboration and an active community driving fast iteration. It's the youngest project in this cluster (give it 4 GB of RAM); weigh that youth against SuiteCRM's or EspoCRM's longer track record if stability matters more than polish.

Follow the Twenty deploy guide →

What you need

  • Any VPS with at least 2048 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • About an afternoon — budget time for troubleshooting
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# Twenty — official docker-compose.yml + generated secrets
mkdir twenty && cd twenty
wget -O docker-compose.yml https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml
wget -O .env https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/.env.example
# base64 (with +/) breaks Twenty's DB connection string — Twenty's own .env.example
# warns the password must have no special characters, so this uses hex instead
echo "PG_DATABASE_PASSWORD=$(openssl rand -hex 24)" >> .env
echo "ENCRYPTION_KEY=$(openssl rand -base64 32 | tr -d '\n')" >> .env
docker compose up -d || true   # first boot reports "unhealthy" — expected, the wait below is the real bring-up
# first boot runs ~180 DB migrations and can take 2-3 min — the server's own
# healthcheck budget is shorter than that, so the first command exits with
# "container twenty-server-1 is unhealthy" without starting the worker
# wait for it, then start the worker once the server reports healthy — use
# --no-recreate so a plain up -d doesn't bounce the healthy server and reset
# its healthcheck clock:
until docker compose ps server | grep -q '(healthy)'; do sleep 5; done && docker compose up -d --no-recreate  #  →  http://SERVER_IP:3000

What you take on

Twenty trades maturity for momentum, and that trade is worth knowing before you build a sales team's workflow on it:

non-negotiableIt's mostly AGPL-3.0 — files marked Enterprise (SSO and audit-log code among them) are under a commercial licence and need a Twenty Enterprise subscription in production. Network-copyleft terms apply to the rest if you modify it and offer it as a service to others — fine for internal use, worth a legal read if you're reselling it.
non-negotiableIt's still young. Some enterprise-grade CRM features (deep customization, advanced reporting) are newer or thinner than in SuiteCRM or Odoo — check your must-haves exist today, not on the roadmap.
non-negotiableBudget the RAM. 4 GB recommended puts it above EspoCRM's or Vtiger's lighter LAMP-style footprint — size the VPS for a modern container stack, not a legacy PHP app.

An alternative to

Head-to-head

More in CRM

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.