news 2026/9/10 19:16:39

Cal.diy 在 Vercel Pro 上的手动部署:环境变量、构建命令与 Prisma 数据库初始化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cal.diy 在 Vercel Pro 上的手动部署:环境变量、构建命令与 Prisma 数据库初始化

Cal.diy 在 Vercel Pro 上的手动部署:环境变量、构建命令与 Prisma 数据库初始化

【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diy

如果你要把 Cal.diy(Cal.com 的社区开源 fork)部署到 Vercel 上,且不想用一键按钮,而是自己掌控仓库与配置,那么完整路径是:在本地准备好环境变量并用 Prisma 初始化 Postgres 数据库、创建一个第一个用户,然后在 Vercel 上新建项目、指定根目录与构建命令后部署。这条路径有一个硬性前提:官方文档明确说明,由于免费版对 serverless 函数数量有限制,使用 Vercel 部署该应用需要Vercel Pro Plan;另外你还需要一个托管在别处的 Postgres 数据库(文档以 Supabase 的免费选项和 Heroku 的低成本选项为例)。本文依据 Vercel 部署文档 与 README.md 中的手动配置说明。

准备条件

按 README.md 的 Prerequisites,运行 Cal.diy 需要:

  • Node.js(版本 >= 18.x,安装文档 建议用 Node 18 以获得最佳稳定性)
  • PostgreSQL(版本 >= 13.x)
  • Yarn(推荐)

数据库连接串按 README 的格式准备,将<user><pass><db-host><db-port>替换为你的实际值:

DATABASE_URL='postgresql://<user>:<pass>@<db-host>:<db-port>'

本地设置与 Prisma 数据库初始化

1. Fork 并克隆仓库

git clone https://github.com/<<your-fork>>/cal.diy.git

<<your-fork>>需要替换为你自己 fork 的仓库地址(源文档给出的模板值)。

2. 设置环境变量

Vercel 手动部署文档说明:复制.env.example文件并重命名为.env,填入你的配置。注意一个文档间的不一致:vercel.mdx 说该文件在apps/web下,而当前仓库中.env.example位于项目根目录(README 的手动设置一节也指向根目录的.env.example)。以仓库实际位置为准。

需要重点配置的环境变量:

变量说明
DATABASE_URL数据库连接串,格式见上
NEXTAUTH_SECRETCookie 加密密钥,用openssl rand -base64 32生成
CALENDSO_ENCRYPTION_KEY认证加密密钥,用openssl rand -base64 24生成
NEXT_PUBLIC_WEBAPP_URL站点基础 URL
NEXTAUTH_URL.env.example中的注释要求:在 Vercel 托管时,将其设置为与NEXT_PUBLIC_WEBAPP_URL相等
CRON_API_KEYVercel 部署按钮预置的必需变量之一(README 中 Vercel 一键部署链接列出了DATABASE_URLNEXT_PUBLIC_WEBAPP_URLNEXTAUTH_URLNEXTAUTH_SECRETCRON_API_KEYCALENDSO_ENCRYPTION_KEY

生成密钥的两条命令:

openssl rand -base64 32 # 生成 NEXTAUTH_SECRET openssl rand -base64 24 # 生成 CALENDSO_ENCRYPTION_KEY

另外 安装文档 补充:对于Vercel 的 preview 部署,请保持NEXTAUTH_URLNEXT_PUBLIC_WEBSITE_URLNEXT_PUBLIC_WEBAPP_URL三个变量为空。

3. 安装依赖

yarn install

4. 用 Prisma 初始化数据库

Prisma schema 位于packages/prisma/schema.prisma,其中数据源通过DATABASE_URLDATABASE_DIRECT_URL两个环境变量读取。在生产环境执行:

yarn workspace @calcom/prisma db-deploy

该命令在 packages/prisma/package.json 中对应prisma migrate deploy

Windows/PowerShell 用户注意 README 给出的已知问题:如果部署脚本报Environment variable not found: DATABASE_DIRECT_URL,是 Turbo 未能注入根.env变量,可以在 prisma 包目录内直接执行命令绕过:

cd packages/prisma $env:DATABASE_URL="postgresql://postgres:YOUR_PASSWORD@localhost:5432/postgres"; $env:DATABASE_DIRECT_URL="postgresql://postgres:YOUR_PASSWORD@localhost:5432/postgres" npx prisma db push cd ../..

5. 通过 Prisma Studio 创建第一个用户并验证

yarn db-studio

在 Prisma Studio 中:

  1. 点击User模型添加一条新用户记录;
  2. 填写emailusernamepassword,并把metadata设为空对象{}——密码需先用 BCrypt 加密后再填入(README 提示某些版本在metadata为空字符串时会报Invalid 'prisma.user.create()',用{}可解决);
  3. 点击Save 1 Record保存。README 提示新用户的默认 plan 是TRIAL,如有需要可在 schema 中调整;
  4. 打开浏览器访问本地 3000 端口,用刚创建的用户登录,确认账户可用。

这是文档给出的验证方式:能登录即说明数据库初始化与首个用户创建都成功了。

在 Vercel 上创建项目并部署

  1. 在 Vercel 上新建项目;
  2. 从你 fork 的仓库导入;
  3. 设置环境变量(与本地.env中一致的那一组);
  4. 将 root directory 设置为apps/web
  5. 覆盖构建命令(Override the build command)为:
cd ../.. && yarn build --include-dependencies --no-deps
  1. 点击 Deploy。

如果yarn install在 Vercel 部署期间失败,源文档给出的替代安装命令是:

YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install

把 Vercel 的 install command 换成它即可。

Cron 任务不需要在 Vercel 上手工配置:apps/web/vercel.json 已经声明了crons列表,包括/api/cron/calendar-subscriptions(每 5 分钟)、/api/cron/calendar-subscriptions-cleanup/api/cron/queuedFormResponseCleanup/api/tasks/cron/api/tasks/cleanup/api/cron/credentials/api/cron/selected-calendars等定时任务,部署后随项目一起生效。

结果验证与限制

  • 数据库侧yarn db-studio能看到你创建的用户记录,且能在 3000 端口(本地)用该用户登录成功,说明 Prisma 初始化与首个用户创建完成。
  • 部署侧:Vercel 项目使用apps/web作为根目录、覆盖后的构建命令执行成功并进入部署流程,即为手动部署完成。
  • 限制:Vercel 免费版的 serverless 函数数量不够用,Pro Plan 是文档明确的硬性要求;Postgres 数据库必须托管在别处,数据库连接串通过DATABASE_URL提供。
  • 如果部署后想接入 Google Calendar 等集成,README 的 "Obtaining the Google API Credentials" 一节给出了获取GOOGLE_API_CREDENTIALS的完整步骤,属于部署完成后的后续配置。

【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 19:06:14

Composio Python SDK 集成测试全指南:从环境搭建到 MCP 功能验证

Composio Python SDK 集成测试全指南&#xff1a;从环境搭建到 MCP 功能验证 【免费下载链接】composio Composio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into act…

作者头像 李华
网站建设 2026/9/10 19:06:06

2026企业云盘选型指南:核心需求与技术方案解析

1. 企业云盘市场现状与核心需求解析 2026年的企业云存储市场已经形成了明显的分层格局。根据第三方调研数据显示&#xff0c;超过78%的500人以上规模企业已经部署了至少一套企业级云盘系统&#xff0c;这个数字较2021年增长了近3倍。市场爆发式增长的背后&#xff0c;是企业数字…

作者头像 李华
网站建设 2026/9/10 19:05:50

数据分析结果解读与可视化规范指南

1. 数据结果分析的基本框架"5-1.b分析结果"这个标题看似简单&#xff0c;实际上蕴含着一套完整的数据分析流程。作为从业多年的数据分析师&#xff0c;我见过太多人拿到分析结果后不知如何下手。今天我就来拆解这个看似简单的标题背后隐藏的专业方法论。任何规范的数…

作者头像 李华