> **生产环境警示：当前目录 `/Users/john/Project/Memind` 为生产目录与生产环境，禁止重启服务；操作前先阅读 [docs/service-isolation-runbook.md](docs/service-isolation-runbook.md)。**

# Memind (TKMind H5)

Memind 主应用、Plaza 发现广场与管理后台。当前生产入口统一是 `105 -> Studio` 反代链路，详细流程分别见下面三份 runbook。

> **开发基线：** `v0.1.0-baseline`（2026-06-16）— 后续开发请从此 tag 创建分支，详见 [docs/BASELINE.md](docs/BASELINE.md)。

## 统一拓扑

```mermaid
flowchart TB
  User[用户 / 浏览器 / 微信] --> N105[105 公网入口]

  N105 --> G2[g2.tkmind.cn]
  N105 --> Plaza[plaza.tkmind.cn]
  N105 --> Gadm[gadm.tkmind.cn]

  G2 --> StudioG2[Studio 生产机<br/>Memind H5 :8081 / Plaza :3001]
  Plaza --> StudioPlaza[Studio 生产机<br/>Plaza :3001]
  Gadm --> StudioAdm[Studio 生产机<br/>memind_adm :8082]

  StudioG2 --> Portal[Portal / API]
  StudioPlaza --> Portal
  StudioAdm --> AdminAPI[admin-server.mjs]
```

## 入口总览

| 入口 | 说明 | 文档 |
|------|------|------|
| `g2.tkmind.cn` | 主应用 H5，105 入口转发到 Studio | [docs/release-deploy.md](docs/release-deploy.md) |
| `plaza.tkmind.cn` | Plaza 前台，105 入口转发到 Studio | [docs/plaza-local.md](docs/plaza-local.md) |
| `gadm.tkmind.cn` | `memind_adm` 后台，105 入口转发到 Studio | [docs/gadm-local.md](docs/gadm-local.md) |

## 快速开始

```bash
pnpm install
cp .env.example .env   # 按需填写
pnpm dev               # MindSpace + Plaza + Ops
```

| 服务 | 地址 |
|------|------|
| MindSpace H5 | http://127.0.0.1:5173/?preview=mindspace |
| Plaza | http://127.0.0.1:3001/plaza |
| Ops 审核后台 | http://127.0.0.1:3002/ops/ |
| API / Portal | http://127.0.0.1:8081 |
| memind_adm | http://127.0.0.1:8082 |

详见 [docs/local-dev.md](docs/local-dev.md)。生产机器上预览前先看 [生产 / 测试 / 预览隔离规程](docs/service-isolation-runbook.md)，不要占用 `8081`。

仅 Plaza：

```bash
pnpm start:plaza       # 本机正式模式（105 反代回源）
pnpm dev:plaza         # 开发热更新
pnpm open:plaza        # 浏览器打开 https://plaza.tkmind.cn/plaza
```

## Plaza 入口

完整说明见 **[docs/plaza-local.md](docs/plaza-local.md)**，摘要如下：

| 步骤 | 命令 |
|------|------|
| 首次 DNS | `sudo pnpm setup:plaza-dns` |
| 首次 TLS（可选） | `sudo pnpm setup:plaza-local` |
| 公网 Tunnel | `pnpm setup:plaza-tunnel` |
| 日常正式 | `pnpm start:plaza` |
| 开发调试 | `pnpm dev:plaza` |
| 诊断 | `pnpm check:plaza` |

公网 `https://plaza.tkmind.cn` 经 105 反代回源 Studio 本机 `: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/ |

## 常用脚本

| 命令 | 说明 |
|------|------|
| `pnpm dev` | 全栈开发 |
| `pnpm open:local-test` | 浏览器打开 H5 |
| `pnpm start:plaza` | Plaza 正式模式 + Portal |
| `pnpm dev:plaza` | Plaza 开发模式 + Portal |
| `pnpm open:plaza` | 浏览器强制本地解析 |
| `pnpm check:plaza` | 本地 Plaza 诊断 |
| `pnpm test` | 单元测试 |
| `bash scripts/deploy-to-test-host.sh --dry-run` | 预览并检查到 `192.168.1.9` 的同步差异 |
| `bash scripts/deploy-to-test-host.sh` | 同步 `Memind / memind_adm / Plaza` 到测试机 |

## 通过 rsync 发布到测试机（推荐）

目标机路径（你给的基线）：

- `/Users/john/PycharmProjects/test/test-memind`
- `/Users/john/PycharmProjects/test/test-memindadm`
- `/Users/john/PycharmProjects/test/test-memindplaza`

执行：

```bash
cd /Users/john/Project/Memind
bash scripts/deploy-to-test-host.sh --dry-run
bash scripts/deploy-to-test-host.sh
```

说明：

- 这是“仅源码同步”流程，不会包含 goose 相关服务
- 默认会同步三个目录（`--only-memind` / `--only-adm` / `--only-plaza` 可单独操作）
- `--skip-delete` 可避免远端删除未在本次排除列表中的文件
- 同步后仍需按你们现网启动方式重启对应服务

## 文档

- [本地开发（test.*.tkmind.cn）](docs/local-dev.md)
- [Memind 小白使用手册](docs/memind-beginner-guide.md)
- [生产更新发布指南](docs/release-deploy.md)
- [生产 / 测试 / 预览隔离规程](docs/service-isolation-runbook.md)
- [Plaza 入口与发布](docs/plaza-local.md)
- [gadm 入口与发布](docs/gadm-local.md)
