2 KiB
2 KiB
Changelog
All notable changes to NextNVR will be documented in this file.
[0.2.1] — 2026-08-05
Changed
- Flat recording directory:
/mnt/recordings/{cam-name}/{YYYY-MM-DD-HH-MM}.mp4 - Per-segment FFmpeg: replaced segment muxer with
-t 300per-segment approach - Atomic file naming: in-progress recordings use
.part.mp4suffix, renamed on completion - Crash recovery:
.partfiles older than 1 hour auto-cleaned by retention loop - Cleaner skips
.part.mp4files (active recordings) - Cleaner prunes empty camera directories after purge
Added
- Playback presets: Today, Yesterday, Last 7 Days, Custom date range
/recordings/static file server for video playback- Recordings API filters by preset or custom date range
- 🔴 live badge for in-progress
.partfiles in playback UI
Removed
- Nested date subdirectories (replaced by flat per-camera structure)
- Complex FFmpeg segment muxer flags (
-f segment,-segment_time,-strftime)
[0.2.0] — 2026-08-05
Added
- FFmpeg stream recorder with zero-transcoding (
-c copy) stream-copy mode - 5-minute MP4 segment output to
/mnt/recordings/{cam_id}/{YYYY-MM-DD}/ - Per-camera goroutines with auto-reconnect on stream failure (5s delay)
- 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
Added
- Initial project scaffold and Go module
- YAML configuration (
config.yaml) with 8 camera stubs - Embedded single-binary distribution using Go
embed - HTTP API endpoints:
/api/cameras,/api/config,/api/scan,/api/status,/api/recordings - Responsive SPA with three tabs: Live Wall, Playback, Settings
- 4x2 CSS grid for live camera monitoring
- Focus/overlay mode with prev/next navigation and thumbnail strip
- ONVIF scan stub (IP range 192.168.1.201–209, skip 204)
- go2rtc child process manager with auto-restart
- Deployment script (
setup.sh) with systemd service generation