跳到主要内容

Chatwoot Phase 0 部署记录

日期:2026-04-07
状态:已部署并完成线上验证
范围:aovis.app 的 Chatwoot Phase 0 上下文注入

1. 目的

这份记录保存 Chatwoot Phase 0 发布的部署身份、运行检查和线上验证结果,方便后续继续调 widget、上下文和邮件行为时不用重新推导历史。

2. 发布身份

  • 仓库:aovis-direct-store
  • 分支:main
  • 发布提交:e528d8a810f3b90c594462ebf8de30a6d32ebf1a
  • 短 commit:e528d8a
  • 远端状态:已推送到 origin/main

发布说明:

  • feat: Chatwoot Phase 0 - logged-in user context injection

3. 发布内容

Phase 0 加入了已登录用户的支持上下文路径:

  • app/layout.tsx:使用 SessionProvider
  • components/chatwoot-widget.tsx:将用户会话同步到 Chatwoot
  • app/api/support/context/route.ts:提供已认证的支持上下文接口
  • scripts/chatwoot-provision-attributes.ts:预置 Chatwoot 自定义字段
  • docs/chatwoot-context-integration.md:记录实现方式
  • .env.example.env.production.example:补充 Chatwoot 环境变量

这次发布没有扩展到 Amazon、AI、设备遥测或支付相关范围。

4. 部署目标

AOVIS Store VM

  • VM:aovis-store-staging-vm
  • 区域:us-west1-c
  • 项目:aovis-site-1
  • 路径:/opt/aovis/aovis-store-staging
  • PM2 进程:aovis-store-staging

部署身份

Chatwoot Support VM

独立的 Chatwoot 支持栈仍然运行在:

  • VM:chatwoot-vm
  • 区域:us-central1-a
  • 项目:aovis-direct-store-492514
  • 该栈使用的 gcloud 账号:[email protected]

5. 部署命令

这次更新是通过 Git pull 完成的,不是 tar / scp 同步:

cd /opt/aovis/aovis-store-staging
git fetch origin
git pull origin main
npm install
npx prisma generate
npm run build
pm2 restart aovis-store-staging --update-env

这是这条发布线的标准路径。

6. 构建与运行结果

  • npm install 成功
  • npx prisma generate 成功
  • npm run build 成功
  • pm2 restart aovis-store-staging --update-env 成功

7. 线上验证

以下检查全部通过:

  • https://aovis.app 返回 200
  • https://aovis.app/robots.txt 返回 200
  • https://aovis.app/sitemap.xml 返回 200
  • https://aovis.app/api/support/context 在未登录时返回 401
  • npm run deploy:verify 通过,结果为 7/7
  • https://aovis.app/api/auth/providers 仍然返回 apple

Widget 运行检查

浏览器侧验证确认:

  • https://support.aovis.app/packs/js/sdk.js 已加载
  • window.chatwootSDK 存在
  • window.chatwootSettings 存在

8. 重要边界

  • 不要覆盖 /opt/aovis/aovis-store-staging/.env.production
  • 不要用 tar / scp 作为主发布路径
  • 不要把未提交的本地改动当作可发布版本
  • 如果以后 Apple sign-in 消失,先检查 VM 环境和 /api/auth/providers

9. 后续调优

后续仍应限制在 Phase 0 这条线内:

  • widget 身份 / 上下文同步
  • 通知交付行为
  • 邮件通知规则
  • 运营与客服流程对齐

不要把这份记录扩展成其他产品范围。