GitHub - calcom/cal.diy:为所有人打造的日程安排基础设施
⚠️ 风险自负。 Cal.diy 是 Cal.com 的开源社区版,适用于希望自托管 Cal.diy 实例的用户。
严格建议用于个人、非生产环境。 请仔细阅读所有安装和配置步骤。
自托管需要具备服务器管理、数据库管理和敏感数据安全保护方面的高级知识。只有在您对这些责任感到适任的情况下,方可继续。
对于任何商业和企业就绪的日程安排基础设施,请使用 Cal.com(由我们托管,或获得本地企业接入邀请):https://cal.com/sales
Cal.diy
社区驱动的开源日程安排平台。
| GitHub | 讨论区 | 议题 | 贡献指南 |
关于 Cal.diy
Cal.diy 是一个社区驱动的、完全开源的日程安排平台——它是 Cal.com 的一个分支,移除了所有企业版/商业代码。Cal.diy 采用 100% MIT 许可证,没有任何专有的“企业版”功能。它专为希望完全掌控其日程安排基础设施,且没有任何商业依赖的个人和自托管用户设计。
与 Cal.com 有何不同?
- 无企业功能——团队、组织、洞察、工作流、SSO/SAML 及其他仅限企业版的功能已被移除
- 无需许可证密钥——开箱即用,无需 Cal.com 账户或许可证
- 100% 开源——整个代码库采用 MIT 许可证,没有“开放核心”的分割
- 社区维护——欢迎贡献,并直接进入本项目(参见 CONTRIBUTING.md)
注意: Cal.diy 是一个自托管项目,没有托管/管理版本,您需要在自己的基础设施上运行它。
技术栈
快速开始
要在本地运行一个可用的副本,请遵循以下步骤。
环境要求
运行 Cal.diy 所需的环境:
- Node.js(版本:>=18.x)
- PostgreSQL(版本:>=13.x)
- Yarn(推荐)
如果您想启用任何可用的集成,可能需要为每个集成获取额外的凭证。更多详情请参见下方的集成部分。
开发指南
设置步骤
- 克隆仓库(或 fork https://github.com/calcom/cal.diy/fork)
git clone https://github.com/calcom/cal.diy.git如果您使用的是 Windows,请在 Git Bash 中以管理员权限运行以下命令:
git clone -c core.symlinks=true https://github.com/calcom/cal.diy.git - 进入项目文件夹
cd cal.diy - 使用 yarn 安装包
yarn - 设置你的
.env文件- 复制
.env.example为.env - 使用
openssl rand -base64 32生成一个密钥,并将其添加到.env文件中的NEXTAUTH_SECRET下 - 使用
openssl rand -base64 24生成一个密钥,并将其添加到.env文件中的CALENDSO_ENCRYPTION_KEY下
- 复制
- 设置 Node 版本(可选)
如果您的 Node 版本不符合要求,可以使用 nvm(Node Version Manager)来切换到项目所需的版本:
nvm use您可能需要先安装特定版本:
nvm install && nvm use - 初始化数据库
运行数据库迁移命令:
yarn db-migrate - 启动开发服务器
yarn dev - 访问应用
打开浏览器访问
http://localhost:3000。
Docker 部署
使用 Docker Compose(推荐):
# 克隆仓库
git clone --recursive https://github.com/calcom/cal.diy.git
cd cal.diy
# 复制环境文件
cp .env.example .env
# 生成所需的密钥
openssl rand -base64 32 # 用于 NEXTAUTH_SECRET
openssl rand -base64 24 # 用于 CALENDSO_ENCRYPTION_KEY
# 使用 Docker 启动(包含 PostgreSQL)
docker compose up -d
然后打开 http://localhost:3000 并创建您的第一个用户。
默认测试账户:
-
密码: free@example.com角色:free(免费用户) -
密码: pro@example.com角色:pro(专业用户) -
密码: admin@example.com密码: ADMINadmin2022!角色:Admin(管理员用户)
功能特性
日程安排与预订
- 自定义事件类型(15分钟、30分钟、60分钟等)
- 循环预订
- 可用性管理
- 时区支持
- 预订页面定制
- 确认与提醒邮件
- 会议之间的缓冲时间
- 预订限制与轮询调度
日历集成
- Google Calendar
- Microsoft Office 365
- Apple Calendar(通过 CalDAV)
视频会议
- Zoom
- Google Meet
- Microsoft Teams
其他功能
- 多个预订 URL
- 预订重定向
- 集体会议
- 通过 Mailhog 的邮件通知
集成
Cal.diy 支持与多种第三方服务集成,包括:
- 日历:Google Calendar、Microsoft 365、Apple Calendar(通过 CalDAV)
- 视频会议:Daily.co、Zoom、Google Meet、Microsoft Teams
- 其他:HubSpot 等 CRM 系统
启用集成可能需要您在 .env 文件中配置相应的 API 密钥和凭证。
贡献指南
欢迎贡献!请查看 CONTRIBUTING.md 了解详情。
许可证
Cal.diy 采用 MIT 许可证。这是一个宽松的开源许可证,允许用户自由使用、修改和分发代码,只需保留版权和许可声明即可。
相关资源
重要提示
- 数据主权:Cal.diy 让您完全掌控自己的数据,所有用户数据、日程安排、会议链接均存储在您指定的数据库中,无需经由第三方服务中转。
- 没有托管服务:Cal.diy 不提供任何官方托管或管理服务,您必须自行负责部署和维护。
- 功能差异:Cal.diy 移除了 Cal.com 商业版和企业版中的团队管理、组织架构、工作流自动化和 SSO 登录等高级功能,专注于提供核心的日程安排能力。
- 商业用途:如果您需要用于商业或企业级场景,建议使用 Cal.com 的托管服务或企业版。
常见问题
Q: Cal.diy 是否可以用于商业生产环境?
A: 根据官方说明,Cal.diy 严格建议仅用于个人和非生产用途。对于任何商业和企业就绪的调度需求,官方推荐使用 Cal.com 托管版或企业版。
Q: 运行 Cal.diy 需要哪些技术环境?
A: 运行 Cal.diy 需要 Node.js(版本 >= 18.x)、PostgreSQL(版本 >= 13.x),并推荐使用 Yarn 作为包管理工具。
Q: Cal.diy 包含 Cal.com 的所有功能吗?
A: 不包含。Cal.diy 移除了所有企业版独有的功能,如团队管理、组织架构、工作流自动化和 SSO 登录等,它专注于提供核心的调度功能。
Q: 如果我在部署中遇到问题怎么办?
A: 您可以在 GitHub 的 Issues 页面提交问题,或在 讨论区 寻求帮助。
