Files
wyndham-ARR/deploy/README.md
2026-08-03 20:59:59 +08:00

3.8 KiB
Raw Blame History

ARR 2.0 单机 Compose 部署

本 Compose 模板部署两个 HTTP 服务:web 负责应用登录、页面、程序化 XML 处理、验证和入库,caddy 负责 HTTPS。没有 Agent 回调服务或 MCP 公网入口。自动月报由另一个无端口的 monthly_reports.worker 进程执行,不得放进 Web 请求进程。

前置条件

  • DNSWEB_PUBLIC_HOST 指向部署主机;
  • PostgreSQL 15+:目标必须是隔离数据库 booking_test,并已应用 008012 权威迁移;
  • OSS区域匹配、服务端加密、未启用或暂停 versioning、禁止匿名写bucket ACL 可为 private 或 public-read
  • ARR 数据库账号和 OSS RAM/STS 凭据由 Secret 管理器注入,不写入镜像或仓库。
  • 公司渠道明细由 Web 进程使用 Python/openpyxl 生成正式 Excel不需要 Node.js 或 @oai/artifact-tool
  • worker 与 Web 使用同一数据库和共享的 /app/outputs 持久卷;月报 worker 镜像还必须包含 Node.js 与配置匹配的 artifact-tool 模块。

配置

cp deploy/.env.production.example deploy/.env.production
chmod 600 deploy/.env.production

填写应用登录账号/长随机密码、数据库、OSS 和域名。登录凭据必须由 Secret 管理器注入不能写入镜像或提交到仓库。ARR 2.0 不需要以下配置:

  • SuperAgent/Open Agent URL 或 API key
  • MCP 域名、Bearer 或并发参数;
  • Agent callback URL/HMAC
  • fetch_oss_file 或源文件公网 URL。

校验并启动

docker compose --env-file deploy/.env.production config --quiet
docker compose --env-file deploy/.env.production build web
docker compose --env-file deploy/.env.production up -d

当前仓库镜像未内置 Codex 工作站提供的 artifact-tool因此 Compose 模板不会虚假启动一个无法生成 XLSX 的 worker。部署环境完成该依赖打包后应由 systemd、容器编排器或同等进程管理器独立执行

python -m monthly_reports.worker \
  --db-config /run/secrets/booking-test-db.env \
  --node-binary /absolute/path/to/node \
  --artifact-tool-module /absolute/path/to/artifact_tool.mjs \
  --output-root /app/outputs/monthly_reports

检查:

curl --fail --silent "https://$WEB_PUBLIC_HOST/healthz"
docker compose --env-file deploy/.env.production logs --tail=100 web

/healthz 仅以 HTTP 200/503 表示数据库与处理入口是否就绪,不暴露组件详情;详细 /api/health 必须登录后访问。worker 是独立进程,应另行监控其存活和 outbox 的 pending/publishing/dead 数量。失败时优先检查登录环境变量、数据库目标、OSS 区域/加密/versioning、OSS 凭据、固定处理器以及月报构建依赖;无需排查 Agent 或 MCP。

验收

使用无真实住客隐私的受控 XML

  1. 未登录访问首页应进入 ARR 登录页,错误凭据不得创建会话;
  2. 使用授权 Finance 账号登录,页面上传一次 XML
  3. 上传响应应直接给出 succeededfailed 终态以及 job_id
  4. 在任务日志中确认“固定处理器已启动 → 程序输出制品已登记 → 独立验收 → Finance 提交”;
  5. 成功任务应能下载对应日报,数据库中 source/retained/outcome 数量必须与结构化结果一致;
  6. worker 应消费对应 outbox 事件,页面显示真实月报 ID/版本/“更新至”,下载文件哈希应与登记值一致;
  7. 退出登录后页面、API 和下载均应重新要求登录;
  8. 业务失败任务不得激活 Finance 当前版本或触发月报。

回退

ARR 2.0 与 /Users/chillishark/ARR项目0727 是两个独立目录。应用级回退可停止本 Compose 并重新启动原工程;不要为了应用回退而删除数据库 009/010 表或 OSS 工件。数据库破坏性回滚需要单独审批、备份和迁移演练。