Releases: opensensor/lightNVR
Releases · opensensor/lightNVR
Release 0.35.1
🤖 AI-Generated Changelog
Fixed
- Sanitize RTSP source URL fragments and properly handle
#noaudioflag in go2rtc integration, preventing malformed stream configurations
Changed
- Update JavaScript dependencies to latest versions
- Update GitHub Actions to latest major versions
🔗 Full Changelog: 0.35.0...0.35.1
Release 0.35.0
🤖 AI-Generated Changelog
Added
- Added reverse proxy and HTTPS deployment guide for secure production deployments
- Added Wyze go2rtc bridge example to override documentation
- Added groundwork for per-stream voice-enhancement filter (audio processing foundation for future use)
- Added auto-retry player on connection loss for unattended dashboards
Changed
- Improved shutdown speed by skipping wait on components that were never registered
- Wake shutdown-sleeping threads using a condition variable instead of SIGALRM for cleaner shutdown behavior
- Updated timeline playback page to fit within visible viewport
- Automatically set correct ownership on per-stream recording subdirectories on container entrypoint
Fixed
- Fixed stale session state that prevented login from normal browser profiles
- Fixed PTZ ContinuousMove on cameras that support pan/tilt only or zoom only
- Fixed double-escaped go2rtc stream name in registration path
- Fixed go2rtc sub-stream registration to correctly check return values and use configured
record_audiosetting - Fixed go2rtc WebRTC audio and respect
hw_accel_enabledflag - Fixed
pthread_condattr_setclockreturn value check and improved clock ID tracking ininterruptible_sleep_t - Fixed HLS and WebRTC video cell rendering issues (community contribution)
🔗 Full Changelog: 0.34.6...0.35.0
Release 0.34.7
🤖 AI-Generated Changelog
Added
- Laid groundwork for per-stream voice-enhancement filter, enabling future audio processing controls per stream
- Added reverse proxy and HTTPS deployment guide for users running LightNVR behind nginx or similar proxies
- Added Wyze go2rtc bridge example to the override documentation
Changed
- Fit timeline playback page within the visible viewport to prevent overflow and improve usability on smaller screens
Fixed
- Fixed PTZ ContinuousMove commands failing on PT-only or zoom-only cameras that lack the full range of movement axes
- Fixed per-stream recording subdirectory ownership by applying
chownat container entrypoint, resolving permission errors on startup - Fixed unattended dashboards losing video playback by auto-retrying the player on connection loss
🔗 Full Changelog: 0.34.6...0.34.7
Release 0.34.6
🤖 AI-Generated Changelog
Fixed
- Resolved Docker container issues with go2rtc lifecycle ownership
- Fixed go2rtc source override not reloading correctly on configuration changes
- Fixed go2rtc override startup configuration not being applied properly
- Corrected WebRTC live audio toggle behavior
- Fixed partial downloads when using llhttp fallback
- Fixed MP4 recorder watchdog heartbeats to prevent false timeout triggers
Changed
- Polished remaining UI inconsistencies and visual issues
- Updated Babel plugin for SystemJS module transforms (dependency maintenance)
🔗 Full Changelog: 0.34.5...0.34.6
Release 0.34.5
🤖 AI-Generated Changelog
Fixed
- Resolved Docker/Podman container startup loop caused by stale PID file and PID reuse
- Added missing flag images for newly added locales in internationalization support
Changed
- Updated development dependencies across web packages
🔗 Full Changelog: 0.34.4...0.34.5
Release 0.34.4
🤖 AI-Generated Changelog
Added
- Added new locale catalogs and registry entries to expand internationalization support
Changed
- Normalized locale tone and wording for consistency across the interface
- Completed and normalized locale catalogs for improved translation coverage
- Updated German (de.json) locale translations
- Improved disk usage calculation in system info API using database-level summation for better performance
Fixed
- Fixed timeline scrubber playback behavior and settings helper layout
- Fixed Debian package to properly declare
libyaml-0-2as a runtime dependency
🔗 Full Changelog: 0.34.3...0.34.4
Release 0.34.3
🤖 AI-Generated Changelog
Added
- New API endpoint
POST /api/motion/triggerfor triggering motion events from external sources
Changed
- Thumbnail decoding now uses libav for improved performance, defaults to first frame, and includes a configurable count setting
Fixed
- Fullscreened cells in live view now correctly swap to the main stream instead of the sub-stream
- Detection interval unit label and segment duration minimum value corrected in stream settings
- Single-cell (1x1) live view now fits the desktop viewport without requiring scrolling
🔗 Full Changelog: 0.34.2...0.34.3
Release 0.34.2
🤖 AI-Generated Changelog
Added
- Individual toggles for WebRTC, HLS, and MSE stream views on the dashboard, allowing users to show or hide each player type independently
- Refresh button in the recordings toolbar for manually reloading the recordings list
- go2rtc codec-aware stream registration with live re-registration when the codec changes, improving stream compatibility
Changed
- Renamed
onvif_motion_recordingsetting tocross_stream_motion_triggerto better reflect its purpose; update any configuration referencing the old name - Migrated network-bound action buttons to an async pattern, providing better feedback during operations
- Timeline now preserves playback state across seek operations, preventing unexpected pauses
Fixed
- ONVIF events now work correctly with strict ONVIF servers such as Reolink cameras
- HTTP request handler no longer holds a dangling pointer into a reallocated receive buffer, preventing potential memory corruption
- MQTT settings inputs no longer get incorrectly filled by Firefox's saved-login autofill
- Disconnected camera reconnect loop no longer spins uncontrollably, and suppresses repetitive EOF log spam
Removed
/api/motion/testendpoint has been removed; any integrations using this endpoint should be updated
🔗 Full Changelog: 0.34.1...0.34.2
Release 0.34.1
🤖 AI-Generated Changelog
Fixed
- Reject stream names containing spaces or special characters to prevent invalid stream configurations
- Resolve pipeline override issue in go2rtc integration that could cause stream processing failures
🔗 Full Changelog: 0.34.0...0.34.1
Release 0.34.0
🤖 AI-Generated Changelog
Added
- Settings page redesign: Tabbed layout with URL-hash navigation, live search across all settings, and a sticky save button for easier configuration management
- Streams page card grid: New card-based grid layout for streams with a recording-mode badge displayed on each stream card
- go2rtc config override editor: Full-featured YAML editor in settings with validation, presets, effective-config preview, and quarantine banner for invalid configurations
- go2rtc override safety: Automatic quarantine of invalid or crash-looping override configurations, surfaced in the UI with clear status indicators
- go2rtc effective-config preview: New API endpoint showing the merged configuration with YAML-aware redaction of sensitive values
- go2rtc server-side validation: Duplicate-key detection and structural validation of go2rtc override YAML before it is applied
- go2rtc binary discovery hardening: Searches well-known paths and probes the version to reliably locate the go2rtc binary
- AsyncButton and useAsyncAction: New UI primitive for async operations with built-in loading and error state handling
- Per-stream go2rtc source override: Individual streams can now specify a custom go2rtc source, overriding the default pipeline
Changed
- go2rtc configuration architecture: Base config is now emitted separately; a second
--configargument passes the user override, enabling upgrade-safe customization without losing settings - go2rtc config override size cap: Raised from 4 KB to 64 KB to support larger configurations
- Streams page layout: Displays 4 columns on extra-large screens (
2xl) for better use of wide displays - Theme polish: Custom scrollbar styling and support for the
prefers-reduced-motionaccessibility preference - Mobile navigation: Logo now links to home; toast notifications repositioned; safe-area insets applied for notched devices
Fixed
- Recordings table overflow: Corrected layout overflow issues in the recordings table
- Playback modal fit: Improved sizing and fit of the video playback modal
- Audio stream initialization: Declare audio stream before calling
avformat_write_header()to prevent initialization errors in UDT recordings - go2rtc non-RTSP URL handling: Skip RTSP-only URL fragments when the source scheme is not RTSP
- go2rtc disabled build stubs: Added missing stub implementations for override-pipeline APIs when go2rtc is compiled out
- Video controls visibility: Native video controls are now kept visible in the recordings modal
- Settings config state update: Guarded
setStatecall for effective config behind a mounted-ref check to prevent updates on unmounted components
🔗 Full Changelog: 0.33.2...0.34.0