Self-host OpenNVR
v0.1.8Self-hosted NVR with open AI adapter platform
- Stars
- 183
- RAM
- 8 GB
- Storage
- 20 GB free disk
- Ports
- 8000 (Web UI and API (HTTP)), 8888 (MediaMTX HLS playback), 8889 (MediaMTX WebRTC), 9100 (Camera Agent demo UI), 8100 (KAI-C middleware API)
What is OpenNVR?
OpenNVR is an open-source network video recorder that handles ONVIF and RTSP camera streams, records continuously, and serves live video via WebRTC and HLS. It includes an AI platform where any model — object detection, license plate reading, face recognition, pose estimation, or vision-language models — connects through a published open adapter contract. Twelve built-in apps provide intrusion alerts, loitering detection, occupancy counting, tripwire counting, abandoned object alerts, license plate recognition with gate control, a smart doorbell with face enrollment, package delivery tracking, guard scan compliance, plain-language footage search, and alert notifications via Telegram, ntfy, Discord, Slack, email, and webhooks. A voice agent lets you speak to cameras and hear answers from a local LLM. The design enforces offline-first operation: cameras sit on a segregated network without internet access, two default-deny gates block cloud egress, every inference carries a correlation ID and model fingerprint into an append-only audit log, and a covered-vendor self-check is included. It runs on hardware from a Raspberry Pi 5 up to GPU servers, installs via Docker Compose with a guided launcher, and integrates with Home Assistant through MQTT discovery. The core uses AGPL-3.0-or-later; the app and adapter SDKs are Apache-2.0 so extensions can be proprietary. A commercial license covers OEM embedding and hosted offerings.
Should you self-host OpenNVR?
OpenNVR scores 45/100 on selfhost.directory (how scoring works) and ranks #20 of 24 in Video Surveillance. It has 183 GitHub stars.
It shipped 4 stable releases in the past year. The latest, v0.1.8, came out on 17 October 2026. New versions land roughly every 3 days.
Setup is moderate: expect some configuration beyond a single command. It is AGPL-3.0-licensed and written mostly in Python.
Its closest alternative on selfhost.directory is Viseron (70/100, 3 667 stars). It scores higher overall, so compare the two before you pick. See OpenNVR vs Viseron side by side.
Features
- 12 built-in applications
- §889 covered-vendor self-check
- App SDK and Adapter SDK (Apache-2.0)
- Compute-gated inference (Tier-0 + gated models)
- Dual-NIC network isolation
- Home Assistant Integration
- Model fingerprinting and audit trail
- Multi-factor authentication (TOTP)
- Natural-language footage search
- Offline-first / air-gapped operation
- ONVIF/RTSP camera support
- Open AI adapter contract
- Role-based access control with per-camera grants
- Voice agent (camera agent)
OpenNVR README
FAQ
What cameras does OpenNVR work with?
Any camera that speaks ONVIF or RTSP, covering virtually all modern IP cameras (Hikvision, Dahua, Axis, Reolink, and generic ONVIF/RTSP). No proprietary hardware required.
Where are the API references?
Three generated references: App SDK reference for building apps, Adapter SDK reference for publishing models, and the operator API (OpenAPI/Swagger at /docs on a running install).
What is "Powered by OpenNVR"?
The trademark badge. Anyone shipping substantially unmodified OpenNVR under the AGPL may use it for free; commercial licensees are required to display it unless they purchase the white-label tier.
Do I have to publish my app or model to the catalog?
No, an app or adapter from your own repository and image registry works exactly like a catalog one and can stay closed. Listing is optional via a pull request.
Can the apps and adapters I build be proprietary?
Yes, the app SDK and AI adapter SDK are Apache-2.0, so anything you build on them ships under any license you choose, including closed source.
Who needs the OpenNVR Commercial License?
Businesses selling hardware with OpenNVR pre-installed under their brand, embedding OpenNVR in proprietary software, or hosting a modified OpenNVR as a closed service.
Can I really talk to my cameras?
Yes, the camera-agent example lets you ask questions out loud and a local LLM answers grounded in live frames or recorded footage, spoken back via TTS, all on your hardware.
Can I search my recorded footage in plain language?
Yes, the footage-search example indexes recorded inference and lets you ask natural-language questions like 'show me every red truck at the dock yesterday' fully on your hardware.
Can I run my own AI models on my cameras?
Yes, Bring Your Own Model (BYOM): wrap any model in about thirty lines of Python with the Apache-2.0 SDK, and OpenNVR treats it as a first-class detector.
Can OpenNVR run completely offline?
Yes, offline-first is the default. Cameras sit on an isolated network with no internet route, recording and AI run locally, and cloud connectivity is off unless explicitly enabled.
How is OpenNVR different from Frigate, ZoneMinder, or Verkada?
OpenNVR adds a published open AI adapter contract, end-to-end audit chain with model-fingerprint drift detection, two default-deny sovereignty gates, a peer-reviewed architecture paper, and a voice agent you can talk to.
What is an open-source NVR?
An open-source NVR is one whose code you can read, audit, self-host, and modify so your footage and analytics stay on hardware you control instead of a vendor's cloud.
Is OpenNVR free and open source?
Yes, OpenNVR is fully open source under the AGPLv3 licence with Apache-2.0 SDKs. There are no per-camera fees, no per-seat licences, and no cloud subscription.
More in Video Surveillance
Plate-MinderSelf-hosted license plate recognition for RTSP/MJPEG streams using OpenALPR, with SQLite, MQTT, Home Assistant auto-discovery, and web UI.
ScryptedSelf-hosted video integration platform providing smart detections and NVR recording. Streams camera feeds to HomeKit, Google Home, Alexa, and Home Assistant.
SeclusoSelf-hosted open-source home security camera for Raspberry Pi with MLS end-to-end encryption, mobile app, and optional self-hosted relay.
SentryShotSelf-hosted, open-source VMS in Rust for CCTV/NVR setups: sub-2s full-resolution live view, 24/7 recording, motion zones and TFLite object detection.- ShinobiShinobi is an open-source CCTV and NVR solution written in Node.js, supporting IP and local cameras with RTSP, ONVIF, H.264/H.265, motion/object detection, multi-tenancy, and a web/mobile interface.
speed-cameraSelf-hosted, open-source speed camera using OpenCV to track moving objects, calculate speed, and serve data via a built-in web server. Runs on Raspberry Pi, Windows, Unix
UnblinkUnblink is a self-hosted, open-source camera monitoring app using vision language models to analyze feeds, chat naturally, and search recorded frames.
UniFi-Protect-BackupPython tool to backup unifi event clips in realtime
unvr-nas-backupA self-hosted Docker container that backs up 24/7 UniFi Protect footage to network storage, turning proprietary video into standard MP4 files organized by camera and date
ViseronA self-hosted NVR that runs locally with AI-powered object, motion, and face detection plus license-plate reading and GPU acceleration.
yuzukamYuzukam is a self-hosted, open-source baby monitor running entirely on your local network with no cloud, no recording, and no accounts needed.
zmNinjaNgA free, open-source ZoneMinder viewer for web, desktop, and mobile with live streams, event review, multi-camera grids, timeline navigation, push alerts, and AI helper.










0 comments