[{"data":1,"prerenderedAt":144},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-twenty-crm-on-vps-open-source-salesforce-alternative-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":24,"featuredImage":26,"bgImage":27,"posterImage":28,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":83,"ctaBody":84,"ctaButton":85,"ctaUrl":86,"relatedPosts":87},134,"self-host-twenty-crm-on-vps-open-source-salesforce-alternative",{"fr":10,"en":8,"ar":11},"self-host-twenty-crm-vps","استضف-twenty-crm-بنفسك-على-vps-بديل-salesforce-مفتوح-المصدر","Self-Host Twenty CRM on VPS: Open Source Salesforce Alternative","Deploy Twenty CRM on a ServOrbit VPS — open-source Salesforce alternative with custom objects, GraphQL API and automation worker. AGPL-3.0, production-ready since v2.1.0.",4,0,false,"2026-02-13T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-twenty-crm-vps-poster.svg",{"categorySlug":30,"appSlug":31},"erp-business-management","twenty","Salesforce and HubSpot charge per seat, lock your data in their cloud, and make schema changes a bureaucratic process. Twenty is the developer-friendly answer: an AGPL-3.0 CRM you deploy on your own VPS in minutes, with fully customisable objects, a first-class GraphQL API, and a background worker that handles automations and webhooks. Since v2.1.0 (April 2026) Twenty is production-ready for single-tenant self-hosted deployments — and the stack is just Docker Compose with Postgres and Redis.",[34,38,49,52,77,80],{"type":35,"title":36,"body":37},"h2","Why developer teams self-host Twenty instead of paying for Salesforce","Most CRMs are designed for sales managers, not engineers. The schema is fixed, the API is rate-limited, and every integration goes through a proprietary marketplace. Twenty inverts this: every entity (contacts, companies, deals, or any custom object you define) is modelled in PostgreSQL and exposed through a fully documented GraphQL API from day one. You own the database, you write migrations, and you integrate with your own tooling — no middleware, no per-API-call billing.",{"type":39,"title":40,"items":41},"ul","What you get out of the box",[42,43,44,45,46,47,48],"Fully customisable objects and fields — model any entity your business uses, not just the ones Salesforce decided on.","Kanban, list and table views with real-time collaborative updates across your team.","Notes, tasks and activity timeline attached to every record — no separate plugin required.","GraphQL + REST API covering every object, relationship and custom field you create.","Background worker for automations, webhooks and scheduled jobs — runs alongside the server container.","CSV import for migrating contacts and companies from HubSpot, Pipedrive or any legacy CRM.","AGPL-3.0 licence — no vendor lock-in, no per-seat cloud billing, no data stored off your infrastructure.",{"type":35,"title":50,"body":51},"Prerequisites","A 2 vCPU \u002F 4 GB RAM VPS running Ubuntu 22.04 with Docker installed covers production comfortably. The full stack (server + worker + PostgreSQL + Redis) idles around 1.2 GB RAM; plan 4 GB to keep PostgreSQL breathing room under concurrent queries. A domain name and a Caddy or Nginx reverse proxy for HTTPS. That is everything — no GPU, no licence key, no external service.",{"type":53,"title":54,"steps":55},"steps","Deploy Twenty on a VPS in 6 steps",[56,59,62,65,68,71,74],{"title":57,"body":58},"Provision the VPS","Order a ServOrbit VPS (4 GB RAM, 2 vCPU, Ubuntu 22.04). Once it boots, SSH in and install Docker: `curl -fsSL https:\u002F\u002Fget.docker.com | sh`. Enable the Docker service: `systemctl enable --now docker`.",{"title":60,"body":61},"Create your .env file","Create `\u002Fopt\u002Ftwenty\u002F.env` with four variables: `APP_SECRET` (generate with `openssl rand -hex 32`), `DB_NAME=twenty`, `DB_USER=twenty`, `DB_PASSWORD=\u003Cstrong-password>` and `SERVER_URL=https:\u002F\u002Fcrm.yourdomain.com` (set it now — Twenty embeds this in CORS headers and email links). `APP_SECRET` is the only cryptographic secret; everything else is derived from it.",{"title":63,"body":64},"Write docker-compose.yml and bring the stack up","Create `\u002Fopt\u002Ftwenty\u002Fdocker-compose.yml` with the four services: `db` (postgres:16-alpine), `redis` (redis:7-alpine), `twenty-server` (twentycrm\u002Ftwenty:latest, port 3000) and `twenty-worker` (same image, command `yarn worker:prod`). Connect them via `PG_DATABASE_URL` and `REDIS_URL`. Then: `docker compose up -d`. On first boot, Twenty runs database migrations — allow 60–90 seconds before the UI is ready.",{"title":66,"body":67},"Complete the workspace setup","Open `http:\u002F\u002F\u003Cvps-ip>:3000` and follow the setup wizard: create your admin account, name the workspace, and optionally invite teammates by email. Import existing contacts from a CSV in workspace settings → Import.",{"title":69,"body":70},"Put Twenty behind HTTPS with Caddy","Install Caddy: `apt install -y caddy`. Create `\u002Fetc\u002Fcaddy\u002FCaddyfile`: `crm.yourdomain.com { reverse_proxy localhost:3000 }`. Reload: `systemctl reload caddy`. Caddy obtains and renews the TLS certificate automatically. Restrict port 3000 in your firewall: `ufw deny 3000` — all traffic now goes through 443.",{"title":72,"body":73},"Connect your automation tools","In Twenty settings → API, copy your GraphQL endpoint and personal API token. Use them directly in n8n (HTTP Request node) or Activepieces to sync contacts, trigger actions on deal stage changes, or push data from external sources. Twenty also fires outbound webhooks on any record event — configure them in settings → Webhooks.",{"title":75,"body":76},"Logging in for the first time","Open the URL and click \"Sign up\": the first person to register automatically becomes the administrator of the workspace, and registrations then close. Do it immediately after installation.",{"type":78,"body":79},"tip","Back up the three Docker volumes — `twenty_db` (PostgreSQL data), `twenty_data` (local file storage) and `twenty_redis` (only needed if you use persistent job queues) — to an off-server location daily. A simple `docker run --rm -v twenty_db:\u002Fdata -v \u002Fbackups:\u002Fout alpine tar czf \u002Fout\u002Ftwenty-db-$(date +%F).tar.gz \u002Fdata` one-liner in a cron job covers the database.",{"type":78,"title":81,"body":82},"The Official Documentation","For advanced configuration and tool-specific options, refer to the \u003Ca href=\"https:\u002F\u002Fdocs.twenty.com\" target=\"_blank\" rel=\"noopener noreferrer\">official Twenty documentation\u003C\u002Fa>. This guide covers going live on a VPS; the vendor's documentation remains the reference for fine-tuning, major upgrades and specific use cases.","Deploy Twenty CRM on your own server","Self-host Twenty CRM on a ServOrbit VPS — open-source, no per-seat fee, your data on your infrastructure.","Deploy Twenty","\u002Fmarketplace\u002Ferp-business-management\u002Ftwenty",[88,109,124],{"id":89,"slug":90,"slugs":91,"title":94,"excerpt":95,"readTime":96,"views":15,"isPinned":16,"publishedAt":97,"category":98,"categories":103,"featuredImage":26,"bgImage":27,"posterImage":105,"relatedSolution":106},3,"install-n8n-on-vps-with-docker-complete-2026-guide",{"fr":92,"en":90,"ar":93},"installer-n8n-vps","تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026","Install n8n on VPS with Docker: complete 2026 guide","Deploy n8n on VPS with Docker Compose, reverse proxy, HTTPS and webhooks. Covers V8 crash >30 workflows, 502 nginx timeout and npm to Docker migration before v3.0.",11,"2026-06-05T00:00:00+00:00",{"id":99,"name":100,"slug":101,"color":102,"icon":101},2,"Automation","automatisation","bg-brand-action\u002F10 text-brand-action",[104],{"id":99,"name":100,"slug":101,"color":102,"icon":101},"\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":107,"appSlug":108},"automation-workflows","n8n",{"id":110,"slug":111,"slugs":112,"title":115,"excerpt":116,"readTime":89,"views":15,"isPinned":16,"publishedAt":117,"category":118,"categories":119,"featuredImage":26,"bgImage":27,"posterImage":121,"relatedSolution":122},26,"installing-activepieces-on-a-vps-self-hosted-automation",{"fr":113,"en":111,"ar":114},"installer-activepieces-vps","تثبيت-activepieces-على-خادم-vps-أتمتة-ذاتية-الاستضافة","Installing Activepieces on a VPS: self-hosted automation","Deploy Activepieces on your VPS: self-hosted no-code automation, private data, unlimited integrations and a Docker deployment in 15 minutes.","2026-05-25T00:00:00+00:00",{"id":99,"name":100,"slug":101,"color":102,"icon":101},[120],{"id":99,"name":100,"slug":101,"color":102,"icon":101},"\u002Fblog\u002Fcovers\u002Finstaller-activepieces-vps-poster.svg",{"categorySlug":107,"appSlug":123},"activepieces",{"id":99,"slug":125,"slugs":126,"title":129,"excerpt":130,"readTime":89,"views":15,"isPinned":16,"publishedAt":131,"category":132,"categories":138,"featuredImage":26,"bgImage":27,"posterImage":140,"relatedSolution":141},"deploying-dify-on-a-vps-ai-workflows-under-control",{"fr":127,"en":125,"ar":128},"deployer-dify-vps","نشر-dify-على-vps-سير-عمل-الذكاء-الاصطناعي-تحت-السيطرة","Deploying Dify on a VPS: AI Workflows Under Control","Install Dify on a ServOrbit VPS to build agents, chatflows and AI apps without losing control of your data.","2026-02-11T00:00:00+00:00",{"id":133,"name":134,"slug":135,"color":136,"icon":137},1,"Artificial Intelligence","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[139],{"id":133,"name":134,"slug":135,"color":136,"icon":137},"\u002Fblog\u002Fcovers\u002Fdeployer-dify-vps-poster.svg",{"categorySlug":142,"appSlug":143},"artificial-intelligence","dify",1787581015042]