Independent testing Updated April 2026 387 self-hosting guides 5 VPS providers tested

guide

How to Self-Host Cal.com on a VPS (Complete Guide)

Learn to install and run Cal.com on your VPS for private scheduling. Step-by-step guide covering Docker setup, configuration, and best practices.

Self-hosting Cal.com provides full control over your scheduling system, ensuring privacy and customization. This guide walks developers and homelabbers through installing Cal.com on a VPS using Docker. We highlight various providers, compare their prices, and provide detailed steps to deploy successfully.

Why Self-Host Cal.com?

Cal.com is an open-source, modern calendar and appointment scheduling platform. Hosting it yourself eliminates third-party dependencies, offers data privacy, and allows tailored features. Itโ€™s suitable for teams, clinics, or personal use.

Choosing a VPS Provider

Cost-effective, reliable VPS providers are key for a smooth self-hosted experience. Here are top options, with their prices:

ProviderPrice per MonthAffiliate LinkNotes
Contabo5.99 EURContaboGreat for larger resources.
Hetzner Cloud4.15 EURHetznerAffordable, robust infrastructure.
DigitalOcean6 USDDigitalOceanPopular, easy to use.
Vultr6 USDVultrGood global coverage.
Linode5 USDAkamai CloudSolid performance, affordable.

For a comprehensive VPS comparison, visit /en/best/.

Prerequisites

Step 1: Setting Up the VPS

Update packages:

sudo apt update && sudo apt upgrade -y

Install Docker and Docker Compose:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

Log out and log back in to apply group changes.

Step 2: Preparing Docker Environment

Create a directory for Cal.com:

mkdir -p ~/calcom && cd ~/calcom

Create a docker-compose.yml file:

version: '3'

services:
  cal:
    image: www.cal.com/cal
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    environment:
      - CAL_DOMAIN=cal.yourdomain.com
      - CAL_PROTOCOL=https
    volumes:
      - cal-data:/app/data
      - ./ssl:/etc/ssl:ro

volumes:
  cal-data:

Replace cal.yourdomain.com with your actual domain.

Step 3: Securing with SSL

Use Letโ€™s Encrypt for SSL certificates:

Install Certbot:

sudo apt install certbot

Generate certificates:

sudo certbot certonly --standalone -d cal.yourdomain.com

Save the certificates in the ~/calcom/ssl/ directory:

mkdir -p ~/calcom/ssl
sudo cp /etc/letsencrypt/archive/cal.yourdomain.com/*.pem ~/calcom/ssl/

Update the docker-compose.yml to mount the certificates and enable HTTPS.

Step 4: Deploying Cal.com

Start the container:

docker-compose up -d

Verify logs:

docker logs -f cal

Access Cal.com at https://cal.yourdomain.com. Ensure your firewall rules allow ports 80 and 443.

Step 5: Configuration and Customization

FAQs

How do I update Cal.com to a newer version?

To update, pull the latest image and restart the container:

docker pull www.cal.com/cal
docker-compose down
docker-compose up -d

Regularly check the Cal.com repo for new releases to stay updated on features and security patches.

Can I run Cal.com with Docker Compose on a minimal VPS?

Yes, but ensure the VPS has adequate resources (2GB RAM minimum). For production, allocate sufficient storage and CPU. Monitor resource usage, especially if hosting multiple services.

How do I secure my self-hosted Cal.com?

Use HTTPS with valid SSL certificates, configure firewalls to restrict access, and keep Docker images up to date. Regular backups of your Docker volumes and configurations are essential.

Additional Tips

Conclusion

Self-hosting Cal.com on a VPS is straightforward with Docker. By choosing an affordable provider, setting up Docker correctly, and securing your server, you get a private scheduling platform tailored to your needs. For detailed comparisons of VPS providers suitable for hosting apps like Cal.com, visit [full VPS comparison]. For more self-hosting projects, check r/selfhosted or awesome-selfhosted for inspiration.

Happy hosting!