Files
yovision/Sense/README.md
T

2.9 KiB

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 项目目录直接启动交付包:

start_sense.bat
start_sense.bat demo

该入口只负责定位并调用包内 start-sense.bat;生产配置、迁移和 MediaMTX 编排仍由交付包处理。交付包不存在时,入口会提示先运行 scripts\build\build-windows.bat,不会自动构建或启动开发服务。

后端:

cd Sense/server
go test ./...
go vet ./...
go build ./...

前端:

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 密钥,然后显式传入:

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 的本地开发与验证页为准。