Layer 5 · self-hosting reality check
What it actually takes to self-host Cal.diy
The docs say Not stated by the vendor (the docs say it 'runs with pretty minimal hardware requirements by itself'). Building it is another matter: the project's Dockerfile gives Node a 6,144 MB heap for the build. In practice you want 2 GB to run the built image with PostgreSQL and Redis; 8 GB on whichever machine does the build. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from Calendly alternatives, where Cal.diy is one of the picks.
Wondering whether you need to at all? Is Calendly free? — what the free tier actually allows, and where the wall is.
| RAM — documented minimum | Not stated by the vendor (the docs say it 'runs with pretty minimal hardware requirements by itself'). Building it is another matter: the project's Dockerfile gives Node a 6,144 MB heap for the build |
|---|---|
| RAM — what it really needs | 2 GB to run the built image with PostgreSQL and Redis; 8 GB on whichever machine does the build |
| CPU | 2 vCPU |
| Disk | 10 GB or more: the source tree, node_modules and build output are large, plus the PostgreSQL volume. |
| Monthly cost | $6–12/mo on a 2 GB VPS, as long as you build the image on an 8 GB machine you already own and push it to a registry |
| Setup time | Half a day for the first build and deploy, and every upgrade or domain change means another rebuild |
| How you install it | Clone calcom/cal.diy, set the build-time variables (NEXT_PUBLIC_WEBAPP_URL and the secrets), docker build the image yourself, then run it with PostgreSQL 13+ and Redis from the repo's docker-compose |
| Ongoing maintenance | There are no tagged cal.diy releases since the April 2026 fork, so upgrading means pulling main, rebuilding and running database migrations. Some features need cron jobs you set up yourself, and each integration (Google, Microsoft, Zoom) needs developer credentials you create. |
| Where it stops scaling | One person's booking page, by design. Without Teams or Organizations there's nothing to grow into, and the project doesn't support running it for a business. |
The thing that catches people out
The docs tell you to pull the calcom/cal.diy image from Docker Hub, but on 2026-09-30 that repository had no tags and had never been pulled, so you have to build it yourself. The build bakes your address in: NEXT_PUBLIC_WEBAPP_URL is a build-time variable, and a wrong or changed domain sends logins back to localhost:3000 until you rebuild. Build on an 8 GB machine (the Dockerfile reserves a 6 GB Node heap), push the image to your own registry and run it on the small server.
When not to self-host Cal.diy
You're a business. The project itself says it is strictly recommended for personal, non-production use, and Teams, Organizations, Workflows, Insights and SSO were removed. A team that needs shared scheduling should pay for hosted Cal.com or look at Easy!Appointments.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 5 self-hosting guides
- Self-hosting LibreOffice2 GB with a large spreadsheet open
- Self-hosting ONLYOFFICE6 GB for the Document Server with a handful of concurrent editors
- Self-hosting Collabora Online4 GB, and roughly 1 GB per 20 concurrent documents
- Self-hosting CryptPad2 GB for a small instance
- Self-hosting Mattermost4 GB for a team of 50 with PostgreSQL on the same box
- Self-hosting Rocket.Chat6 GB with MongoDB on the same machine
Common questions
- How much RAM does Cal.diy actually need?
- 2 GB to run the built image with PostgreSQL and Redis; 8 GB on whichever machine does the build in practice. The documented minimum is Not stated by the vendor (the docs say it 'runs with pretty minimal hardware requirements by itself'). Building it is another matter: the project's Dockerfile gives Node a 6,144 MB heap for the build, which is the figure at which the process starts rather than the figure at which it works under real use. 2 vCPU alongside it.
- What does self-hosting Cal.diy cost per month?
- $6–12/mo on a 2 GB VPS, as long as you build the image on an 8 GB machine you already own and push it to a registry This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for there are no tagged cal.diy releases since the April 2026 fork, so upgrading means pulling main, rebuilding and running database migrations. Some features need cron jobs you set up yourself, and each integration (Google, Microsoft, Zoom) needs developer credentials you create.
- How long does it take to set up Cal.diy?
- Half a day for the first build and deploy, and every upgrade or domain change means another rebuild, via Clone calcom/cal.diy, set the build-time variables (NEXT_PUBLIC_WEBAPP_URL and the secrets), docker build the image yourself, then run it with PostgreSQL 13+ and Redis from the repo's docker-compose.
- When should I NOT self-host Cal.diy?
- You're a business. The project itself says it is strictly recommended for personal, non-production use, and Teams, Organizations, Workflows, Insights and SSO were removed. A team that needs shared scheduling should pay for hosted Cal.com or look at Easy!Appointments.
- What is the most common mistake when self-hosting Cal.diy?
- The docs tell you to pull the calcom/cal.diy image from Docker Hub, but on 2026-09-30 that repository had no tags and had never been pulled, so you have to build it yourself. The build bakes your address in: NEXT_PUBLIC_WEBAPP_URL is a build-time variable, and a wrong or changed domain sends logins back to localhost:3000 until you rebuild. Build on an 8 GB machine (the Dockerfile reserves a 6 GB Node heap), push the image to your own registry and run it on the small server.