Document gadm release flow
This commit is contained in:
@@ -47,6 +47,15 @@ pnpm open:plaza # 浏览器打开 https://plaza.tkmind.cn/plaza
|
|||||||
|
|
||||||
公网 `https://plaza.tkmind.cn` 经 Cloudflare Tunnel 回源本机 `:3001`,需保持 `pnpm start:plaza` 运行。
|
公网 `https://plaza.tkmind.cn` 经 Cloudflare Tunnel 回源本机 `:3001`,需保持 `pnpm start:plaza` 运行。
|
||||||
|
|
||||||
|
## gadm / memind_adm
|
||||||
|
|
||||||
|
管理后台和运维接口说明见 **[docs/gadm-local.md](docs/gadm-local.md)**。
|
||||||
|
|
||||||
|
| 服务 | 地址 |
|
||||||
|
|------|------|
|
||||||
|
| memind_adm | http://127.0.0.1:8082 |
|
||||||
|
| ops 审核后台 | http://127.0.0.1:3002/ops/ |
|
||||||
|
|
||||||
## 常用脚本
|
## 常用脚本
|
||||||
|
|
||||||
| 命令 | 说明 |
|
| 命令 | 说明 |
|
||||||
|
|||||||
@@ -0,0 +1,110 @@
|
|||||||
|
# gadm 由 105 入口转发到 Studio
|
||||||
|
|
||||||
|
`gadm.tkmind.cn` 的生产链路和 Plaza 一样,都是 `105 入口 -> Studio 生产机`。
|
||||||
|
这里的后台服务名是 `memind_adm`,代码入口在本仓库的 `admin-server.mjs`。
|
||||||
|
|
||||||
|
## 角色拆分
|
||||||
|
|
||||||
|
```text
|
||||||
|
浏览器 / 内部管理人员
|
||||||
|
↓
|
||||||
|
105 公网入口(gadm.tkmind.cn)
|
||||||
|
↓ nginx / 反代
|
||||||
|
Studio / 本机生产机
|
||||||
|
└─ memind_adm :8082(admin-server.mjs)
|
||||||
|
├─ /healthz
|
||||||
|
├─ /admin-api/*
|
||||||
|
└─ /api/ops/v1/*
|
||||||
|
```
|
||||||
|
|
||||||
|
`memind_adm` 只负责后端管理 API,不直接托管大部分前台页面。
|
||||||
|
开发时,`ops/` 里的后台 SPA 会把请求代理到它;生产上则由 `gadm.tkmind.cn` 入口把请求转给 Studio。
|
||||||
|
|
||||||
|
## 本地开发
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev:adm
|
||||||
|
```
|
||||||
|
|
||||||
|
默认监听 `http://127.0.0.1:8082`。
|
||||||
|
|
||||||
|
常见本地访问地址:
|
||||||
|
|
||||||
|
| 服务 | 地址 |
|
||||||
|
|------|------|
|
||||||
|
| memind_adm | http://127.0.0.1:8082 |
|
||||||
|
| ops 后台 | http://127.0.0.1:3002/ops/ |
|
||||||
|
|
||||||
|
## 测试机同步
|
||||||
|
|
||||||
|
如果要同步到测试目录,`memind_adm` 对应的是:
|
||||||
|
|
||||||
|
- 源码目录:`/Users/john/PycharmProjects/test/test-memind`
|
||||||
|
- 测试镜像目录:`/Users/john/PycharmProjects/test/test-memindadm`
|
||||||
|
|
||||||
|
同步脚本:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash scripts/deploy-to-test-host.sh --only-adm
|
||||||
|
```
|
||||||
|
|
||||||
|
如果你要同步三套目录,也可以直接:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash scripts/deploy-to-test-host.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 生产发布流程
|
||||||
|
|
||||||
|
生产上,`gadm.tkmind.cn` 解析到 105,105 只做反代,最终回源到 Studio 上的 `memind_adm`。
|
||||||
|
|
||||||
|
### 1. 在 Studio 上更新代码
|
||||||
|
|
||||||
|
推荐从本地开发目录发布到 Studio:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /Users/john/PycharmProjects/test/test-memind
|
||||||
|
git status --short
|
||||||
|
```
|
||||||
|
|
||||||
|
如果你改的是 `admin-server.mjs`、`admin-routes.mjs`、`admin-*.mjs` 或 `ops/`,记得先本地自测。
|
||||||
|
|
||||||
|
### 2. 启动 / 重启 `memind_adm`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /Users/john/Project/Memind
|
||||||
|
pnpm dev:adm
|
||||||
|
```
|
||||||
|
|
||||||
|
如果你们的生产环境是 launchd、pm2、systemd 或别的守护方式,就让它最终执行同一个入口:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node admin-server.mjs
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 105 入口反代
|
||||||
|
|
||||||
|
105 上的 nginx 应该把 `gadm.tkmind.cn` 回源到 Studio 的 `memind_adm :8082`。
|
||||||
|
|
||||||
|
上线后优先验证:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -I https://gadm.tkmind.cn/healthz
|
||||||
|
curl -s https://gadm.tkmind.cn/healthz
|
||||||
|
```
|
||||||
|
|
||||||
|
## 故障排查顺序
|
||||||
|
|
||||||
|
如果 `gadm.tkmind.cn` 挂了,按这个顺序查:
|
||||||
|
|
||||||
|
1. Studio 上 `http://127.0.0.1:8082/healthz` 是否正常
|
||||||
|
2. Studio 上 `memind_adm` 是否还在运行
|
||||||
|
3. 105 上 nginx 是否把 `gadm.tkmind.cn` 转发到了 Studio
|
||||||
|
4. `ADMIN_CONSOLES`、`ADMIN_API_ALLOWED_HOSTS`、`OPS_API_ALLOWED_HOSTS` 是否限制过严
|
||||||
|
|
||||||
|
## 相关文件
|
||||||
|
|
||||||
|
- [`admin-server.mjs`](/Users/john/PycharmProjects/test/test-memind/admin-server.mjs)
|
||||||
|
- [`scripts/deploy-to-test-host.sh`](/Users/john/PycharmProjects/test/test-memind/scripts/deploy-to-test-host.sh)
|
||||||
|
- [`scripts/local-test-proxy.mjs`](/Users/john/PycharmProjects/test/test-memind/scripts/local-test-proxy.mjs)
|
||||||
|
|
||||||
+29
-1
@@ -254,7 +254,35 @@ pnpm deploy:plaza-105
|
|||||||
|
|
||||||
依赖 goose-h5 已部署(`pnpm deploy:105` 或全量 rsync)。详见 [Plaza 本机部署](./plaza-local.md)。
|
依赖 goose-h5 已部署(`pnpm deploy:105` 或全量 rsync)。详见 [Plaza 本机部署](./plaza-local.md)。
|
||||||
|
|
||||||
### 10.3 已废弃 / 不可用
|
### 10.3 gadm / memind_adm
|
||||||
|
|
||||||
|
`gadm.tkmind.cn` 是 `memind_adm` 的生产入口,当前流程和 Plaza 一样也是:
|
||||||
|
|
||||||
|
```text
|
||||||
|
本地开发目录 -> Studio 生产机 -> 105 入口反代 -> 公网域名
|
||||||
|
```
|
||||||
|
|
||||||
|
开发入口:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev:adm
|
||||||
|
```
|
||||||
|
|
||||||
|
测试机同步:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash scripts/deploy-to-test-host.sh --only-adm
|
||||||
|
```
|
||||||
|
|
||||||
|
生产发布时优先检查:
|
||||||
|
|
||||||
|
1. Studio 上 `http://127.0.0.1:8082/healthz`
|
||||||
|
2. 105 上 `gadm.tkmind.cn` 反代是否指向 Studio
|
||||||
|
3. `ADMIN_CONSOLES` / `ADMIN_API_ALLOWED_HOSTS` / `OPS_API_ALLOWED_HOSTS`
|
||||||
|
|
||||||
|
详细说明见 [gadm 入口与发布](./gadm-local.md)。
|
||||||
|
|
||||||
|
### 10.4 已废弃 / 不可用
|
||||||
|
|
||||||
| 命令 | 状态 |
|
| 命令 | 状态 |
|
||||||
|------|------|
|
|------|------|
|
||||||
|
|||||||
Reference in New Issue
Block a user