Files
managed-portal/README.md
2026-04-27 10:08:36 +08:00

107 lines
3.1 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.

# Managed Portal 管理端
`managed-portal` 是从原 `video_recognition_local` 项目中拆出的独立管理端,负责管理“被管理服务”和“网页设备”两类能力。它不依赖原 `3000` 端口主项目运行,默认以前端 `13000` 端口对外提供入口,后端默认监听 `9080`
## 功能范围
- 被管理服务查看服务列表、服务详情、容器状态、RTSP 配置、重启容器、结果摘要、结果文件预览和下载
- 网页设备:扫描本机所在网段的 80 端口网页设备,生成代理访问地址和直连转发地址
- 子服务源码:已内置 `store_dwell_alert``people_flow_project` 两个子项目源码
## 目录结构
```text
managed-portal/
├── cmd/managed-portal/ # Go 后端入口
├── internal/ # Go 后端模块
├── web/ # Vue3 + Element Plus 前端
├── managed/ # 被管理子服务源码
│ ├── store_dwell_alert/
│ └── people_flow_project/
├── deploy/ # Docker Compose 部署文件
├── managed_services.yaml # 被管理服务注册表
└── Dockerfile # 门户后端镜像
```
## 默认端口
- 门户后端:`9080`
- 门户前端:`13000`
- `store-dwell-alert` 子服务 API`18081`
- `people-flow-project` 子服务 API`18082`
后端端口可通过环境变量覆盖:
```bash
MANAGED_PORTAL_HTTP_ADDR=:9080
```
## 本机开发
后端:
```bash
go test ./...
go run ./cmd/managed-portal
```
前端:
```bash
cd web
pnpm install
pnpm dev
pnpm build
```
本机开发时,前端默认会把 `/api``/proxy` 代理到 `http://localhost:9080`。如果后端用其他端口启动,可以覆盖:
```bash
VITE_API_PROXY_TARGET=http://127.0.0.1:9080 pnpm dev --host 127.0.0.1 --port 13000
```
## Docker 部署
完整独立栈包含四个服务:
- `managed-portal`
- `managed-portal-web`
- `store-dwell-alert`
- `people-flow-project`
启动:
```bash
cd deploy
docker compose --env-file managed-portal.env up -d --build
```
访问:
```text
http://<服务器IP>:13000/
```
## 模型权重
子服务镜像构建前需要以下权重文件:
- `managed/store_dwell_alert/weights/yolo11n.pt`
- `managed/people_flow_project/weights/yolo11n.pt`
- `managed/people_flow_project/weights/deepface/age_model_weights.h5`
- `managed/people_flow_project/weights/deepface/gender_model_weights.h5`
- `managed/people_flow_project/weights/deepface/retinaface.h5`
这些权重文件体积较大,默认被子项目 `.gitignore` 忽略,不会随 Git 提交上传。部署机器上需要提前放到对应路径或通过制品仓库、对象存储、Git LFS 等方式分发。
## 被管理服务注册表
`managed_services.yaml` 描述门户要管理的子服务。Docker Compose 部署时,默认通过容器 DNS 访问:
```yaml
api_base_url: http://store-dwell-alert:18081
api_base_url: http://people-flow-project:18082
```
如果改成本机进程方式运行子服务,可以把地址调整为 `http://127.0.0.1:18081``http://127.0.0.1:18082`