feat: initial commit

This commit is contained in:
nikola
2026-05-19 14:53:36 +02:00
commit 6536b5fa23
39 changed files with 2257 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
# 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
```json
{
"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.*