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

71 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ARR 2.0 单机 Compose 部署
本 Compose 模板部署两个 HTTP 服务:`web` 负责应用登录、页面、程序化 XML 处理、验证和入库,`caddy` 负责 HTTPS。没有 Agent 回调服务或 MCP 公网入口。自动月报由另一个无端口的 `monthly_reports.worker` 进程执行,不得放进 Web 请求进程。
## 前置条件
- DNS`WEB_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 模块。
## 配置
```bash
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。
## 校验并启动
```bash
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、容器编排器或同等进程管理器独立执行
```bash
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
```
检查:
```bash
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. 上传响应应直接给出 `succeeded``failed` 终态以及 `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 工件。数据库破坏性回滚需要单独审批、备份和迁移演练。