架构概览

┌─────────────────────────────────────────────────────────────────┐
│  Admin Web (React) — 站点 / 摄像头 / 规则 / 实时预览 / 报表       │
├─────────────────────────────────────────────────────────────────┤
│  VistaCast API (NestJS + Fastify)                                │
│  · REST:站点、摄像头、规则、报表、Webhook                        │
│  · WebSocket:实时事件、预览信令                                  │
│  · ONVIF Discovery                                               │
├─────────────────────────────────────────────────────────────────┤
│  AI Worker — 拉流 → 检测 → 结构化事件 → API                       │
├─────────────────────────────────────────────────────────────────┤
│  PostgreSQL — 租户、站点、摄像头、规则、事件、客流、人脸库        │
├─────────────────────────────────────────────────────────────────┤
│  第三方摄像头(ONVIF / RTSP)                                     │
└─────────────────────────────────────────────────────────────────┘

模块

模块 职责
sites 门店/仓库/厂区
cameras ONVIF 注册、状态
streams 预览与事件推送
rules 规则引擎
alerts 事件落库、去重、出站
analytics 客流快照与报表
integrations Webhook、MQTT、生态 API

事件数据流

摄像头 RTSP → AI Worker → 规则引擎 → AlertEvent
    → PostgreSQL / WebSocket / Webhook / MQTT

跨产品只交换版本化 AlertEvent / FootfallSnapshot schema,不默认交换原始视频流。

技术栈

选型
API NestJS + Fastify + TypeORM
数据库 PostgreSQL
摄像头 node-onvif / RTSP
实时 WebSocket
前端 Rsbuild + React
认证 @luminaryworks/auth-core

完整 spec:spec/architecture.md