Video Surveillance

Watch your cameras with self-hosted network video recorders and CCTV software.

46 self-hosted apps · 100 comparisons

All video surveillance apps

Last reviewed Aug 26, 2026 · 447 words

Decide whether you need a recorder or plumbing before you compare anything. Of the ten most-starred projects in this category, only two — ZoneMinder and motionEye — will record your cameras and let you review footage. The rest are streaming relays (MediaMTX, go2rtc, Restreamer), recognition services (OpenALPR, CompreFace), an audit tool (Cameradar), and developer libraries. All excellent, and all the wrong shopping list if what you wanted was a DVR replacement.

How to choose an NVR

Match the tool to the job. A full NVR records continuously or on motion, manages retention, and gives you a review UI: that is ZoneMinder (maintained since 2002) or motionEye, and, one tier up in ambition, Frigate with local object detection. A streaming layer like go2rtc or MediaMTX takes your cameras' RTSP feeds and republishes them with low latency to browsers, HomeKit, or other software in about 128 MB of RAM — it is glue, and go2rtc is literally the glue inside Frigate. Recognition services bolt onto an NVR rather than replace one, and they are not cheap: CompreFace wants 4 GB of RAM for face recognition alone.

Then match the hardware. Recording is a disk problem — a handful of cameras writing around the clock eats terabytes — while detection is a CPU or accelerator problem. motionEye runs happily on a Raspberry Pi; ZoneMinder wants 2 GB of RAM and a Hard-rated install.

Finally, the cameras: the gating feature is plain RTSP output. A camera that only talks to its vendor's cloud app is a dead end for every tool on this page.

Where to start

First camera, least friction: motionEye — Easy-rated, Docker-friendly, motion-triggered recording, and the default DIY answer on Pi hardware since 2013. Outgrowing it usually means wanting alerts that say "person at the door" instead of "pixels changed", and that is Frigate. ZoneMinder remains the maximalist option — IP, USB, and analog cameras, motion zones, deep configuration — if you will trade a dated interface and a genuinely complex setup for control.

Test your own cameras before someone else does

Cameradar exists because RTSP cameras ship with default credentials and open streams, and scanning for them takes minutes. Run it against your own network once; if it finds a watchable stream, so can anyone. Put cameras on their own VLAN with no internet access, let only the NVR reach them, and never port-forward a camera directly.

Default for a first-timer: motionEye on a Pi with an external disk and two RTSP cameras, nothing exposed publicly. Graduate to Frigate the day you catch yourself scrubbing an hour of motion clips looking for the one with a person in it.

Curated picks

Video Surveillance comparisons

100 head-to-head comparisons in this category.