ZO

ZoneMinder

Full-featured closed-circuit television software suite

Video Surveillance ★ 5.9k stars Hard setup GPL-2.0

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