Files
2026-05-19 14:53:36 +02:00

1.7 KiB

video-surveillance-portal — Session Handoff

Last Session: 2026-05-12_162235_video-surveillance-portal Model: deepseek-v4-pro Status: in-progress Updated: 2026-05-12T16:22:35.809084

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.

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 Tasks

  • 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
  }
}

Auto-generated from session 2026-05-12_162235_video-surveillance-portal. Run python3 .codex/save-session.py --handoff video-surveillance-portal to regenerate.