Files
memind/docs/local-dev.md
T
john 229805a070 Improve WeChat MP replies and ship MindSpace/H5 production updates.
Add WeChat service account routing with sync acks, connectivity tests, and context isolation; document deploy runbooks; and bundle related MindSpace, voice, Plaza, and server gateway changes for production rollout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 23:06:43 +08:00

76 lines
2.3 KiB
Markdown

# 本地开发
> 生产安全提醒:`g2.tkmind.cn` 当前使用本机 `8081`。普通开发预览必须走测试端口,不要直接在生产目录运行默认 `pnpm dev`。完整规程见 [生产 / 测试 / 预览隔离规程](./service-isolation-runbook.md)。
`pnpm dev` 启动后,用 **127.0.0.1 + 端口** 访问:
| 服务 | 地址 |
|------|------|
| 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 |
```bash
pnpm install
cp .env.example .env
PLAZA_APP_DIR=/path/to/plaza pnpm dev
pnpm open:local-test # 浏览器打开 H5
```
在生产机器上做预览时,请使用测试目录和测试端口:
```bash
cd /Users/john/Project/test/Memind
H5_PORT=18081 \
VITE_PORT=15173 \
ADMIN_PORT=18082 \
PLAZA_PORT=13001 \
OPS_PORT=13002 \
H5_PUBLIC_BASE_URL=http://127.0.0.1:15173 \
VITE_MINDSPACE_BASE=http://127.0.0.1:15173 \
pnpm dev
```
预览地址:`http://127.0.0.1:15173/?preview=mindspace`
## 环境变量
| 变量 | 默认 | 说明 |
|------|------|------|
| `H5_PORT` | 8081 | Portal / API |
| `VITE_PORT` | 5173 | MindSpace 前端 |
| `PLAZA_PORT` | 3001 | Plaza |
| `OPS_PORT` | 3002 | Ops SPA |
| `ADMIN_PORT` | 8082 | memind_adm |
| `H5_PUBLIC_BASE_URL` | http://127.0.0.1:5173 | 公开链接基址 |
| `PLAZA_APP_DIR` | ../tkmind_go/ui/plaza | Plaza 源码路径 |
Plaza 公网部署见 [plaza-local.md](./plaza-local.md)。
## 公众号 Agent 调试
服务号消息转发到专属 Agent 这条链路默认关闭,只有显式设置下面这些变量后才会启用:
- `H5_WECHAT_MP_ENABLED=1`
- `H5_WECHAT_MP_APP_ID`
- `H5_WECHAT_MP_APP_SECRET`
- `H5_WECHAT_MP_TOKEN`
服务号后台需要把服务器地址指向:
```text
{H5_PUBLIC_BASE_URL}/webhooks/wechat-mp/messages
```
当前版本只支持“明文模式”回调,不支持 `aes` 安全模式解密。要保证 H5 微信 OAuth 和公众号消息使用同一个服务号 `AppID`,这样消息里的 `openid` 才能直接命中已绑定用户。
如果要立即停用这版,不改代码也可以先把:
```bash
H5_WECHAT_MP_ENABLED=0
```
然后重启 `server.mjs`。这相当于运行时止血;如果确认整版不要,再按代码回撤处理。