selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

OpenNVR logo

Self-host OpenNVR

v0.1.8

Self-hosted NVR with open AI adapter platform

BetaOpen CoreAGPL-3.0
Updatedlast week
LanguagePython
Setup difficultyModerate
MobileResponsive
ThemeDark mode
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)
Install with Docker Compose
Running the launcher via PowerShellFirst-Time Setup screen with token entrySearch page with natural-language query results (light theme)Search page with natural-language query results (dark theme)Live view with detection boxes at North gateLive view of yard cameraLive view of loading dock with truck detectionLive view of lobby with person detectionPerimeter camera showing offline statusCar park camera with vehicle detection

What is OpenNVR?

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

How to install OpenNVR

Install OpenNVR with Docker Compose

Same as base install

git clone https://github.com/open-nvr/open-nvr.git cd open-nvr cp .env.example .env ./scripts/generate-secrets.sh --write

Windows: .\scripts\generate-secrets.ps1 -Write

docker compose -f docker-compose.yml up -d

Manual/unattended install for CI boxes or configuration management; generate-secrets writes cryptographically random values to .env

How to configure OpenNVR

  • AI_SOVEREIGNTYlocal_onlyAI sovereignty policy

    AI sovereignty policy

    values: local_only, cloud_allowed

  • CAPTION_ADAPTERollamavlmCaption adapter image to use

    Caption adapter image to use

    values: ollamavlm, moondream

  • CREDENTIAL_ENCRYPTION_KEYKey for encrypting credentials at rest

    Key for encrypting credentials at rest

    values: cryptographically random

  • DEPLOYMENT_MODEofflineDeployment mode (offline/online)

    Deployment mode (offline/online)

    values: offline, online

  • EVENTS_CAPTION_ENRICHMENTtrueEnable caption enrichment for visits

    Enable caption enrichment for visits

    values: true, false

  • EVENTS_DESCRIPTOR_ENRICHMENTtrueEnable descriptor enrichment for visits

    Enable descriptor enrichment for visits

    values: true, false

  • INTERNAL_API_KEYInternal API key for service communication

    Internal API key for service communication

    values: cryptographically random

  • MEDIAMTX_SECRETMediaMTX secret

    MediaMTX secret

    values: cryptographically random

  • RECORDINGS_PATH./recordingsPath on host for recording storage

    Path on host for recording storage

    values: absolute path

  • SECRET_KEYApplication secret key

    Application secret key

    values: cryptographically random

OpenNVR releases & version history

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

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…