PassNAT LogoPassNAT

Cal.com开源预约管理平台搭建教程 Calendly替代品自建部署 帕斯内网穿透实现公网访问

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Cal.com 是一个开源的日程安排和预约管理平台,被誉为 Calendly 的开源替代品。它基于 Next.js 14、tRPC、React.js、Tailwind CSS 和 Prisma.io 构建,为用户提供完全自主控制的预约调度解决方案。

Cal.com 让你完全掌控自己的数据、工作流程和界面外观。与其他调度工具不同,Cal.com 支持自托管部署,可以部署在你自己的域名下,提供白标签设计,并且拥有强大的 API 驱动架构。无论是商务会议、研讨会、瑜伽课程,还是家庭通话,Cal.com 都能满足你的预约调度需求。

项目支持多种集成服务,包括 Google Calendar、Outlook、Zoom、Daily.co 等,让你的预约管理更加便捷高效。界面简洁美观,功能强大,是个人和企业管理预约的理想选择。

项目地址: 点我跳转

部署安装

如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。

复制下列的配置文件

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=Cal.com
13EMAIL_FROM=notifications@example.com
14NODE_ENV=production

打开飞牛 NAS 或其他的 NAS 设备

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

点击 Compose -> 新建项目

这里需要修改 NEXTAUTH_SECRET 和 CALENDSO_ENCRYPTION_KEY 为你自己的密钥,可以使用随机字符串生成器生成32位字符串。POSTGRES_PASSWORD 也建议修改为更安全的密码。

如果提示端口被占用可以修改下面的字段,但是需要保持格式正确。

创建成功后可以访问 ip:3000 到这里就可以正常显示项目了,首次访问会进入设置向导,按照提示创建第一个用户即可。

穿透公网

打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道

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

接下来填写信息,隧道名称可以随便填写

本地 IP 默认就可以

传输协议可以选择 TCP 也可以选择 HTTP/HTTPS

HTTP 就是域名的形式,教程以使用 TCP 为演示

本项目中如果没有修改端口的话默认是 3000 端口,这里本地 IP 就填 3000

远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定

点击刚才创建好的隧道,点击获取配置文件

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

打开后粘贴刚才复制的配置文件,点击确定即可

复制帕斯内网穿透控制台的访问 IP 和端口

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

本篇教程结束