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

Your NVR, in your pocket.

The native iPhone and iPad companion connects directly to the PlainNVR server you choose. 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
Join the TestFlight Public beta for iPhone and iPad · 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.