59 lines
2.9 KiB
Markdown
59 lines
2.9 KiB
Markdown
# Sense
|
|
|
|
Sense 是从项目冻结的 GoAdmin 后端与 go-admin-ui 前端源码独立派生的视频接入管理产品。后端保留 Cobra、Gin、GORM、Casbin、JWT 和迁移框架,前端保留 Vue、Router、Store、API、Layout、权限路由和通用管理组件。
|
|
|
|
## 工具链
|
|
|
|
- Go 1.26.5
|
|
- Node.js 22.22.1
|
|
- pnpm 9.15.1(建议通过 `corepack pnpm@9.15.1` 调用)
|
|
- PostgreSQL
|
|
|
|
完整上游来源见 `LICENSES/SOURCES.md`,版本事实来源为仓库根目录 `goadmin-baseline.json`。
|
|
|
|
## 本地验证入口
|
|
|
|
已使用 Windows 打包脚本生成 `Sense\dist\sense-windows-amd64` 后,可从 Sense 项目目录直接启动交付包:
|
|
|
|
```bat
|
|
start_sense.bat
|
|
start_sense.bat demo
|
|
```
|
|
|
|
该入口只负责定位并调用包内 `start-sense.bat`;生产配置、迁移和 MediaMTX 编排仍由交付包处理。交付包不存在时,入口会提示先运行 `scripts\build\build-windows.bat`,不会自动构建或启动开发服务。
|
|
|
|
后端:
|
|
|
|
```powershell
|
|
cd Sense/server
|
|
go test ./...
|
|
go vet ./...
|
|
go build ./...
|
|
```
|
|
|
|
前端:
|
|
|
|
```powershell
|
|
cd Sense/ui
|
|
corepack pnpm@9.15.1 install --frozen-lockfile
|
|
corepack pnpm@9.15.1 lint
|
|
corepack pnpm@9.15.1 test:unit
|
|
corepack pnpm@9.15.1 build:prod
|
|
```
|
|
|
|
## 安全配置
|
|
|
|
`server/config/settings.yml` 仅是无凭据模板。启动生产服务前,在仓库外复制该文件并填写 PostgreSQL 连接串和至少 32 个字符的随机 JWT 密钥,然后显式传入:
|
|
|
|
```powershell
|
|
go run . server -c C:\secure-path\sense-settings.yml
|
|
```
|
|
|
|
设备台账本身可以在不配置摄像头凭据的情况下使用。创建或更新 ONVIF/RTSP 凭据前,还必须在启动进程环境中设置 `SENSE_CREDENTIAL_KEY`:该值是随机 32 字节密钥的 Base64 编码,仅保存在仓库外。变量名模板见 `server/config/credential.env.example`;不要把真实值写入配置、脚本、日志或工单。密钥缺失或格式不正确时,Sense 会拒绝凭据写入,不会降级为明文存储。
|
|
|
|
使用 ONVIF 发现或手工接入前,还必须设置 `SENSE_ONVIF_DISCOVERY_IP` 和 `SENSE_ONVIF_ALLOWED_CIDRS`。前者只能是获准用于 WS-Discovery 的本机网卡地址;后者是获准访问的摄像头网段(多个 CIDR 用逗号分隔)。未配置时系统会给出可行动提示且不会扫描任意网卡;手工地址、Media XAddr 和 Stream URI 同样受该网段限制,并拒绝重定向或 URL 内凭据。
|
|
|
|
MediaMTX 保持独立二进制。配置 `SENSE_MEDIAMTX_BINARY`、`SENSE_MEDIAMTX_CONFIG` 和只允许回环地址的 `SENSE_MEDIAMTX_API`。Sense 只生成无摄像头凭据的基础配置;路径和凭据在运行时通过回环 Control API 下发。模板见 `server/config/mediamtx/mediamtx.yml.example`。
|
|
|
|
仓库不提供默认账号、默认密码或可用密钥。首位管理员通过受仓库外 `SENSE_BOOTSTRAP_TOKEN` 保护的一次性初始化接口创建,详细步骤以项目 Wiki 的本地开发与验证页为准。
|