Self-host Cal.diy
updated Sep 2026deployed by usprices 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 →
The MIT-licensed community edition of Cal.com, a scheduling platform for booking pages, event types and calendar integrations, with the commercial Enterprise Edition code removed. Upstream recommends it for personal, non-production use.
Key facts
CategoryScheduling
LicenseMIT
StackTypeScript, Next.js, PostgreSQL, Prisma
Min RAM2048 MB
Official imageno
Difficulty
Websitecal.diy (opens in new tab)
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 + USKamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + AsiaDigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + AsiaPaid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Cal.diy — the repo's own docker-compose.yml. No prebuilt image is published, so compose builds it from source (the build sets a 6 GB Node heap)
git clone --depth 1 https://github.com/calcom/cal.diy.git && cd cal.diy
cp .env.example .env
# fresh secrets, the web URL, and the bundled Postgres (compose hard-codes its unicorn_user / magical_password credentials)
sed -i "s|^NEXTAUTH_SECRET=.*|NEXTAUTH_SECRET=$(openssl rand -base64 32)|; s|^CALENDSO_ENCRYPTION_KEY=.*|CALENDSO_ENCRYPTION_KEY=$(openssl rand -base64 24)|; s|localhost:3000|SERVER_IP:3000|g; s|^DATABASE_URL=.*|DATABASE_URL=postgresql://unicorn_user:magical_password@database:5432/calendso|; s|^DATABASE_DIRECT_URL=.*|DATABASE_DIRECT_URL=postgresql://unicorn_user:magical_password@database:5432/calendso|" .env
cat >> .env <<'EOF'
POSTGRES_USER=unicorn_user
POSTGRES_PASSWORD=magical_password
POSTGRES_DB=calendso
DATABASE_HOST=database:5432
EOF
docker compose up -d calcom # → http://SERVER_IP:3000 (a first-run wizard creates the admin user)More self-hosted tools
Scheduling
Rallly
TypeScriptNext.jsPostgreSQLPrisma
easyRead guide →
Helpdesk
Chatwoot
RubyRailsVuePostgreSQL
moderateRead guide →
E-signature
Documenso
TypeScriptReact RouterHono
moderateRead guide →
Photo backup & gallery
Ente
GoPostgreSQL
moderateRead guide →