Skip to content

Releases: opensensor/lightNVR

Release 0.35.1

09 Jun 04:07

Choose a tag to compare

🤖 AI-Generated Changelog

Fixed

  • Sanitize RTSP source URL fragments and properly handle #noaudio flag 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

06 Jun 11:44

Choose a tag to compare

🤖 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_audio setting
  • Fixed go2rtc WebRTC audio and respect hw_accel_enabled flag
  • Fixed pthread_condattr_setclock return value check and improved clock ID tracking in interruptible_sleep_t
  • Fixed HLS and WebRTC video cell rendering issues (community contribution)

🔗 Full Changelog: 0.34.6...0.35.0

Release 0.34.7

21 May 01:56

Choose a tag to compare

🤖 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 chown at 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

16 May 09:28

Choose a tag to compare

🤖 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

09 May 09:28

Choose a tag to compare

🤖 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

25 Apr 05:01

Choose a tag to compare

🤖 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-2 as a runtime dependency

🔗 Full Changelog: 0.34.3...0.34.4

Release 0.34.3

23 Apr 09:11

Choose a tag to compare

🤖 AI-Generated Changelog

Added

  • New API endpoint POST /api/motion/trigger for 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

23 Apr 05:21

Choose a tag to compare

🤖 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_recording setting to cross_stream_motion_trigger to 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/test endpoint has been removed; any integrations using this endpoint should be updated

🔗 Full Changelog: 0.34.1...0.34.2

Release 0.34.1

22 Apr 17:23

Choose a tag to compare

🤖 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

22 Apr 08:40

Choose a tag to compare

🤖 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 --config argument 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-motion accessibility 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 setState call for effective config behind a mounted-ref check to prevent updates on unmounted components

🔗 Full Changelog: 0.33.2...0.34.0