-
Notifications
You must be signed in to change notification settings - Fork 259
LightNVR
LightNVR is a lightweight, open-source Network Video Recorder written in C for minimal memory usage. It runs on separate hardware — such as the $15 NVR, Raspberry Pi, or any Linux system — and connects to IP cameras (including Thingino cameras) via RTSP/ONVIF.
Important: LightNVR does not run on cameras themselves. It is built using the Thingino build system as a convenience for targeting Ingenic SoC devices like the $15 NVR, but it is a standalone NVR application.
Project repository: github.com/opensensor/lightNVR (GPL v3)
For full documentation, features, and usage instructions, see the LightNVR GitHub page.
LightNVR can be compiled for Ingenic SoC devices (like the $15 NVR) using the Thingino build system. It is not included in standard Thingino release images — you must build it yourself.
- Set up the Thingino build environment (see Building from Sources)
- Enable the package in your buildroot config:
This automatically enables its dependencies: go2rtc, FFmpeg, SQLite, cJSON, libuv, llhttp, and host-nodejs.
BR2_PACKAGE_LIGHTNVR=y - Build the firmware image as usual.
The LightNVR package pulls in the following:
| Dependency | Purpose |
|---|---|
go2rtc |
Streaming backbone (RTSP ingest, WebRTC/HLS output) |
thingino-ffmpeg |
Video decoding and recording |
sqlite |
Database for streams, recordings, settings |
cjson |
JSON parsing |
libuv + llhttp
|
HTTP server backend |
host-nodejs |
Build-time web asset compilation |
mbedtls or wolfssl
|
TLS support (optional, selected by other packages) |
| Path | Description |
|---|---|
/usr/bin/lightnvr |
Main binary |
/etc/lightnvr/lightnvr.ini |
Configuration file |
/etc/lightnvr/go2rtc/ |
go2rtc configuration directory |
/etc/init.d/S95lightnvr |
Init script (auto-start) |
/var/lib/lightnvr/web/ |
Web UI assets (compressed) |
/opt/lightnvr/ |
Data directory (recordings, database, models) |
Note: LightNVR manages go2rtc directly. The standalone go2rtc init script (
S97go2rtc) is removed when LightNVR is installed.
LightNVR is configured via /etc/lightnvr/lightnvr.ini. Key points:
- Web UI runs on port 8080 by default; credentials are auto-generated on first run
-
Storage defaults to
/mnt/sda1/— external USB storage is required for recording on embedded devices - Streaming uses go2rtc as its backbone (WebRTC on port 8555, HLS fallback)
- Detection requires the separate light-object-detect service
For all configuration options, see the LightNVR GitHub page.
LightNVR can be installed on the Ingenic A1 / $15 NVR hardware, which is where the Thingino build system target comes in handy. However:
⚠️ LightNVR does not work well on this device. If you choose to try it, make sure to back up the factory firmware first. Thingino does run well on it and allows you to use the device as a dependable go2rtc restreamer (no hard drive required).
See the $15 NVR page for flashing instructions and details.
LightNVR is not limited to Ingenic devices. It can run on any Linux system — including Raspberry Pi, x86 servers, and Docker containers. Pre-built Docker images are available at Docker Hub. For installation instructions outside of Thingino, see the LightNVR GitHub page.
- LightNVR GitHub Repository — full documentation, features, configuration, and usage
- light-object-detect — companion object detection service
- LightNVR Docker Images — for non-Thingino deployments
- $15 NVR — one hardware target for LightNVR
- Wiki Home
- About the Project
- Getting Started
-
Supported Cameras
- Cameras
- 360 AP1PA3
- AliExpress LTIA‐37FJZ (Vanhua Z55 module)
- AOQEE C1
- Aosu C5L
- Cinnado
- Dekco DC5L
- Eufy
- Galayou/Wansview
- Hualai (Wyze/Atom/Neos/Personal)
- iFlytek XFP301‐M
- Jienuo JN-107-AR-E-WIFI
- Jooan A6M
- LaView L2
- LongPlus X07
- LSC 3215672
- Sannce I21AG
- Sonoff Cam‐S2 and B1P
- TP-Link Tapo C100/C110/C111
- Wuuk Y0510
- Xiaomi
- Configuration
- Integration
- Development