Cal.com 自托管安装指南:从零开始搭建你的开源日程管理平台
前言
Cal.com 是一款开源的日程安排和会议管理工具,它可以帮助个人和团队高效管理时间安排。本文将详细介绍如何在不同环境中自托管部署 Cal.com,包括本地开发环境搭建、生产环境部署以及相关配置说明。
系统要求
硬件要求
Cal.com 运行时资源占用较低,但在构建阶段需要较多计算资源。建议配置:
- 至少 2GB 内存
- 2核 CPU
- 10GB 可用存储空间
软件依赖
必须安装以下组件:
- Node.js 18(推荐版本,确保最佳兼容性)
- Yarn(包管理工具)
- Git(版本控制工具)
- PostgreSQL(数据库服务)
专业提示:生产环境强烈推荐使用 Linux 系统,特别是基于 Debian/Ubuntu 的发行版,因其稳定性和广泛的社区支持。
安装准备
1. 克隆代码仓库
git clone https://your-repo-mirror/calcom.git
Windows 用户注意:需要使用管理员权限执行以下命令以确保符号链接正确创建:
git clone -c core.symlinks=true https://your-repo-mirror/cal.com.git
2. 安装依赖项
cd cal.com
yarn install
此过程会安装所有必要的 Node.js 模块,包括 Prisma(数据库ORM工具)等核心依赖。
环境配置
1. 配置文件设置
复制示例环境文件并重命名:
cp .env.example .env
cp apps/api/.env.example apps/api/V2/.env
2. 生成安全密钥
生成 NEXTAUTH_SECRET:
openssl rand -base64 32
将生成的密钥填入 .env
文件中对应的 NEXTAUTH_SECRET
字段。
3. 应用商店配置
编辑 .env.appStore
文件配置第三方应用集成所需的API密钥。
生产环境构建
1. 数据库准备
确保已完成:
- 数据库初始化
- 必要的迁移脚本执行
- 测试数据验证(如需要)
2. 构建命令
yarn build
yarn start
构建完成后,应用将默认运行在 3000 端口。
定时任务配置
Cal.com 依赖以下定时任务维持核心功能:
- 会议提醒通知
- 日程同步
- 数据清理
根据部署平台不同,配置方式各异:
- Linux 系统:使用 crontab
- Vercel:使用平台提供的Cron Jobs功能
- 其他PaaS:参考对应平台的定时任务文档
定时任务脚本位于:
/apps/web/app/api/cron
高级部署方案
Vercel 部署
作为 Next.js 的创建者,Vercel 是部署 Cal.com 的理想平台:
- 创建新项目并连接代码仓库
- 在项目设置中添加所有必要的环境变量
- 配置构建命令为
yarn build
- 部署分支
其他平台部署
Cal.com 作为标准 Next.js 应用,可部署在:
- Netlify:类似 Vercel 的部署流程
- AWS/Azure:使用容器服务或虚拟机部署
- 本地服务器:配合 Nginx 反向代理
维护建议
- 定期更新:关注项目更新,及时应用安全补丁
- 数据库备份:建立 PostgreSQL 的定期备份机制
- 监控设置:配置基本的应用健康监控
- 日志管理:收集和分析应用日志
常见问题排查
- 构建失败:检查 Node.js 版本是否为 18,清理 yarn 缓存后重试
- 数据库连接问题:验证
.env
中的数据库配置,检查 PostgreSQL 服务状态 - 定时任务不执行:确认平台是否支持Cron,检查任务配置语法
结语
通过本文的指导,您应该已经成功部署了自己的 Cal.com 实例。这个开源日程管理平台不仅功能强大,而且具有高度可定制性,非常适合需要完全控制数据和工作流的企业或个人用户。根据实际需求,您可以进一步探索其API集成、主题定制等高级功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考