Phase 1 (Foundation): project skeleton, TOML config + Pydantic validation, MQTT bus wrapper, SQLite schema (9 tables), Click CLI, process supervisor. Phase 2 (Camera): RTSP capture via OpenCV, MOG2 motion detection with configurable sensitivity/zones, adaptive FPS recording (2fps idle/30fps motion) via FFmpeg subprocess, HLS live streaming, pre-motion ring buffer. Phase 3 (Web UI): Flask + Bootstrap 5 dark theme, 6 blueprints, Jinja2 templates (dashboard, kiosk 2x2 grid, events, sensors, recordings, settings), PWA with service worker + Web Push, full admin settings UI with config persistence. Remote Access: WireGuard tunnel configs, nginx reverse proxy with HLS caching + rate limiting, bandwidth-optimized remote HLS stream (426x240 @ 500kbps), DO droplet setup script, certbot TLS. 29 tests passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
51 lines
468 B
Plaintext
51 lines
468 B
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*.egg-info/
|
|
dist/
|
|
build/
|
|
.eggs/
|
|
*.egg
|
|
|
|
# Virtual environment
|
|
.venv/
|
|
venv/
|
|
env/
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
|
|
# Testing
|
|
.pytest_cache/
|
|
.coverage
|
|
htmlcov/
|
|
.mypy_cache/
|
|
|
|
# Runtime data
|
|
*.db
|
|
*.db-wal
|
|
*.db-shm
|
|
/var/
|
|
|
|
# Config backups
|
|
config/*.bak.*
|
|
|
|
# HLS segments (generated at runtime)
|
|
*.ts
|
|
*.m3u8
|
|
|
|
# Secrets (never commit)
|
|
*.key
|
|
*.pem
|
|
secrets/
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# WireGuard keys (generated per-host)
|
|
remote/wireguard/*.key
|