PassNAT LogoPassNAT

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

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

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 credentials
2
3volumes:
4 database-data:
5
6networks:
7 stack:
8 name: stack
9 external: false
10
11services:
12 database:
13 container_name: database
14 image: postgres
15 restart: always
16 volumes:
17 - database-data:/var/lib/postgresql/data/
18 env_file: .env
19 networks:
20 - stack
21
22 calcom:
23 image: calcom.docker.scarf.sh/calcom/cal.com
24 restart: always
25 networks:
26 - stack
27 ports:
28 - 3000:3000
29 env_file: .env
30 environment:
31 - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
32 - DATABASE_DIRECT_URL=${DATABASE_URL}
33 depends_on:
34 - database
35
36 studio:
37 image: calcom.docker.scarf.sh/calcom/cal.com
38 restart: always
39 networks:
40 - stack
41 ports:
42 - 5555:5555
43 env_file: .env
44 environment:
45 - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
46 - DATABASE_DIRECT_URL=${DATABASE_URL}
47 depends_on:
48 - database
49 command:
50 - npx
51 - prisma
52 - studio

同时创建 .env 文件,内容如下:

1NEXT_PUBLIC_LICENSE_CONSENT=agree
2NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
3NEXTAUTH_SECRET=your_secret_key_here
4CALENDSO_ENCRYPTION_KEY=your_encryption_key_here
5POSTGRES_USER=unicorn_user
6POSTGRES_PASSWORD=magical_password
7POSTGRES_DB=calendso
8DATABASE_HOST=database:5432
9DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
10DATABASE_DIRECT_URL=${DATABASE_URL}
11CALCOM_TELEMETRY_DISABLED=1
12EMAIL_FROM_NAME=YourOrganizationName
13EMAIL_FROM=notifications@example.com
14NODE_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 和端口

可以看到已经正常穿透成功了

本篇教程结束