Cal.com 开源日程管理系统部署教程 帕斯内网穿透实现外网访问 自托管Calendly替代方案
作者
小编
发布时间

项目介绍
Cal.com(原名 Calendso)是一个开源的日程安排基础设施平台,被誉为 Calendly 的开源替代品。它基于 Next.js 14、tRPC、React.js、Tailwind CSS 和 Prisma.io 构建,为个人和企业提供完全可控的日程管理解决方案。
与传统的日程安排工具不同,Cal.com 让你完全掌控自己的数据、工作流程和外观设计。无论是商务会议、研讨会、瑜伽课程,还是家庭通话,Cal.com 都能提供灵活的定制化服务。项目支持自托管或官方托管,具备白标设计、API 驱动等特性,可以部署在你自己的域名下,让你对事件和数据拥有完全控制权。
项目地址:点我跳转
部署安装
如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。
复制下列的配置文件
1# Use postgres/example user/password credentials23volumes:4 database-data:56networks:7 stack:8 name: stack9 external: false1011services:12 database:13 container_name: database14 image: postgres15 restart: always16 volumes:17 - database-data:/var/lib/postgresql/data/18 env_file: .env19 networks:20 - stack2122 calcom:23 image: calcom.docker.scarf.sh/calcom/cal.com24 restart: always25 networks:26 - stack27 ports:28 - 3000:300029 env_file: .env30 environment:31 - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}32 - DATABASE_DIRECT_URL=${DATABASE_URL}33 depends_on:34 - database3536 studio:37 image: calcom.docker.scarf.sh/calcom/cal.com38 restart: always39 networks:40 - stack41 ports:42 - 5555:555543 env_file: .env44 environment:45 - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}46 - DATABASE_DIRECT_URL=${DATABASE_URL}47 depends_on:48 - database49 command:50 - npx51 - prisma52 - studio
同时创建 .env 文件,内容如下:
1NEXT_PUBLIC_LICENSE_CONSENT=agree2NEXT_PUBLIC_WEBAPP_URL=http://localhost:30003NEXTAUTH_SECRET=your_secret_key_here4CALENDSO_ENCRYPTION_KEY=your_encryption_key_here5POSTGRES_USER=unicorn_user6POSTGRES_PASSWORD=magical_password7POSTGRES_DB=calendso8DATABASE_HOST=database:54329DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}10DATABASE_DIRECT_URL=${DATABASE_URL}11CALCOM_TELEMETRY_DISABLED=112EMAIL_FROM_NAME=YourOrganizationName13EMAIL_FROM=notifications@example.com14NODE_ENV=production
打开飞牛 NAS 或其他的 NAS 设备

项目名称可以随便填,点击创建 docker-compose.yml

点击 Compose -> 新建项目
这里需要改成你需要的数据库账号和密码,以及生成安全的密钥。使用 openssl rand -base64 32
命令生成 NEXTAUTH_SECRET 和 CALENDSO_ENCRYPTION_KEY,其他的保持不变。
如果提示端口被占用可以修改下面的字段,但是需要保持格式正确。
创建成功后可以访问 ip:3000 到这里就可以正常显示项目了
穿透公网
打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道
隧道节点可以随便选,一般选个负载低的就可以

接下来填写信息,隧道名称可以随便填写
本地 IP 默认就可以
传输协议可以选择 TCP 也可以选择 HTTP/HTTPS
HTTP 就是域名的形式,教程以使用 TCP 为演示
本项目中如果没有修改端口的话默认是 3000 端口,这里本地 IP 就填 3000
远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定
点击刚才创建好的隧道,点击获取配置文件

回到飞牛 NAS,点击应用中心下载 frpc 客户端

打开后粘贴刚才复制的配置文件,点击确定即可
复制帕斯内网穿透控制台的访问 IP 和端口
可以看到已经正常穿透成功了
本篇教程结束