LightNVR Documentation

August 24, 2026 · View on GitHub

Start here. Documents are grouped by what you are trying to do, in roughly the order you will need them.


Getting started

New to LightNVR? Follow this path:

  1. Install it — requirements, and every installation method
  2. Log in and complete the required password change. The default is admin / admin; a new installation blocks the rest of the UI until you replace it. The web server listens on all interfaces — see the warning in CONFIGURATION.md.
  3. Add a camera. Use ONVIF discovery if your cameras support it (ONVIF_DETECTION.md); otherwise add the RTSP URL by hand. CAMERAS.md covers what LightNVR needs from a camera and how to find its RTSP URL reliably.
  4. Confirm it is recording, then set a retention policy before your disk fills — CONFIGURATION.md covers storage and retention settings.
  5. Optional: turn on detection. ZONE_CONFIGURATION.md for where to look, SOD_INTEGRATION.md for what does the looking.

If something goes wrong at any step, TROUBLESHOOTING.md is the general guide and TROUBLESHOOTING_WEB_INTERFACE.md covers a blank or broken web UI specifically.


Install

DocumentWhat it covers
INSTALLATION.mdRequirements, all install methods, per-platform notes, upgrading, uninstalling
DOCKER.mdContainer reference: volumes, networking, environment variables, first-run behavior
HOME_ASSISTANT.mdThe Home Assistant add-on, and how it differs from plain Docker
WINDOWS_PODMAN.mdWindows via Podman + WSL2
BUILD.mdBuilding from source, build flags, cross-compilation

Configure

DocumentWhat it covers
CONFIGURATION.mdlightnvr.ini — every section and key
ZONE_CONFIGURATION.mdPolygon detection zones, class filters, thresholds
REVERSE_PROXY.mdRunning behind nginx / Caddy / Traefik, HTTPS, trusted_proxy_cidrs
GO2RTC_CONFIG_OVERRIDE.mdOverriding the generated go2rtc configuration

Operate

DocumentWhat it covers
TROUBLESHOOTING.mdGeneral problems: streams, recording, storage, auth
TROUBLESHOOTING_WEB_INTERFACE.mdBlank page, 404s, asset and login problems
SYSLOG.mdSending logs to syslog / journald
QUICKREF_Retention_API.mdRetention API quick reference

Integrate

DocumentWhat it covers
API.mdThe REST API
EVENT_CONTRACT.mdVersioned operational event envelope, registry, schemas, and privacy rules
MQTT_INTEGRATION.mdPublishing detection events, with Home Assistant examples
CAMERAS.mdCamera compatibility, finding RTSP URLs, vendor interop notes
ONVIF_DETECTION.mdONVIF discovery and camera-side motion events
GO2RTC_INTEGRATION.mdHow LightNVR drives go2rtc
SOD_INTEGRATION.mdEmbedded detection with SOD
MOTION_BUFFER.mdPre-detection buffering, so events include what led up to them

Develop

DocumentWhat it covers
ARCHITECTURE.mdHow the whole system fits together
FRONTEND.mdThe Preact/Tailwind web UI
RELEASE_PROCESS.mdCutting a release
prd/Product requirement documents for larger pieces of work
internal/Design notes and historical implementation writeups

Other

  • COMMERCIAL.md — commercial licensing and professional support

Conventions

  • User-facing documents live in docs/. If a document only makes sense to someone working on LightNVR's internals, it belongs in internal/.
  • Documents describe what the code does today. A document that describes a past change ("we refactored X", "the fix for Y") is a historical note — put it in internal/, where nobody will mistake it for current guidance.
  • When a change alters a default, a port, a path, or a credential, the documentation changes in the same PR. See RELEASE_PROCESS.md.