ZoneMinder
Full-featured closed-circuit television software suite
ZoneMinder is a free, open-source, closed-circuit television software application for Linux that supports IP, USB, and analog cameras. It provides recording, monitoring, analysis, and a web-based control interface.
Key features
- IP, USB, and analog camera support
- Motion zones and analysis
- Event recording
- Web control interface
Pros & cons
Strengths
- Very mature project
- Highly configurable
Trade-offs
- Complex installation
- Dated interface
ZoneMinder replaces
Last reviewed Sep 13, 2026 · 845 words
Install Frigate unless one of three things is true: you have analog or USB cameras, you need role-based access for several operators, or you already run ZoneMinder and it works. Those three cases are real, and for them ZoneMinder remains the best free option, a GPL-2.0 project dating from 2002 with 6,000 stars and a feature list no younger NVR matches. For everyone else, the Hard difficulty rating and 2 GB minimum RAM are honest, the web interface looks its age, and the object-detection features that make a modern camera system useful arrive as add-ons rather than as the core design.
The three cases where ZoneMinder still wins
Analog cameras through a capture card and USB webcams through Video4Linux are supported natively, which almost no modern NVR bothers with; if you have a house wired with coax from a previous owner, this matters. Multi-user is proper: users have per-monitor permissions, view-only or control rights, and a separate API access flag, so a small business or a shared building can give the front desk live view without giving them settings. And maturity: 20-plus years means an answer exists for nearly every camera quirk, the API is stable, the zmNinja mobile app is mature, and the Home Assistant integration exposes monitors and recording state without custom work.
Do the storage maths before buying the cameras
A 1080p H.264 stream at 4 Mbps writes about 1.8 GB per hour, or 43 GB a day, per camera in continuous recording. Four cameras retained for 30 days is roughly 5 TB. Halve the bitrate or drop to motion-only recording and the number falls sharply, but the point is that the disk decides the design. ZoneMinder handles this with storage areas (multiple paths, so you can put events on a separate drive) and filters that delete the oldest events when a storage area passes a percentage full. Set that purge filter on day one; a full disk is the most common way a ZoneMinder install stops recording silently.
Monitor, Modect, Record, Mocord: the modes that matter
Each camera is a "monitor" with a function. Monitor streams for live view only and stores nothing. Modect records only when motion is detected in zones you draw on the image. Record captures continuously. Mocord records continuously and additionally flags motion events, which is the mode most people should use if the disk allows, because continuous footage is what you want when something happens just outside the zone you drew. Two settings dominate CPU: use the camera's own H.264 stream with video passthrough rather than transcoding, and keep the analysis frame rate low, because motion analysis decodes every analysed frame and four 1080p streams at full rate will flatten a small box. Zone tuning is the tedious part of the setup, and the reason motion detection here gets a reputation for false alarms from trees and headlights that a newer object-detection system avoids.
Install from packages; Docker is a community path
The documented route is a package install on Ubuntu or Debian, with Apache, PHP, and MariaDB on the same host. Docker images exist and are maintained by community members, and they work, but the official documentation assumes the package and most troubleshooting threads do too. Whichever you choose, put the events directory on its own disk, take a database dump alongside it in your backup, and expose the web interface only over a VPN. The interface is old enough that I would not put it on the internet even behind authentication; zmNinja over Tailscale gives you remote viewing without that exposure. Object detection, if you want it, comes through the separate Event Notification Server and its machine-learning hooks, which is workable but is exactly the integration Frigate ships in the box.
Frigate is the default for new installs
Frigate was designed around object detection from the start: a Coral TPU or a GPU classifies people, cars, and animals in real time, recording and alerts key off those objects rather than pixel changes, and Home Assistant integration is first-class. It wants IP cameras with RTSP and it does not do analog, which is the whole trade. For a couple of cameras on a Raspberry Pi, motionEye is the lightweight option that needs almost no setup. If you are leaving Blue Iris on Windows, Frigate is the closer match in spirit; ZoneMinder is the closer match in feature breadth. The video surveillance category lists the rest.
What I'd do
New system with IP cameras: Frigate, a Coral, and Home Assistant. Legacy analog cameras, a multi-operator site, or a working ZoneMinder install: keep or install ZoneMinder from packages on Ubuntu, Mocord with passthrough on every camera, events on a dedicated 4 TB or larger disk with the purge filter at 90 percent, and zmNinja over Tailscale for phones. Either choice is a system you run for years, so the storage plan matters more than the software choice.
Compare ZoneMinder
10 head-to-head comparisons.
Similar video surveillance apps
MediaMTX
Video SurveillanceReady-to-use media server and RTSP/WebRTC proxy
Replaces Wowza
go2rtc
Video SurveillanceUltimate camera streaming gateway with low latency
Replaces Nest Cam
OpenALPR
Video SurveillanceAutomatic license plate recognition library
Replaces Rekor Scout, Plate Recognizer
CompreFace
Video SurveillanceSelf-hosted face recognition service with REST API
Replaces Amazon Rekognition
OpenCvSharp
Video Surveillance.NET wrapper for OpenCV computer vision
Replaces Commercial vision SDKs
Cameradar
Video SurveillanceRTSP stream discovery and access-auditing tool for cameras
Replaces Commercial camera audit tools