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

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.diyCal.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.xYarn推荐数据库连接串按 README 的格式准备将user、pass、db-host、db-port替换为你的实际值DATABASE_URLpostgresql://user:passdb-host:db-port本地设置与 Prisma 数据库初始化1. Fork 并克隆仓库git clone https://github.com/your-fork/cal.diy.gityour-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站点基础 URLNEXTAUTH_URL.env.example中的注释要求在 Vercel 托管时将其设置为与NEXT_PUBLIC_WEBAPP_URL相等CRON_API_KEYVercel 部署按钮预置的必需变量之一README 中 Vercel 一键部署链接列出了DATABASE_URL、NEXT_PUBLIC_WEBAPP_URL、NEXTAUTH_URL、NEXTAUTH_SECRET、CRON_API_KEY、CALENDSO_ENCRYPTION_KEY生成密钥的两条命令openssl rand -base64 32 # 生成 NEXTAUTH_SECRET openssl rand -base64 24 # 生成 CALENDSO_ENCRYPTION_KEY另外 安装文档 补充对于Vercel 的 preview 部署请保持NEXTAUTH_URL、NEXT_PUBLIC_WEBSITE_URL、NEXT_PUBLIC_WEBAPP_URL三个变量为空。3. 安装依赖yarn install4. 用 Prisma 初始化数据库Prisma schema 位于packages/prisma/schema.prisma其中数据源通过DATABASE_URL与DATABASE_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_URLpostgresql://postgres:YOUR_PASSWORDlocalhost:5432/postgres; $env:DATABASE_DIRECT_URLpostgresql://postgres:YOUR_PASSWORDlocalhost:5432/postgres npx prisma db push cd ../..5. 通过 Prisma Studio 创建第一个用户并验证yarn db-studio在 Prisma Studio 中点击User模型添加一条新用户记录填写email、username、password并把metadata设为空对象{}——密码需先用 BCrypt 加密后再填入README 提示某些版本在metadata为空字符串时会报Invalid prisma.user.create()用{}可解决点击Save 1 Record保存。README 提示新用户的默认 plan 是TRIAL如有需要可在 schema 中调整打开浏览器访问本地 3000 端口用刚创建的用户登录确认账户可用。这是文档给出的验证方式能登录即说明数据库初始化与首个用户创建都成功了。在 Vercel 上创建项目并部署在 Vercel 上新建项目从你 fork 的仓库导入设置环境变量与本地.env中一致的那一组将 root directory 设置为apps/web覆盖构建命令Override the build command为cd ../.. yarn build --include-dependencies --no-deps点击 Deploy。如果yarn install在 Vercel 部署期间失败源文档给出的替代安装命令是YARN_ENABLE_IMMUTABLE_INSTALLSfalse 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),仅供参考