PlainNVR 0.1.3 is available

Your cameras.
Your storage.
Your rules.

A free, open-source network video recorder that keeps live video and recordings on hardware you control—not in a required cloud account.

  • Docker & TrueNAS
  • RTSP & ONVIF
  • No subscription
plainNVR
Server online
LIVE VIEWGood evening
3 cameras online
LIVE
Front Drive1080p · H.264
LIVE
Back Garden4K · H.265
RecordingAll cameras healthy
Storage1.2 TB free
Local by designNormal camera traffic stays with you
Self-hostedYour server, your network
Open sourceAGPL-licensed and inspectable
Private by defaultNo required video cloud
Built for standardsRTSP, ONVIF, H.264 & H.265

A capable NVR without the cloud baggage.

PlainNVR handles the everyday camera workflows you need while leaving ownership of the system—and its data—with you.

Record on your storage

Continuously record or use weekly schedules. Choose segment length and retention per camera, and keep ordinary MP4 files on storage you control.

Low-latency live view

Watch through go2rtc with MSE, HLS, and WebRTC compatibility paths—all behind PlainNVR authentication.

ONVIF discovery & PTZ

Find streams and media profiles, then expose pan, tilt, zoom, presets, and home controls only when the camera supports them.

Playback & export

Browse recording dates and segments, play clips in the browser, download them, or save selected clips from the companion app.

Health that means something

PlainNVR checks for fresh media output—not merely a running process—and restarts stalled recorders or live streams.

Home Assistant ready

Opt in to protected HLS and snapshot endpoints for compatible dashboards and automations—without exposing go2rtc directly.

Start with Docker.
Stay in control.

PlainNVR ships as a self-contained Docker deployment and is also available from the TrueNAS Community catalog.

  1. 1
    Choose a host

    Any supported Docker host or a TrueNAS system with enough storage for your retention plan.

  2. 2
    Start PlainNVR

    Clone the repository and launch the Compose stack. Persistent data stays in local directories.

  3. 3
    Add an RTSP camera

    Test the stream, choose a schedule and retention period, then let PlainNVR record.

Read the complete setup guide
Terminal
$ git clone https://github.com/endless1233214/plainnvr.git
$ cd plainnvr
$ docker compose up --build -d

# Open the local web interface
http://localhost:8787
No hosted account required
HEAVY BETA · TESTING ONLY

PlainNVR OS 0.2.3 · Build 14

A bootable AMD64 installer for testing PlainNVR as a dedicated appliance.

Not production ready.

Expect bugs, breaking changes, data loss, and possible reinstalls. Do not rely on this build for security-critical monitoring or irreplaceable recordings. Use test hardware and keep independent backups.

Already running PlainNVR OS with A/B slots? Back up first, then select the Preview channel in Settings → Updates to find the signed 0.2.3 update. Install only during a maintenance window; older or modified installs have not had the same end-to-end validation.

Your NVR, wherever you are.

PlainNVR Companion is available on the App Store for iPhone, iPad, and compatible Macs. Connect to the PlainNVR server you choose to watch live video and audio, check recorder health, operate supported PTZ controls, and browse saved clips.

  • ✓ Native SwiftUI interface
  • ✓ WebRTC with HLS fallback
  • ✓ Receive-only camera media
  • ✓ No required PlainNVR cloud account
Get PlainNVR Companion on the App Store For iPhone, iPad, and compatible Macs · Requires PlainNVR 0.1.3 or newer for WebRTC

Hardened, documented, and honest about its limits.

Version 0.1.3 limits internal media services, validates origins and input, rate-limits failed authentication, bounds requests and connections, and runs its release container as an unprivileged user. The public audit documents exactly what was—and was not—reviewed.

PlainNVR app icon

Put your cameras back on your terms.

Free and open source. Bring the cameras and storage you already own.