Calcom
Overview
Cal.com is a scheduling and appointment management system integrated into the Mondo MOPS ecosystem. It provides a robust solution for managing appointments, scheduling meetings, and coordinating availability across team members. In the MOPS platform, Cal.com serves as the central scheduling infrastructure, accessible via its own subdomain.
Cal.com was formerly known as Calendly and provides similar functionality with additional features for self-hosting and customization.
Architecture
Cal.com in the MOPS stack consists of:
- Cal.com Application Container: The main application serving the web interface
- PostgreSQL Database: Stores all scheduling data, accounts, and configuration
- Traefik Integration: Handles routing and TLS termination
Deployment Configuration
Docker Compose Setup
Configuration
Environment Variables
Create a .env
file in the Cal.com directory with the following variables:
Store these credentials securely. The .env
file contains sensitive
information that should not be committed to version control.
Key Configuration Options
Setting | Description | Example |
---|---|---|
ALLOWED_HOSTNAMES | Comma-separated list of valid hostnames | cal.trymondo.com,trymondo.com |
NEXTAUTH_URL | URL for authentication | https://cal.trymondo.com |
NEXT_PUBLIC_WEBAPP_URL | Public-facing URL | https://cal.trymondo.com |
SMTP_* | Email configuration | Settings for your SMTP provider |
CALCOM_TELEMETRY_DISABLED | Disable usage tracking | 1 |
EMAIL_DEBUG | Enable email debugging | true for troubleshooting |
Installation and Setup
Prerequisites
- Docker and Docker Compose installed
- External
traefik-net
network created - Domain with DNS pointing to your server
- SMTP credentials for email notifications
Deployment Steps
-
Create Required Networks:
-
Prepare Directory Structure:
-
Create Configuration Files:
-
Deploy the Stack:
-
Monitor Initial Startup:
First-Time Setup
Once deployed, complete the setup:
- Visit
https://cal.trymondo.com
- Create the admin account
- Configure organization settings
- Set up event types and availability
Integration with Other MOPS Services
Authentication
Cal.com can be integrated with Auth0 or other authentication providers:
- Configure the OAuth provider in your authentication service
- Add the appropriate callback URLs
- Update the Cal.com environment variables with the OAuth credentials
API Integration
Cal.com exposes an API that can be used by other MOPS services:
Maintenance
Backup and Restore
Cal.com data is stored in two locations:
- PostgreSQL Database: Use Backrest to back up the database volume
- Application Data: The
./data
volume contains uploads and other files
Regular backups should include both components:
Updates
To update Cal.com:
- Update the image tag in docker-compose.yml
- Pull the new image:
- Apply the update:
Troubleshooting
Common Issues
Issue | Solution |
---|---|
Database connection errors | Check PostgreSQL container health and connection string |
Email not sending | Verify SMTP settings and check logs with DEBUG=email:* |
White screen after update | Check application logs for JavaScript errors |
Authentication issues | Verify NEXTAUTH_URL and NEXTAUTH_SECRET settings |
Checking Logs
Health Checks
Performance Tuning
Resource Allocation
Cal.com performs well with moderate resources:
- Database: 1 CPU, 1GB RAM
- Application: 1-2 CPU, 2GB RAM
For high-traffic instances, consider adding resource constraints to docker-compose.yml:
Security Considerations
- Database Access: Limit access to the PostgreSQL database
- SMTP Credentials: Regularly rotate email credentials
- API Security: Monitor API usage and restrict access as needed
- Traefik Configuration: Ensure proper security headers are applied (already configured)
References
This documentation provides a comprehensive guide to deploying, configuring, and maintaining Cal.com within the Mondo MOPS ecosystem. For specific customization needs or advanced features, refer to the official Cal.com documentation.
Was this page helpful?