2026-10-19 20:36:22 +08:00
|
|
|
|
# V1.1 演示版基线(2026-10-19)
|
|
|
|
|
|
|
|
|
|
|
|
## 范围
|
|
|
|
|
|
|
|
|
|
|
|
本批次目标是形成可重复启动、可验证的本地演示版本。允许使用 Mock 微信登录和演示账号;不把演示结果当作正式生产发布证据。
|
|
|
|
|
|
|
|
|
|
|
|
本批次明确不验收:真实微信账号、生产证书、正式域名、真实用户 UAT、外部备份介质。
|
|
|
|
|
|
|
|
|
|
|
|
## 当前基线证据
|
|
|
|
|
|
|
|
|
|
|
|
| 门禁 | 当前结果 |
|
|
|
|
|
|
|---|---|
|
|
|
|
|
|
| 后端 Maven 全量 | PASS:919 tests,0 failures,0 errors,17 skipped |
|
|
|
|
|
|
| Admin type-check | PASS |
|
|
|
|
|
|
| Admin build | PASS,但有 CSS URL 解析警告和大 chunk 警告 |
|
|
|
|
|
|
| Miniapp type-check | PASS |
|
|
|
|
|
|
| 空壳测试守卫 | PASS |
|
|
|
|
|
|
| 本地 Compose 解析 | PASS |
|
|
|
|
|
|
| 生产 Compose 解析 | PASS:使用临时演示变量验证通过 |
|
|
|
|
|
|
| 活栈 Compose | PASS:`danyang-demo` 隔离栈健康,PostgreSQL/Redis/SeaweedFS/Backend/Nginx 均就绪 |
|
|
|
|
|
|
| E2E | PASS:全新卷迁移/seed 后真实本地 PostgreSQL 活栈 `72 passed`(2026-10-19 重新验证) |
|
|
|
|
|
|
| UI 契约与空壳守卫 | PASS:TabBar/页面/WXML/WXSS/API 行为契约通过 |
|
|
|
|
|
|
| H5 浏览器冒烟 | PASS:活栈 `/h5` 下未登录守卫、演示用户登录、6 个核心页、Like、红娘工作台均通过(2026-10-19 重新验证) |
|
|
|
|
|
|
|
|
|
|
|
|
## 演示候选范围
|
|
|
|
|
|
|
|
|
|
|
|
- 后端 Java、数据库迁移、后端测试和 E2E fixture。
|
|
|
|
|
|
- `infrastructure/docker-compose.yml`、staging 配置、Nginx 和演示环境变量示例。
|
|
|
|
|
|
- `admin-web` 构建产物和类型检查范围。
|
|
|
|
|
|
- `miniapp` 类型检查及演示路径相关代码。
|
|
|
|
|
|
- 必要的演示验收、部署和运行文档。
|
|
|
|
|
|
|
|
|
|
|
|
## 明确排除
|
|
|
|
|
|
|
|
|
|
|
|
- `.mimosa/`、`.trae/`、`.wb_tmp_bcrypt/` 等机器本地临时目录。
|
|
|
|
|
|
- 未经本批次审查的 H5 或演示新增文件。
|
|
|
|
|
|
- 真实微信 Provider、生产证书、正式域名、真实用户数据和外部备份介质。
|
|
|
|
|
|
- 与演示闭环无关的功能扩展和大范围重构。
|
|
|
|
|
|
|
|
|
|
|
|
## 演示验证命令
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
mvn -B -f backend/pom.xml test
|
|
|
|
|
|
pnpm --dir admin-web type-check
|
|
|
|
|
|
pnpm --dir admin-web build
|
|
|
|
|
|
npm --prefix miniapp run type-check
|
|
|
|
|
|
python scripts/check-no-empty-tests.py
|
|
|
|
|
|
docker compose -p danyang-demo -f infrastructure/docker-compose.yml config --quiet
|
|
|
|
|
|
$env:E2E_BASE_URL='http://localhost:8085/api/v1'
|
|
|
|
|
|
$env:E2E_OPERATOR_PASSWORD='演示环境密码'
|
|
|
|
|
|
python -m pytest tests/e2e -q
|
|
|
|
|
|
$env:DEMO_H5_BASE_URL='http://localhost:6689/h5'
|
|
|
|
|
|
npm --prefix h5-demo run smoke
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
本次全新卷验证还确认:首次迁移与 Demo seed 成功,`seed-demo.ps1 -E2E` 第二次重跑幂等成功。当前 `danyang-demo` 数据卷使用创建时的临时凭据(PostgreSQL `demo-db`、Redis `demo-redis`);重建 backend 时必须向 Compose 注入同一组卷凭据,并使用长度至少 32 字节的 JWT 临时密钥。该凭据仅用于本机演示,不得用于生产。
|
|
|
|
|
|
|
2026-10-21 17:34:03 +08:00
|
|
|
|
## 部署到其他演示服务器
|
|
|
|
|
|
|
|
|
|
|
|
此流程适用于隔离的演示服务器,不适用于生产。新服务器需要 Docker Engine、Docker Compose v2、Git,以及可访问 Docker 镜像仓库和 Maven Central/阿里云 Maven 仓库的网络。后端镜像在目标机从源码构建,因此首次构建会下载依赖。
|
|
|
|
|
|
|
|
|
|
|
|
1. 拉取本次提交或演示标签,并在仓库根目录准备本机环境文件:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
git clone http://120.27.207.134:13000/admin/danyang-match.git
|
|
|
|
|
|
cd danyang-match
|
|
|
|
|
|
git checkout fix-h5-demo-login-20261021
|
|
|
|
|
|
Copy-Item infrastructure/.env.example infrastructure/.env
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. 编辑 `infrastructure/.env`,为演示环境生成并填写 `DB_PASSWORD`、`REDIS_PASSWORD`、`MINIO_ACCESS_KEY`、`MINIO_SECRET_KEY`、`JWT_ACCESS_SECRET`、`JWT_REFRESH_SECRET` 和 `ENCRYPTION_KEY`。JWT 密钥至少 32 字节;`ENCRYPTION_KEY` 使用 64 位十六进制值。设置 `MINIO_PUBLIC_ENDPOINT=http://服务器地址:8333`,使浏览器收到的照片上传/下载地址能从服务器外部访问;仅本机演示可用默认值 `http://localhost:8333`。不要将 `.env` 提交到 Git。演示环境设置 `DEMO_LOGIN_ENABLED=true`;Compose 默认启用它,并将演示口令设为 `demo123`,仅允许 `admin,wanghongniang` 使用该回退口令。正式生产配置不启用此能力。
|
|
|
|
|
|
|
|
|
|
|
|
3. 在仓库根目录构建并启动完整服务栈:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
docker compose -f infrastructure/docker-compose.yml up -d --build
|
|
|
|
|
|
docker compose -f infrastructure/docker-compose.yml ps
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
等待 PostgreSQL、Redis、SeaweedFS 和 Backend 显示健康,再初始化一次演示业务数据:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
.\scripts\seed-demo.ps1
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
初始化脚本写入用户档案、预置运营账号及 V1.1 首页/内容/服务数据,可重复运行;不要删除已有数据库卷。仅首次部署的空白数据库执行完整基础 seed。已有数据库不会被脚本清空或重置。
|
|
|
|
|
|
|
|
|
|
|
|
4. 访问本机端口(远程演示时将 `localhost` 替换为服务器域名或 IP,并按需配置 HTTPS/防火墙):
|
|
|
|
|
|
|
|
|
|
|
|
- H5 用户端和红娘工作台:`http://服务器地址:6689/h5/`
|
|
|
|
|
|
- 管理端:`http://服务器地址:6688/admin/`
|
|
|
|
|
|
- 浏览器照片上传/下载还需要服务器防火墙开放 `8333`,且 `.env` 中 `MINIO_PUBLIC_ENDPOINT` 与外部访问域名/IP 一致。
|
|
|
|
|
|
- H5 用户端选择“晓燕”等预置账号直接登录,无需真实微信;预置登录码对应 `demo_openid_f02` 等 seed 用户。
|
|
|
|
|
|
- 管理员:`admin / demo123`;红娘:`wanghongniang / demo123`。
|
|
|
|
|
|
|
|
|
|
|
|
只有完成演示数据初始化且账号为 active,预置账号才能进入完整页面流程。`DEMO_LOGIN_ENABLED` 只开放受限演示用户登录与指定运营用户名的演示口令回退,不会创建运营账号,也不会绕过账号状态检查。
|
|
|
|
|
|
|
|
|
|
|
|
5. 升级本次提交后重新构建应用服务:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
docker compose -f infrastructure/docker-compose.yml up -d --build backend h5-web admin-web
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
本流程不配置真实微信、正式证书或生产域名;线上生产部署应使用 `docker-compose.prod.yml`,独立配置真实身份凭据,并保持演示登录关闭。
|
|
|
|
|
|
|
2026-10-19 20:36:22 +08:00
|
|
|
|
## 演示数据初始化
|
|
|
|
|
|
|
|
|
|
|
|
在 Compose 栈健康后执行一次即可;脚本可重复运行,不会清空数据库:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
.\scripts\seed-demo.ps1
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
需要同时准备 E2E 运营账号时:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
$env:E2E_OPERATOR_PASSWORD='DemoPass123!'
|
|
|
|
|
|
.\scripts\seed-demo.ps1 -E2E
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 当前判断
|
|
|
|
|
|
|
|
|
|
|
|
演示版达到 `CONDITIONAL GO (DEMO ONLY)`:可在本机 Docker 环境演示核心用户、运营、红娘、咨询、服务站和活动互选流程。该结论不覆盖真实微信、生产证书、正式域名、真实用户 UAT 或外部备份介质,也不等于正式生产 `GO`。
|
|
|
|
|
|
|
|
|
|
|
|
正式生产仍保持 `NO-GO`,待上述排除项完成后另行执行生产部署、真实集成、UAT、恢复演练和发布审批。
|