Cal.com 日程预约平台部署教程

Cal.com 是一款开源的日程预约平台,作为 Calendly 的自托管替代方案。它允许你创建个人预约页面,他人可以根据你的空闲时间预约会议。支持日历集成、视频会议、团队调度和工作流自动化等企业级功能。本教程将在搬瓦工 VPS 上通过 Docker 部署 Cal.com。

一、Cal.com 核心功能

  • 事件类型:创建不同类型的预约(如 30 分钟电话、60 分钟咨询),每种类型有独立的设置。
  • 日历集成:连接 Google Calendar、Outlook 等日历,自动检测冲突和显示可用时段。
  • 视频会议:集成 Zoom、Google Meet、Microsoft Teams 等,预约时自动创建会议链接。
  • 团队调度:支持循环分配和集体预约模式,适合销售和客服团队。
  • 工作流:自动化提醒和确认流程,通过邮件或短信发送预约提醒。
  • 嵌入集成:预约页面可以嵌入到你的网站中,无缝集成品牌体验。
  • 支付集成:集成 Stripe 实现付费预约,适合咨询收费场景。

二、环境准备

  • 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
  • 内存:至少 2GB RAM,推荐 4GB。
  • 磁盘:至少 15GB 可用空间。
  • Docker:已安装 Docker 和 Docker Compose(参考 Docker 安装教程)。

购买搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 折扣。

三、Docker Compose 部署

3.1 克隆项目

cd /opt
git clone https://github.com/calcom/docker.git cal-com
cd /opt/cal-com

3.2 配置环境变量

cp .env.example .env

编辑 .env 文件中的关键配置:

# 应用设置
NEXT_PUBLIC_WEBAPP_URL=http://your-domain.com
NEXTAUTH_SECRET=your_nextauth_secret_here
CALENDSO_ENCRYPTION_KEY=your_encryption_key_here

# 数据库
DATABASE_URL=postgresql://calcom:your_db_password@db:5432/calcom
DATABASE_DIRECT_URL=postgresql://calcom:your_db_password@db:5432/calcom

# 邮件
EMAIL_FROM=noreply@example.com
EMAIL_SERVER_HOST=smtp.example.com
EMAIL_SERVER_PORT=587
EMAIL_SERVER_USER=your-email@example.com
EMAIL_SERVER_PASSWORD=your-email-password

生成密钥:

echo "NEXTAUTH_SECRET: $(openssl rand -base64 32)"
echo "ENCRYPTION_KEY: $(openssl rand -hex 32)"

3.3 创建 Docker Compose 文件

cat > docker-compose.yml <<'EOF'
version: '3.8'

services:
  calcom:
    image: calcom/cal.com:latest
    container_name: calcom
    restart: always
    ports:
      - "3000:3000"
    env_file:
      - .env
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    container_name: calcom-db
    restart: always
    environment:
      POSTGRES_USER: calcom
      POSTGRES_PASSWORD: your_db_password
      POSTGRES_DB: calcom
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
EOF

3.4 启动服务

docker compose up -d
docker compose logs -f calcom

启动后访问 http://你的服务器IP:3000 注册管理员账户。

四、Nginx 反向代理

cat > /etc/nginx/sites-available/calcom <<'EOF'
server {
    listen 80;
    server_name cal.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
EOF

ln -s /etc/nginx/sites-available/calcom /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d cal.example.com

五、Cal.com 使用指南

5.1 设置可用时间

登录后首先设置你的可用时间。进入"Availability"页面,定义工作日和工作时间段。可以创建多个可用时间方案,例如"工作日"和"周末"方案,不同事件类型可以关联不同的时间方案。

5.2 创建事件类型

在"Event Types"页面创建预约类型。例如创建一个"30 分钟咨询"事件,设置时长、可用时间、缓冲时间(会议前后的间隔)、最小提前通知时间和最大可预约天数。每个事件类型有独立的预约链接。

5.3 连接日历

在"Integrations"页面连接你的日历账户。连接后 Cal.com 会自动读取已有日程,避免时间冲突。预约成功后也会自动在日历中创建事件。

5.4 预约页面

你的个人预约页面地址为 https://cal.example.com/你的用户名。访问者可以在页面上选择事件类型和可用时间段,填写姓名和邮箱后完成预约。双方都会收到邮件确认通知。

六、备份与升级

# 备份数据库
docker exec calcom-db pg_dump -U calcom calcom > /opt/cal-com/backup_$(date +%Y%m%d).sql

# 升级
cd /opt/cal-com
docker compose pull
docker compose down
docker compose up -d

总结

Cal.com 是功能最完整的开源日程预约平台,适合需要专业预约系统的个人和团队。如果你只需要简单的日程投票功能,可以参考更轻量的 Rallly。购买搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受折扣。更多教程请访问 搬瓦工VPS中文网

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。