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(推荐)

    如果您想启用任何可用的集成,可能需要为每个集成获取额外的凭证。更多详情请参见下方的集成部分。

开发指南

设置步骤

  1. 克隆仓库(或 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

  2. 进入项目文件夹
    cd cal.diy
    
  3. 使用 yarn 安装包
    yarn
    
  4. 设置你的 .env 文件
    • 复制 .env.example.env
    • 使用 openssl rand -base64 32 生成一个密钥,并将其添加到 .env 文件中的 NEXTAUTH_SECRET
    • 使用 openssl rand -base64 24 生成一个密钥,并将其添加到 .env 文件中的 CALENDSO_ENCRYPTION_KEY
  5. 设置 Node 版本(可选) 如果您的 Node 版本不符合要求,可以使用 nvm(Node Version Manager)来切换到项目所需的版本:
    nvm use
    

    您可能需要先安装特定版本:

    nvm install && nvm use
    
  6. 初始化数据库 运行数据库迁移命令:
    yarn db-migrate
    
  7. 启动开发服务器
    yarn dev
    
  8. 访问应用 打开浏览器访问 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 页面提交问题,或在 讨论区 寻求帮助。

参考资料