chore: v0.4.0 — cleanup, changelog, version bump

This commit is contained in:
Claus Lohmar 2026-08-06 18:30:49 +01:00
parent cc972835b0
commit fbb40f4e26
2 changed files with 42 additions and 38 deletions

View file

@ -2,49 +2,53 @@
All notable changes to NextNVR will be documented in this file. All notable changes to NextNVR will be documented in this file.
## [0.2.2] — 2026-08-05 ## [0.4.0] — 2026-08-06
### Added ### Added
- User-friendly README.md with one-line install command - Two-port auth system: `:8080` with optional master login, `:8090` always-open viewer
- Auto-install dependencies in setup.sh (ffmpeg, git, Go 1.24.5) - Auth management card in Settings UI
- Colored terminal output during deployment - Add / remove cameras in Settings
- Preserves existing config.yaml on re-deployment - Collapsible advanced camera settings
- `remove.sh` for clean uninstall
## [0.2.1] — 2026-08-05
### Changed ### Changed
- **Flat recording directory**: `/mnt/recordings/{cam-name}/{YYYY-MM-DD-HH-MM}.mp4` - **Pivot to JSON config** — zero external Go dependencies
- **Per-segment FFmpeg**: replaced segment muxer with `-t 300` per-segment approach - Deploy script: greenfield vs update detection, no interactive prompts
- **Atomic file naming**: in-progress recordings use `.part.mp4` suffix, renamed on completion - Camera names auto-sanitized (spaces → underscores)
- **Crash recovery**: `.part` files older than 1 hour auto-cleaned by retention loop - Storage path in config only, deploy script no longer asks
- Cleaner skips `.part.mp4` files (active recordings) ### Fixed
- Cleaner prunes empty camera directories after purge - First-run wizard auto-loads Settings when no cameras configured
- Snapshot path resolution for clip thumbnails
- Timezone-aware playback presets (BST)
- XSS in clip cards (DOM-based rendering)
- Interval leak in live grid
- Credentials file permissions (0600)
- Data race on recorder process manager
## [0.3.0] — 2026-08-05
### Added ### Added
- Playback presets: Today, Yesterday, Last 7 Days, Custom date range - go2rtc integration for live streaming
- `/recordings/` static file server for video playback - Snapshots via go2rtc (1s interval, disk-based)
- Recordings API filters by preset or custom date range - Focus overlay with go2rtc WebRTC player
- 🔴 live badge for in-progress `.part` files in playback UI - ONVIF hybrid probe (TCP + SOAP)
### Removed - Playback presets: Today, Yesterday, Last 7 Days, Custom
- Nested date subdirectories (replaced by flat per-camera structure) - Per-minute archival snapshots for thumbnail browsing
- Complex FFmpeg segment muxer flags (`-f segment`, `-segment_time`, `-strftime`) ### Changed
- Flat recording directory: `{cam-name}/rec_*.mp4` + `snap_*.jpg`
- Per-segment FFmpeg with `.part.mp4` atomic rename
- go2rtc proxied through NextNVR to avoid mixed-content blocking
- 7-day retention default
## [0.2.0] — 2026-08-05 ## [0.2.0] — 2026-08-05
### Added ### Added
- FFmpeg stream recorder with zero-transcoding (`-c copy`) stream-copy mode - FFmpeg stream recorder with zero transcoding
- 5-minute MP4 segment output to `/mnt/recordings/{cam_id}/{YYYY-MM-DD}/` - Retention cleaner with hourly purge
- Per-camera goroutines with auto-reconnect on stream failure (5s delay) - Deployment script (now `deploy_nvr.sh`)
- Staggered camera startup (500ms between launches)
- Storage retention cleaner with configurable `retention_days`
- Hourly background purge of expired recordings
- Empty directory pruning after cleanup runs
## [0.1.0] — 2026-08-05 ## [0.1.0] — 2026-08-05
### Added ### Added
- Initial project scaffold and Go module - Initial project scaffold
- YAML configuration (`config.yaml`) with 8 camera stubs - YAML configuration with camera stubs
- Embedded single-binary distribution using Go `embed` - Embedded single-binary SPA
- HTTP API endpoints: `/api/cameras`, `/api/config`, `/api/scan`, `/api/status`, `/api/recordings` - HTTP API endpoints
- Responsive SPA with three tabs: Live Wall, Playback, Settings - Live Wall 4x2 grid with focus overlay
- 4x2 CSS grid for live camera monitoring - Playback browser
- Focus/overlay mode with prev/next navigation and thumbnail strip - ONVIF scan stub
- ONVIF scan stub (IP range 192.168.1.201209, skip 204)
- go2rtc child process manager with auto-restart
- Deployment script (`setup.sh`) with systemd service generation

View file

@ -1 +1 @@
0.2.2 0.4.0