Prerequisites
Before deploying Cal.com, ensure you have:- Node.js (Version: >=18.x)
- PostgreSQL (Version: >=13.x)
- Yarn package manager (recommended)
- Required environment variables configured (see Configuration)
Docker Deployment
Quick Start with Docker Compose
The fastest way to deploy Cal.com is using Docker Compose. This method includes PostgreSQL, Redis, and optionally Prisma Studio.1. Clone the Repository
2. Configure Environment
Copy the example environment file and update it:Generate VAPID keys using:
npx web-push generate-vapid-keys3. Pull Images
By default, images are pulled from
calcom.docker.scarf.sh/calcom/cal.com for download metrics. The official image is also available at hub.docker.com/r/calcom/cal.com.4. Start Services
Complete stack (PostgreSQL + Cal.com + Prisma Studio):5. Access Cal.com
Open your browser to http://localhost:3000. The first run will launch a setup wizard to create your initial user.Optional: Prisma Studio is available at http://localhost:5555 for database management. Remove this service in production environments.
Updating Docker Deployment
To update to the latest version:ARM Architecture Support
For ARM-based systems (Apple Silicon, ARM servers):docker-compose.yml to use the ARM-specific image tag.
Docker Services Overview
The defaultdocker-compose.yml includes:
- database: PostgreSQL 13+ database
- redis: Redis for caching and queues
- calcom: Main Cal.com web application
- calcom-api: Cal.com API v2 service
- studio: Prisma Studio (optional, for development)
Advanced Docker Build
For custom builds or modifications:1. Build Custom Image
2. Build-time Arguments
Customize the build with these arguments:Vercel Deployment
Deploy Cal.com to Vercel with one click:Vercel Configuration
- Required Environment Variables:
- Build Settings:
- Build Command:
cd ../.. && yarn build - Output Directory:
apps/web/.next - Install Command:
yarn install - Root Directory:
apps/web/
- External Database Required:
Railway Deployment
Deploy Cal.com on Railway:Railway Setup
- Click the Deploy button above
- Connect your GitHub account
- Configure required environment variables
- Railway automatically provisions PostgreSQL
- Access your deployment at the provided Railway URL
Northflank Deployment
Deploy Cal.com on Northflank:Render Deployment
Deploy Cal.com on Render:Manual Installation
For bare-metal or VM deployments:1. Install Dependencies
2. Clone and Install
3. Configure Environment
4. Setup Database
5. Build and Start
Development:6. Process Manager (Production)
Use PM2 to keep Cal.com running:Reverse Proxy Setup
Nginx Configuration
SSL with Let’s Encrypt
Healthcheck
Cal.com includes a built-in healthcheck endpoint:Troubleshooting
SSL Edge Termination
If running behind a load balancer handling SSL:CLIENT_FETCH_ERROR
If NextAuth cannot resolve the hostname:VAPID Keys Error
If you see “No key set vapidDetails.publicKey”:Database Connection Issues
Ensure your database URL is correctly formatted:Production Checklist
- Set strong
NEXTAUTH_SECRETandCALENDSO_ENCRYPTION_KEY - Configure proper
DATABASE_URLwith connection pooling - Set correct
NEXT_PUBLIC_WEBAPP_URLfor your domain - Generate and configure VAPID keys for push notifications
- Configure email provider (SendGrid, SMTP, or Resend)
- Remove Prisma Studio service from docker-compose
- Enable SSL/HTTPS with valid certificates
- Configure backup strategy for PostgreSQL
- Set up monitoring and logging
- Review and configure CSP policy
- Disable telemetry if required:
CALCOM_TELEMETRY_DISABLED=1
Next Steps
- Configure environment variables
- Set up database and migrations
- Review Docker-specific options