50 lines
2.3 KiB
Markdown
50 lines
2.3 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to NextNVR will be documented in this file.
|
||
|
||
## [0.2.2] — 2026-08-05
|
||
### Added
|
||
- User-friendly README.md with one-line install command
|
||
- Auto-install dependencies in setup.sh (ffmpeg, git, Go 1.24.5)
|
||
- Colored terminal output during deployment
|
||
- Preserves existing config.yaml on re-deployment
|
||
|
||
## [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 300` per-segment approach
|
||
- **Atomic file naming**: in-progress recordings use `.part.mp4` suffix, renamed on completion
|
||
- **Crash recovery**: `.part` files older than 1 hour auto-cleaned by retention loop
|
||
- Cleaner skips `.part.mp4` files (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 `.part` files 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
|