交付包补充解压内容双存档:README/截图x12/录屏/文档,更新登记与.gitignore放行mp4
@@ -7,3 +7,5 @@
|
|||||||
!交付包/
|
!交付包/
|
||||||
!交付包/**/
|
!交付包/**/
|
||||||
!交付包/**/*.zip
|
!交付包/**/*.zip
|
||||||
|
# 放行正式交付目录中解压存档的录屏素材
|
||||||
|
!交付包/**/*.mp4
|
||||||
|
|||||||
@@ -22,13 +22,13 @@
|
|||||||
|
|
||||||
- 人类可读:[`交付登记.md`](./交付登记.md)
|
- 人类可读:[`交付登记.md`](./交付登记.md)
|
||||||
- 机器可读:[`registry.json`](./registry.json)
|
- 机器可读:[`registry.json`](./registry.json)
|
||||||
- 交付包存档:[`交付包/`](./交付包/)(zip + 交付清单 + sidecar 元数据,含 SHA256)
|
- 交付包存档:[`交付包/`](./交付包/)(**zip 压缩包 + 同名解压目录双存档**、交付清单、sidecar 元数据,含 SHA256)
|
||||||
|
|
||||||
当前已登记:
|
当前已登记:
|
||||||
|
|
||||||
| 项目 | 交付包 | Git | 提交 |
|
| 项目 | 交付包 | Git | 提交 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| 智慧停车综合管理平台 | [smart-parking-delivery-20261010.zip](./交付包/smart-parking-delivery-20261010.zip)(29.62 MB) | [depei/smart-parking-platform](https://code.xinmi.cloud/depei/smart-parking-platform) | `3c99299` |
|
| 智慧停车综合管理平台 | [smart-parking-delivery-20261010.zip](./交付包/smart-parking-delivery-20261010.zip)(29.62 MB)+[解压目录](./交付包/smart-parking-delivery-20261010/)(28 文件 / 29.68 MB) | [depei/smart-parking-platform](https://code.xinmi.cloud/depei/smart-parking-platform) | `3c99299` |
|
||||||
|
|
||||||
## 引用的技能与规范
|
## 引用的技能与规范
|
||||||
|
|
||||||
@@ -80,8 +80,12 @@
|
|||||||
└── 归档清单.md # 百度网盘链接、提取码、有效期、目录结构
|
└── 归档清单.md # 百度网盘链接、提取码、有效期、目录结构
|
||||||
```
|
```
|
||||||
|
|
||||||
> 各节点目录内都有一份说明 `README.md`(交付时可删除或保留),描述该节点的内容与要求;
|
> 各节点目录内都有一份说明 `README.md`(交付时可删除或保留),描述该节点的内容与要求。
|
||||||
> 二进制产物(zip/mp4/ts/m3u8)已通过 [.gitignore](./.gitignore) 排除,本仓库只承载结构与规范。
|
>
|
||||||
|
> **真实交付的存档策略(压缩包 + 解压内容双存档)**:正式交付时,既把 zip 压缩包放入
|
||||||
|
> `交付包/`,也把**同名解压目录**一并入库(README、截图、录屏 mp4、文档),便于整包下载的同时
|
||||||
|
> 直接在线浏览与增量检索。为此 [.gitignore](./.gitignore) 对 `交付包/**` 下的 zip / mp4 显式放行;
|
||||||
|
> `交付包模板/` 中的二进制产物仍被排除,模板库只承载结构与规范。
|
||||||
|
|
||||||
## 七项交付物对照
|
## 七项交付物对照
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,11 @@
|
|||||||
"status": "healthy"
|
"status": "healthy"
|
||||||
},
|
},
|
||||||
"manifest": "交付包/smart-parking-交付清单.md",
|
"manifest": "交付包/smart-parking-交付清单.md",
|
||||||
"sidecar": "交付包/smart-parking-delivery-20261010.json"
|
"sidecar": "交付包/smart-parking-delivery-20261010.json",
|
||||||
|
"extractedDir": "交付包/smart-parking-delivery-20261010",
|
||||||
|
"extractedFileCount": 28,
|
||||||
|
"extractedSizeMB": 29.68,
|
||||||
|
"archiveForm": "zip + 解压内容双存档"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,32 @@
|
|||||||
# 交付包存档
|
# 交付包存档
|
||||||
|
|
||||||
本目录保存各项目的**正式交付压缩包**及对应清单、校验元数据(sidecar JSON)。
|
本目录保存各项目的**正式交付压缩包**、对应清单、校验元数据(sidecar JSON),
|
||||||
|
以及压缩包的**解压内容**(可直接在仓库内浏览 README、截图、录屏与文档,无需下载解压)。
|
||||||
交付登记总索引见根目录 [`交付登记.md`](../交付登记.md) 与 [`registry.json`](../registry.json)。
|
交付登记总索引见根目录 [`交付登记.md`](../交付登记.md) 与 [`registry.json`](../registry.json)。
|
||||||
|
|
||||||
## 文件
|
## 智慧停车综合管理平台(2026-10-10)
|
||||||
|
|
||||||
| 文件 | 说明 |
|
| 路径 | 形式 | 说明 |
|
||||||
| --- | --- |
|
| --- | --- | --- |
|
||||||
| `smart-parking-delivery-20261010.zip` | 智慧停车综合管理平台正式交付包(约 29.62 MB) |
|
| `smart-parking-delivery-20261010.zip` | 压缩包 | 正式交付包,约 29.62 MB |
|
||||||
| `smart-parking-交付清单.md` | 交付物对照、素材明细、默认账号、验收记录 |
|
| [`smart-parking-delivery-20261010/`](./smart-parking-delivery-20261010/) | 解压内容 | 与 zip 内容一致的解压文件树,28 个文件,约 29.68 MB |
|
||||||
| `smart-parking-delivery-20261010.json` | 机器可读元数据:Git 地址、锁定提交、SHA256、部署信息 |
|
| `smart-parking-交付清单.md` | 清单 | 交付物对照、素材明细、默认账号、验收记录 |
|
||||||
|
| `smart-parking-delivery-20261010.json` | 元数据 | 机器可读:Git 地址、锁定提交、SHA256、部署信息、解压目录 |
|
||||||
|
|
||||||
|
### 解压内容结构
|
||||||
|
|
||||||
|
```text
|
||||||
|
smart-parking-delivery-20261010/
|
||||||
|
├── README.md # 标准化商用 README(12 项)
|
||||||
|
├── docs/screenshots/ # README 相对路径引用的配图 x12
|
||||||
|
├── 截图/界面截图/ # 改造后产品界面高清截图 x12
|
||||||
|
├── 录屏/full-feature-demo.mp4 # 全功能操作演示录屏(约 12.1 MB)
|
||||||
|
└── 文档/
|
||||||
|
├── 环境依赖清单.md
|
||||||
|
└── 部署注意事项.md
|
||||||
|
```
|
||||||
|
|
||||||
|
> 压缩包与解压目录**内容一致、双份存档**:zip 便于整包下载交付,解压目录便于在线浏览与增量检索。
|
||||||
|
>
|
||||||
> 校验:`Get-FileHash smart-parking-delivery-20261010.zip -Algorithm SHA256`
|
> 校验:`Get-FileHash smart-parking-delivery-20261010.zip -Algorithm SHA256`
|
||||||
> 应等于 `d56fd66ea69d41628b9092003a7db50c4275596c7f50dc57a08f8598ed83eda1`。
|
> 应等于 `d56fd66ea69d41628b9092003a7db50c4275596c7f50dc57a08f8598ed83eda1`。
|
||||||
|
|||||||
@@ -26,5 +26,9 @@
|
|||||||
"环境依赖清单",
|
"环境依赖清单",
|
||||||
"部署注意事项",
|
"部署注意事项",
|
||||||
"Docker部署"
|
"Docker部署"
|
||||||
]
|
],
|
||||||
}
|
"extractedDir": "交付包/smart-parking-delivery-20261010",
|
||||||
|
"extractedFileCount": 28,
|
||||||
|
"extractedSizeBytes": 31122329,
|
||||||
|
"archiveForm": "zip + 解压内容双存档(可直接在仓库浏览 README/截图/录屏/文档)"
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,333 @@
|
|||||||
|
# 智慧停车综合管理平台(Smart Parking Platform)
|
||||||
|
|
||||||
|
> **一句话简介**:一套集园区态势感知、视频监控大屏、异常智能报警、停车运营管理与 AI 智能助手于一体的、可私有化 Docker 一键部署的智慧停车综合管理平台。
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="docs/screenshots/login.png" width="720" alt="平台登录页"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## 目录
|
||||||
|
|
||||||
|
- [一、详细功能描述](#一详细功能描述)
|
||||||
|
- [二、解决的行业痛点](#二解决的行业痛点)
|
||||||
|
- [三、核心技术优势](#三核心技术优势)
|
||||||
|
- [四、应用场景](#四应用场景)
|
||||||
|
- [五、适配目标行业与人群](#五适配目标行业与人群)
|
||||||
|
- [六、商业应用价值](#六商业应用价值)
|
||||||
|
- [七、技术架构](#七技术架构)
|
||||||
|
- [八、环境前置依赖](#八环境前置依赖)
|
||||||
|
- [九、快速开始](#九快速开始)
|
||||||
|
- [十、完整安装部署教程](#十完整安装部署教程)
|
||||||
|
- [十一、AI 对话(TokenFree)使用教程](#十一ai-对话tokenfree使用教程)
|
||||||
|
- [十二、版权与使用说明](#十二版权与使用说明)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、详细功能描述
|
||||||
|
|
||||||
|
平台围绕“一张屏、一张图、一个大脑”设计,功能逐条对应实拍截图:
|
||||||
|
|
||||||
|
### 1. 平台登录与权限体系
|
||||||
|
|
||||||
|
- 玻璃拟态登录页、动态渐变背景、发光输入框,支持账号密码登录与 JWT 鉴权。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 1.1 项目概述大屏
|
||||||
|
|
||||||
|
平台内置炫酷的**项目概述大屏**:顶部动态标题与实时时钟,五大核心指标卡片(摄像头总数、设备在线率、
|
||||||
|
报警事件、报警规则、系统用户),近 7 天报警趋势折线图、设备状态环形分布图及最新报警实时滚动,
|
||||||
|
全部数据来自后端实时聚合,10 秒自动刷新,适配大屏投放。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 2. 园区态势总览
|
||||||
|
|
||||||
|
- 园区停车核心指标看板:总车位、占用/空闲、异常事件、设备在线率;
|
||||||
|
- 基于本地地图的摄像头点位分布与状态渲染,支持点位点击联动。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 3. 视频监控大屏
|
||||||
|
|
||||||
|
- 科技感数据大屏:多路摄像头实时画面、轮播、实时指标与报警滚动;
|
||||||
|
- 支持 HLS(hls.js)低延迟直播,适配主流分辨率。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 4. 异常报警事件管理
|
||||||
|
|
||||||
|
- 报警事件列表、级别筛选、处置状态流转,事件全程可追溯。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 5. AI 智能对话助手
|
||||||
|
|
||||||
|
- 标准 Chat Completions 流式对话,默认接入 TokenFree 的 `kimi-k2.6` 模型;
|
||||||
|
- 支持停车运营、设备状态、异常分析等问答,接口配置抽屉内置使用教程。
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
### 6. 个人中心
|
||||||
|
|
||||||
|
- 用户信息维护、密码修改等自助功能。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 7. 系统管理(管理员)
|
||||||
|
|
||||||
|
- **园区地图管理**:自定义地图数据上传、切分与点位编辑。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- **摄像头管理**:摄像头档案、RTSP/RTMP 拉流地址、点位与启用状态维护。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- **报警规则管理**:按摄像头配置检测目标、触发条件与规则启停。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- **用户管理**:账号、角色(管理员/操作员)与状态管理。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、解决的行业痛点
|
||||||
|
|
||||||
|
1. **系统割裂、信息孤岛**:传统监控、停车、报警系统各自独立,缺乏统一态势视图,运维人员需多平台切换。
|
||||||
|
2. **依赖人工值守、响应滞后**:传统监控需人工 7×24 盯屏,异常发现晚、研判慢、上报链路长。
|
||||||
|
3. **摄像头位置不可视**:不存储园区 GIS 地图与摄像头精确位置,调取和排查效率低。
|
||||||
|
4. **部署复杂、落地成本高**:传统方案环境依赖多、部署周期长,中小企业难以私有化落地。
|
||||||
|
5. **数据不沉淀、运营无依据**:缺乏停车与设备数据沉淀,管理决策缺少数据支撑。
|
||||||
|
|
||||||
|
平台以“统一面板 + 智能检测 + 一键私有化部署”系统性解决上述问题。
|
||||||
|
|
||||||
|
## 三、核心技术优势
|
||||||
|
|
||||||
|
- **全栈现代技术架构**:Umi 4 + React 18 + Ant Design 5 前端,NestJS + TypeScript 后端,模块清晰、可维护性强。
|
||||||
|
- **智能视频分析**:基于 YOLO 深度学习的实时目标检测(监控算法端),异常自动识别并联动报警。
|
||||||
|
- **低延迟流媒体**:RTMP 收流 + Nginx-RTMP/FFmpeg 转 HLS 分发,兼顾实时性与浏览器兼容性。
|
||||||
|
- **本地地图引擎**:Leaflet + 地图瓦片本地化切分与存储,支持自定义园区地图。
|
||||||
|
- **私有化一键交付**:Docker Compose 编排前后端、数据库、媒体服务,一条命令完成部署。
|
||||||
|
- **统一暗色面板设计体系**:玻璃拟态 + 霓虹光效 + 响应式布局,视觉统一、辨识度高。
|
||||||
|
- **AI 能力可插拔**:支持标准 Chat Completions 协议,可按需切换 TokenFree 上的 Kimi / Qwen / Claude 等模型。
|
||||||
|
|
||||||
|
## 四、应用场景
|
||||||
|
|
||||||
|
- 产业园区、写字楼、商业综合体的停车场与周界监控;
|
||||||
|
- 校园、医院、政务园区的车辆与人员安全管理;
|
||||||
|
- 物流园、工厂厂区的车辆出入与作业区域异常监测;
|
||||||
|
- 物业/安保指挥中心的集中监控与接处警;
|
||||||
|
- 需要私有化部署、数据不出内网的安防与停车运营场景。
|
||||||
|
|
||||||
|
## 五、适配目标行业与人群
|
||||||
|
|
||||||
|
| 维度 | 说明 |
|
||||||
|
| --- | --- |
|
||||||
|
| 目标行业 | 智慧物业、智慧园区、智慧交通、安防安保、校园/医院后勤、工厂物流 |
|
||||||
|
| 管理决策者 | 需要全局态势、数据报表与运营决策依据的管理者 |
|
||||||
|
| 一线运维/安保 | 需要视频监控、报警处置、设备巡检与快速定位的操作人员 |
|
||||||
|
| IT/集成服务商 | 需要可快速私有化交付、二次集成与品牌化部署的集成商 |
|
||||||
|
|
||||||
|
## 六、商业应用价值
|
||||||
|
|
||||||
|
- **降本增效**:自动化异常检测替代部分人工盯屏,降低人力成本、缩短响应时间。
|
||||||
|
- **私有化资产沉淀**:数据与平台完全部署在客户侧,形成可持续运营的数字化资产。
|
||||||
|
- **快速复制交付**:标准化 Docker 交付包支持多项目快速复制,显著降低项目实施成本。
|
||||||
|
- **可扩展增值空间**:可在统一平台上扩展计费、引导、数据分析等模块,形成增值收入。
|
||||||
|
- **品牌化交付能力**:支持 Logo、品牌与主题定制,便于服务商品牌化对外输出。
|
||||||
|
|
||||||
|
## 七、技术架构
|
||||||
|
|
||||||
|
### 7.1 总体架构
|
||||||
|
|
||||||
|
平台划分为 **前端、后端、监控算法端、RTMP 媒体服务器、地图瓦片服务、关系型数据库** 六大部分:
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph Client[浏览器端]
|
||||||
|
UI[Umi4 + React18 + Antd5 玻璃面板]
|
||||||
|
end
|
||||||
|
subgraph Server[服务端]
|
||||||
|
API[NestJS 后端 REST + WebSocket]
|
||||||
|
DB[(MySQL 8.0)]
|
||||||
|
RTMP[RTMP/HLS 媒体服务]
|
||||||
|
TILE[地图瓦片服务]
|
||||||
|
end
|
||||||
|
subgraph AI[监控算法端]
|
||||||
|
YOLO[YOLO 实时目标检测]
|
||||||
|
end
|
||||||
|
CAM[摄像头 RTSP/RTMP 流] --> YOLO
|
||||||
|
YOLO -->|FFmpeg 推流| RTMP
|
||||||
|
YOLO <-->|WebSocket 配置/事件上报| API
|
||||||
|
UI -->|HTTPS / HLS| API
|
||||||
|
UI -->|HLS 直播| RTMP
|
||||||
|
UI -->|瓦片请求| TILE
|
||||||
|
API --> DB
|
||||||
|
```
|
||||||
|
|
||||||
|
- **前端**:React + Umi 4,Leaflet 渲染地图,hls.js 播放直播;
|
||||||
|
- **后端**:NestJS(TypeScript),负责业务逻辑、REST API、WebSocket、数据库 IO 与算法端鉴权;
|
||||||
|
- **监控算法端**:Python + YOLO,拉流、检测、推流,并通过 WebSocket 上报事件;
|
||||||
|
- **媒体服务**:RTMP 收流并转 HLS 提供浏览器直播;
|
||||||
|
- **数据层**:MySQL 8.0 持久化用户、设备、规则、报警、地图数据。
|
||||||
|
|
||||||
|
原始架构图(项目早期版本)保留于 `docs/tech-framework.png`、`docs/deployment-framework.png`。
|
||||||
|
|
||||||
|
### 7.2 端口规划(默认)
|
||||||
|
|
||||||
|
| 服务 | 容器端口 | 宿主机默认端口 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| Web 应用(HTTP/HLS) | 80 | 4010 |
|
||||||
|
| MySQL | 3306 | 4012 |
|
||||||
|
| RTMP | 1935 | 4015 |
|
||||||
|
|
||||||
|
> 端口可通过 `.env` 文件调整,详见部署章节。
|
||||||
|
|
||||||
|
## 八、环境前置依赖
|
||||||
|
|
||||||
|
### 8.1 硬件建议
|
||||||
|
|
||||||
|
| 规模 | CPU | 内存 | 磁盘 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 测试/小规模(≤16 路) | 4 核 | 8 GB | 40 GB SSD |
|
||||||
|
| 生产/中规模(16–64 路) | 8 核+ | 16 GB+ | 100 GB+ SSD |
|
||||||
|
|
||||||
|
> 监控算法端(YOLO)建议独立部署或配备 GPU 以获得更好性能。
|
||||||
|
|
||||||
|
### 8.2 软件依赖
|
||||||
|
|
||||||
|
- **Docker Engine** 20.10+
|
||||||
|
- **Docker Compose** v2+
|
||||||
|
- 开放端口:应用端口(默认 4010)、RTMP(默认 4015);数据库端口建议仅内网开放
|
||||||
|
- 现代浏览器:Chrome / Edge / Firefox 最新版本
|
||||||
|
- (可选)AI 对话:在 [TokenFree](https://www.tokenfree.com/) 申请 API Key
|
||||||
|
|
||||||
|
完整依赖与注意事项见交付包内「文档」目录下的《环境依赖清单》与《部署注意事项》。
|
||||||
|
|
||||||
|
## 九、快速开始
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 进入项目目录
|
||||||
|
cd smart-parking-platform
|
||||||
|
|
||||||
|
# 2.(可选)按需修改端口与数据库口令
|
||||||
|
# 复制并编辑环境变量文件
|
||||||
|
cp .env.example .env # Windows: copy .env.example .env
|
||||||
|
|
||||||
|
# 3. 一键启动全部服务
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
# 4. 浏览器访问
|
||||||
|
# http://localhost:4010
|
||||||
|
```
|
||||||
|
|
||||||
|
默认账号(见后端初始化逻辑 `backend/src/database-seeder.ts`):
|
||||||
|
|
||||||
|
| 角色 | 账号 | 密码 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 管理员 | `admin` | `admin123` |
|
||||||
|
| 操作员 | `operator` | `123456` |
|
||||||
|
|
||||||
|
> 首次登录后请及时修改默认密码。
|
||||||
|
|
||||||
|
## 十、完整安装部署教程
|
||||||
|
|
||||||
|
### 10.1 Docker 一键部署(推荐)
|
||||||
|
|
||||||
|
1. 安装并启动 Docker(Windows 建议使用 Docker Desktop,Linux 使用官方源安装 Docker Engine + Compose 插件)。
|
||||||
|
2. 获取项目完整源码(含 `docker-compose.yml`、`.env.example`、`front-backend.Dockerfile`)。
|
||||||
|
3. 根据现场环境调整 `.env`,关键变量:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
APP_PORT=4010 # Web 访问端口
|
||||||
|
MYSQL_PORT=4012 # MySQL 宿主机端口
|
||||||
|
RTMP_PORT=4015 # RTMP 推流端口
|
||||||
|
MYSQL_ROOT_PASSWORD=<修改为强口令>
|
||||||
|
```
|
||||||
|
|
||||||
|
4. 执行 `docker compose up -d`,首次会自动构建镜像并初始化数据库、导入示例数据。
|
||||||
|
5. 使用 `docker compose ps` 查看状态,等待应用容器变为 `healthy`。
|
||||||
|
6. 浏览器访问 `http://<服务器IP>:<APP_PORT>`,使用默认账号登录。
|
||||||
|
|
||||||
|
### 10.2 本地开发/手动部署(无 Docker 时)
|
||||||
|
|
||||||
|
**后端(NestJS)**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd backend
|
||||||
|
npm install
|
||||||
|
# 配置数据库连接(环境变量或配置文件)
|
||||||
|
npm run start:dev
|
||||||
|
```
|
||||||
|
|
||||||
|
**前端(Umi 4)**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd frontend
|
||||||
|
npm install
|
||||||
|
# 开发启动
|
||||||
|
npm run dev
|
||||||
|
# 生产构建(如本地 pnpm 与 lockfile 版本冲突,可直接使用 umi)
|
||||||
|
# ./node_modules/.bin/umi build
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
**监控算法端(Python + YOLO)**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ai-end
|
||||||
|
pip install -r requirements.txt
|
||||||
|
# 配置后端地址、RTMP 地址、管理员账号
|
||||||
|
python main.py
|
||||||
|
```
|
||||||
|
|
||||||
|
算法端基本流程:建立 WebSocket 连接 → 后端鉴权并下发摄像头配置与拉流地址 → 每个摄像头独立进程完成 FFmpeg 推流与规则检测 → 异常实时上报。
|
||||||
|
|
||||||
|
### 10.3 运维与排障
|
||||||
|
|
||||||
|
- 查看日志:`docker compose logs -f app`
|
||||||
|
- 重启服务:`docker compose restart app`
|
||||||
|
- 停止并清理:`docker compose down`(数据保留在数据卷,加 `-v` 会同时删除数据卷,请谨慎)
|
||||||
|
- 直播无画面:检查摄像头源是否可达、RTMP 端口是否放通、浏览器是否允许混合内容(建议统一走 HTTP/HTTPS 同源)。
|
||||||
|
|
||||||
|
## 十一、AI 对话(TokenFree)使用教程
|
||||||
|
|
||||||
|
平台「AI 对话」页面默认接入 [TokenFree](https://www.tokenfree.com/)——统一 AI API 网关,支持标准 Chat Completions 协议,默认模型 `kimi-k2.6`。
|
||||||
|
|
||||||
|
| 配置项 | 默认值 |
|
||||||
|
| --- | --- |
|
||||||
|
| API Base URL | `https://www.tokenfree.com/v1` |
|
||||||
|
| 默认模型 | `kimi-k2.6` |
|
||||||
|
| 协议 | 标准 Chat Completions(流式输出 / Models 列表) |
|
||||||
|
|
||||||
|
使用步骤:
|
||||||
|
|
||||||
|
1. 打开 <https://www.tokenfree.com/>,注册账号并完成邮箱验证后登录;
|
||||||
|
2. 进入控制台「令牌 / API Keys」页面,点击「添加令牌」,复制生成的 Key(`sk-` 开头);
|
||||||
|
3. 登录本系统,进入「AI 对话」页面,点击右上角齿轮(接口配置);
|
||||||
|
4. 将 API Key 粘贴到表单(接口地址、模型已预填,一般无需修改);
|
||||||
|
5. 点击「测试连接」验证通过后「保存」,即可开始流式对话。
|
||||||
|
|
||||||
|
说明:
|
||||||
|
|
||||||
|
- API Key 仅保存在浏览器本地(localStorage),不会上传到本系统后端;
|
||||||
|
- 可在 Model 中填写 TokenFree 支持的其他模型(如 Qwen、Claude 等);
|
||||||
|
- 切换服务商后本地配置会自动升级版本,旧缓存不会污染新默认值。
|
||||||
|
|
||||||
|
## 十二、版权与使用说明
|
||||||
|
|
||||||
|
- 本平台的界面设计、面板风格、部署脚本、AI 对接及项目文档由交付团队完成,其使用权与商用权以合同及授权文件为准。
|
||||||
|
- 未经书面许可,不得对本平台进行复制、反向工程、转售、再次分发或用于授权之外的用途。
|
||||||
|
- 平台所接入的第三方服务(如 TokenFree)受其各自服务条款与模型许可约束,使用时请同时遵守对应条款。
|
||||||
|
- 请在遵守适用法律法规的前提下使用本平台。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 相关链接
|
||||||
|
|
||||||
|
- [开源社区 GitCC](https://www.gitcc.com/)
|
||||||
|
- [GCC AI Coding](https://www.gitvv.com/)
|
||||||
|
After Width: | Height: | Size: 683 KiB |
|
After Width: | Height: | Size: 526 KiB |
|
After Width: | Height: | Size: 515 KiB |
|
After Width: | Height: | Size: 545 KiB |
|
After Width: | Height: | Size: 707 KiB |
|
After Width: | Height: | Size: 416 KiB |
|
After Width: | Height: | Size: 1012 KiB |
|
After Width: | Height: | Size: 804 KiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 866 KiB |
|
After Width: | Height: | Size: 683 KiB |
|
After Width: | Height: | Size: 544 KiB |
|
After Width: | Height: | Size: 683 KiB |
|
After Width: | Height: | Size: 526 KiB |
|
After Width: | Height: | Size: 515 KiB |
|
After Width: | Height: | Size: 545 KiB |
|
After Width: | Height: | Size: 707 KiB |
|
After Width: | Height: | Size: 416 KiB |
|
After Width: | Height: | Size: 1012 KiB |
|
After Width: | Height: | Size: 804 KiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 866 KiB |
|
After Width: | Height: | Size: 683 KiB |
|
After Width: | Height: | Size: 544 KiB |
@@ -0,0 +1,68 @@
|
|||||||
|
# 环境依赖清单
|
||||||
|
|
||||||
|
项目:智慧停车综合管理平台(Smart Parking Platform)
|
||||||
|
版本日期:2026-10-10
|
||||||
|
|
||||||
|
## 1. 基础运行环境
|
||||||
|
|
||||||
|
| 组件 | 版本要求 | 用途 | 备注 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| Docker Engine | 20.10+ | 容器运行时 | Linux 官方源 / Windows Docker Desktop |
|
||||||
|
| Docker Compose | v2.0+ | 多容器编排 | `docker compose` 子命令形式 |
|
||||||
|
| 操作系统 | Linux(内核 4.x+)/ Windows 10+ / macOS | 宿主机 | 生产推荐 Linux |
|
||||||
|
| 浏览器 | Chrome / Edge / Firefox 最新版 | 前端访问 | 需支持 HLS、ES2020 |
|
||||||
|
|
||||||
|
## 2. 容器化组件(由 docker-compose 自动拉取/构建,无需手动安装)
|
||||||
|
|
||||||
|
| 组件 | 版本 | 用途 | 默认宿主端口 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 前端(Umi4 静态资源) | 随构建 | Web 界面 | 4010 → 容器 80 |
|
||||||
|
| 后端(NestJS) | Node 运行时 | REST API + WebSocket | 同 4010(Nginx 反代) |
|
||||||
|
| MySQL | 8.0 | 业务数据库 | 4012 → 3306 |
|
||||||
|
| Nginx-RTMP / FFmpeg | - | RTMP 收流、HLS 分发 | 4015 → 1935 |
|
||||||
|
|
||||||
|
## 3. 本地开发依赖(非 Docker 手动部署时)
|
||||||
|
|
||||||
|
### 3.1 前端
|
||||||
|
|
||||||
|
- Node.js 16+(建议 18 LTS)
|
||||||
|
- 包管理器:npm / pnpm(注意 lockfile 版本匹配;如 pnpm 与 lockfile 冲突可直接使用本地 `node_modules/.bin/umi`)
|
||||||
|
- 关键依赖:Umi 4、React 18、Ant Design 5、Leaflet、hls.js
|
||||||
|
|
||||||
|
### 3.2 后端
|
||||||
|
|
||||||
|
- Node.js 16+(建议 18 LTS)
|
||||||
|
- 关键依赖:NestJS、TypeScript、MySQL 驱动、JWT、WebSocket(ws)
|
||||||
|
- 外部服务:可连接的 MySQL 8.0 实例
|
||||||
|
|
||||||
|
### 3.3 监控算法端(ai-end)
|
||||||
|
|
||||||
|
- Python 3.9+
|
||||||
|
- 关键依赖:Ultralytics YOLO、OpenCV、FFmpeg(系统二进制)、WebSocket 客户端
|
||||||
|
- 模型文件:`yolov8n.pt`(项目内已附带轻量版,可按需更换)
|
||||||
|
- 可选:NVIDIA GPU + CUDA 以加速推理
|
||||||
|
|
||||||
|
## 4. 网络与端口
|
||||||
|
|
||||||
|
| 端口 | 协议 | 方向 | 说明 |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 4010(可配置) | TCP/HTTP | 入站 | Web 访问、API、HLS |
|
||||||
|
| 4012(可配置) | TCP | 内部 | MySQL,建议不对公网开放 |
|
||||||
|
| 4015(可配置) | TCP | 入站 | RTMP 推流 |
|
||||||
|
| 摄像头源端口 | TCP/UDP | 出站 | 访问摄像头 RTSP/RTMP 源 |
|
||||||
|
|
||||||
|
## 5. AI 对话可选依赖
|
||||||
|
|
||||||
|
- [TokenFree](https://www.tokenfree.com/) 账号及 API Key(`sk-` 开头)
|
||||||
|
- 默认接口地址:`https://www.tokenfree.com/v1`
|
||||||
|
- 默认模型:`kimi-k2.6`
|
||||||
|
- 浏览器需能访问该接口地址(出网)
|
||||||
|
|
||||||
|
## 6. 默认账号(来源:backend/src/database-seeder.ts)
|
||||||
|
|
||||||
|
| 角色 | 账号 | 密码 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 管理员 | admin | admin123 |
|
||||||
|
| 操作员 | operator | 123456 |
|
||||||
|
|
||||||
|
> 交付上线前务必修改默认密码,并限制数据库端口暴露。
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
# 部署注意事项
|
||||||
|
|
||||||
|
项目:智慧停车综合管理平台
|
||||||
|
更新日期:2026-10-10
|
||||||
|
|
||||||
|
## 一、部署前检查
|
||||||
|
|
||||||
|
1. **Docker 可用性**:执行 `docker --version` 与 `docker compose version` 确认版本满足 20.10+ / Compose v2+;Linux 确保服务已启动(`systemctl status docker`)。
|
||||||
|
2. **端口占用**:启动前确认 `4010 / 4012 / 4015`(或自定义端口)未被占用:
|
||||||
|
- Windows:`netstat -ano | findstr :4010`
|
||||||
|
- Linux:`ss -lntp | grep -E '4010|4012|4015'`
|
||||||
|
3. **磁盘空间**:预留至少 10 GB 可用空间(镜像 + 数据卷 + 录屏/地图素材)。
|
||||||
|
4. **防火墙/安全组**:放通应用端口(4010)与 RTMP(4015);**数据库端口 4012 不要对公网开放**。
|
||||||
|
5. **时间同步**:生产服务器开启 NTP 时间同步,避免 JWT 与报警时间异常。
|
||||||
|
|
||||||
|
## 二、部署中注意事项
|
||||||
|
|
||||||
|
1. **环境变量**:复制 `.env.example` 为 `.env`,至少修改 MySQL root 口令;不要把含真实口令的 `.env` 提交到公共仓库(`.env` 已加入 `.gitignore`)。
|
||||||
|
2. **首次启动**:`docker compose up -d` 会构建镜像、初始化数据库并导入示例数据,耗时取决于网络与机器性能,请勿中断。
|
||||||
|
3. **健康判断**:使用 `docker compose ps`,应用容器状态为 `healthy` 后再访问;如长时间 `unhealthy`,用 `docker compose logs --tail=200 app` 排查。
|
||||||
|
4. **数据卷**:数据库数据保存在持久化数据卷中;执行 `docker compose down` 不删数据,**加 `-v` 参数会删除数据卷导致数据丢失,务必谨慎**。
|
||||||
|
|
||||||
|
## 三、混合内容 / HTTPS
|
||||||
|
|
||||||
|
1. 若前端通过 HTTPS 访问,页面内的 HLS 视频与 AI 接口也需为 HTTPS,否则浏览器会拦截混合内容。
|
||||||
|
2. TokenFree 接口本身为 HTTPS;自建/第三方媒体地址需保证与页面协议一致,或在反向代理统一 TLS 卸载。
|
||||||
|
3. 建议在 Nginx/网关层统一配置证书(如 Let's Encrypt)并反代应用与媒体服务。
|
||||||
|
|
||||||
|
## 四、直播与算法端
|
||||||
|
|
||||||
|
1. 摄像头 RTSP/RTMP 源必须从部署主机可达;建议先用 `ffmpeg -i <源地址>` 验证源流正常。
|
||||||
|
2. 算法端与后端通过 WebSocket 通信,需保证二者网络互通、管理员账号配置正确。
|
||||||
|
3. 多路视频或高分辨率场景建议算法端独立部署并使用 GPU;CPU 推理路数过多会导致卡顿与漏报。
|
||||||
|
4. RTMP/HLS 直播存在数秒延迟属正常(HLS 分片机制);如需更低延迟可调整分片时长或改用 WebRTC 方案(另行定制)。
|
||||||
|
|
||||||
|
## 五、浏览器兼容性
|
||||||
|
|
||||||
|
1. 推荐使用最新版 Chrome / Edge;平台依赖 ES2020、HLS、CSS backdrop-filter。
|
||||||
|
2. 部分老旧浏览器不支持玻璃模糊效果,会降级为半透明背景,不影响功能。
|
||||||
|
3. AI Key 等配置存于浏览器 localStorage,更换浏览器/清理缓存后需要重新配置。
|
||||||
|
|
||||||
|
## 六、升级与回滚
|
||||||
|
|
||||||
|
1. **升级**:备份数据卷 → 拉取/构建新镜像 → `docker compose up -d`;数据库结构如有变更需按迁移说明执行。
|
||||||
|
2. **回滚**:保留上一版本镜像 tag,异常时通过指定旧镜像 tag 重新启动;恢复升级前的数据卷备份。
|
||||||
|
3. 建议交付/升级前导出数据库备份:
|
||||||
|
`docker compose exec mysql mysqldump -uroot -p<口令> <数据库名> > backup.sql`
|
||||||
|
|
||||||
|
## 七、安全加固建议
|
||||||
|
|
||||||
|
1. 首次登录立即修改 admin/operator 默认密码。
|
||||||
|
2. 为数据库设置强口令并仅监听内网;生产环境关闭不必要的端口暴露。
|
||||||
|
3. 反向代理层开启访问日志、限流与超时配置;对外服务启用 HTTPS。
|
||||||
|
4. 定期更新 Docker、基础镜像与操作系统补丁。
|
||||||
|
|
||||||
|
## 八、常见问题速查
|
||||||
|
|
||||||
|
| 现象 | 排查方向 |
|
||||||
|
| --- | --- |
|
||||||
|
| 页面打不开 | 应用容器是否 healthy、端口/防火墙是否放通 |
|
||||||
|
| 登录失败 | 数据库是否初始化完成、账号是否被修改、时间是否同步 |
|
||||||
|
| 视频黑屏 | 摄像头源是否可达、RTMP 端口、混合内容策略、HLS 分片是否生成 |
|
||||||
|
| AI 无响应 | API Key 是否正确、接口地址是否可达、模型名是否被服务商支持 |
|
||||||
|
| 报警不触发 | 算法端是否在线、规则是否启用、检测目标/阈值是否合理 |
|
||||||
|
| 容器反复重启 | `docker compose logs app` 查看依赖(DB 未就绪/口令错误/端口冲突) |
|
||||||
@@ -4,13 +4,14 @@
|
|||||||
|
|
||||||
## 登记总表
|
## 登记总表
|
||||||
|
|
||||||
| 项目 | 交付日期 | 交付包 | Git 仓库 | 锁定提交 | 部署校验 |
|
| 项目 | 交付日期 | 交付包 | 解压内容 | Git 仓库 | 锁定提交 | 部署校验 |
|
||||||
| --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- | --- |
|
||||||
| 智慧停车综合管理平台 | 2026-10-10 | [`smart-parking-delivery-20261010.zip`](./交付包/smart-parking-delivery-20261010.zip)(29.62 MB) | [depei/smart-parking-platform](https://code.xinmi.cloud/depei/smart-parking-platform) | `3c99299` | docker-compose · http://localhost:4010/ · healthy |
|
| 智慧停车综合管理平台 | 2026-10-10 | [`smart-parking-delivery-20261010.zip`](./交付包/smart-parking-delivery-20261010.zip)(29.62 MB) | [`smart-parking-delivery-20261010/`](./交付包/smart-parking-delivery-20261010/)(28 个文件,29.68 MB) | [depei/smart-parking-platform](https://code.xinmi.cloud/depei/smart-parking-platform) | `3c99299` | docker-compose · http://localhost:4010/ · healthy |
|
||||||
|
|
||||||
## 智慧停车综合管理平台
|
## 智慧停车综合管理平台
|
||||||
|
|
||||||
- 交付包:[`交付包/smart-parking-delivery-20261010.zip`](./交付包/smart-parking-delivery-20261010.zip)
|
- 交付包(压缩包):[`交付包/smart-parking-delivery-20261010.zip`](./交付包/smart-parking-delivery-20261010.zip)
|
||||||
|
- 交付包(解压内容):[`交付包/smart-parking-delivery-20261010/`](./交付包/smart-parking-delivery-20261010/) —— README、截图 x12、录屏、文档,与 zip 一致,可直接在线浏览
|
||||||
- SHA256:`d56fd66ea69d41628b9092003a7db50c4275596c7f50dc57a08f8598ed83eda1`
|
- SHA256:`d56fd66ea69d41628b9092003a7db50c4275596c7f50dc57a08f8598ed83eda1`
|
||||||
- 交付清单:[`交付包/smart-parking-交付清单.md`](./交付包/smart-parking-交付清单.md)
|
- 交付清单:[`交付包/smart-parking-交付清单.md`](./交付包/smart-parking-交付清单.md)
|
||||||
- 主 Git 地址:<https://code.xinmi.cloud/depei/smart-parking-platform>(分支 `main`)
|
- 主 Git 地址:<https://code.xinmi.cloud/depei/smart-parking-platform>(分支 `main`)
|
||||||
@@ -22,6 +23,10 @@
|
|||||||
## 新增交付项目时
|
## 新增交付项目时
|
||||||
|
|
||||||
1. 把正式交付 zip 放入 `交付包/`,命名 `<key>-delivery-<YYYYMMDD>.zip`;
|
1. 把正式交付 zip 放入 `交付包/`,命名 `<key>-delivery-<YYYYMMDD>.zip`;
|
||||||
2. 同目录放置交付清单与 `<zip>.json` 元数据(Git 地址、提交、SHA256、部署信息);
|
2. **同时把 zip 的解压内容**放入同名目录 `交付包/<key>-delivery-<YYYYMMDD>/`,保持压缩包内根结构,做到「压缩包 + 解压内容」双存档;
|
||||||
3. 在本文件登记总表追加一行,并在 `registry.json` 的 `deliveries` 数组追加一项;
|
3. 同目录放置交付清单与 `<zip>.json` 元数据(Git 地址、提交、SHA256、部署信息、`extractedDir`);
|
||||||
4. 源码以子模块挂到 `项目源码/<key>` 并固定提交。
|
4. 在本文件登记总表追加一行,并在 `registry.json` 的 `deliveries` 数组追加一项;
|
||||||
|
5. 源码以子模块挂到 `项目源码/<key>` 并固定提交。
|
||||||
|
|
||||||
|
> 说明:仓库默认通过 `.gitignore` 排除 `*.mp4` 等构建产物,但已对 `交付包/**` 下的
|
||||||
|
> zip 与解压录屏添加例外,正式交付的压缩包与解压内容均会入库。
|
||||||
|
|||||||