69 lines
1.8 KiB
JSON
69 lines
1.8 KiB
JSON
{
|
|
"session_id": "2026-05-12_162235_video-surveillance-portal",
|
|
"created": "2026-05-12T16:22:35.809084",
|
|
"model": "deepseek-v4-pro",
|
|
"project": "video-surveillance-portal",
|
|
"status": "in-progress",
|
|
"tags": [
|
|
"cctv",
|
|
"webrtc",
|
|
"onvif",
|
|
"fastapi",
|
|
"anpr"
|
|
],
|
|
"summary": "Video surveillance portal: 4 Docker containers. ONVIF event polling, multi-channel alerts, ANPR via PlateRecognizer API, phone camera via WebRTC WHIP, live view grid, PTZ control, HTTPS for mobile.",
|
|
"prompts": [],
|
|
"key_decisions": [
|
|
"Skip local AI (Celeron N4000 too weak)",
|
|
"ONVIF PullPoint for events",
|
|
"PlateRecognizer Cloud API",
|
|
"Phone via WebRTC WHIP",
|
|
"HTTPS self-signed cert",
|
|
"SQLite instead of PostgreSQL",
|
|
"MediaMTX host network"
|
|
],
|
|
"pending": [
|
|
"Test with real ICSee ONVIF camera",
|
|
"Configure Twilio/SMTP/Telegram",
|
|
"Configure PlateRecognizer token",
|
|
"Test phone from Samsung S22"
|
|
],
|
|
"files_touched": [
|
|
"docker-compose.yml",
|
|
"Dockerfile",
|
|
"requirements.txt",
|
|
"Makefile",
|
|
"config/nginx.conf",
|
|
"config/mediamtx.yml",
|
|
"src/main.py",
|
|
"src/config.py",
|
|
"src/api/cameras.py",
|
|
"src/api/alerts.py",
|
|
"src/api/plates.py",
|
|
"src/api/streams.py",
|
|
"src/onvif_client/events.py",
|
|
"src/onvif_client/ptz.py",
|
|
"src/onvif_client/snapshot.py",
|
|
"src/alerts/dispatcher.py",
|
|
"src/alerts/emailer.py",
|
|
"src/alerts/sms.py",
|
|
"src/alerts/telegram.py",
|
|
"src/anpr/plate_client.py",
|
|
"src/recording/recorder.py",
|
|
"src/db/database.py",
|
|
"src/db/models.py",
|
|
"frontend/index.html"
|
|
],
|
|
"docker": {
|
|
"containers": [
|
|
"vsp-nginx",
|
|
"vsp-app",
|
|
"vsp-redis",
|
|
"vsp-mediamtx"
|
|
],
|
|
"ports": {
|
|
"http": 8081,
|
|
"https": 8444
|
|
}
|
|
}
|
|
} |