Categories
Self-Hosted Video Surveillance Security Cameras CCTV Management Event Recording Network Video Recorder Motion Detection Home SecurityStars
Forks
Watchers
Developer links
ZoneMinder
Turn ordinary IP cameras, USB webcams, and video files into a self-hosted surveillance system that watches, records, and replays everything from a browser. Every camera becomes a monitor that can capture, analyze, and record around the clock or only when motion appears. Draw detection zones in six types (active, inclusive, exclusive, preclusive, inactive, and privacy) so a visitor on the driveway raises an alarm and swaying trees do not. The Montage view tiles live feeds in selectable layouts, Cycle rotates through them, and the Watch view adds scale, stream quality, and player controls for a single camera. Events arrive in a sortable list with thumbnails, durations, and alarm scores, play back against a timeline, and can be reviewed across every camera in Montage Review. Filters automate housekeeping by archiving, emailing, messaging, uploading, copying, moving, or deleting matching events on a schedule. PTZ controls steer supported cameras. User roles limit who can view or change each monitor, a REST API and MQTT support connect other tools, and the optional event server adds push notifications and object detection through machine-learning hooks. Multi-server installs spread cameras and storage across machines, and the zmNinjaNg app brings the same views to phones and desktops. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. GPL-2.0 licensed.
Benefits
- Keep Footage On Your Own Server
- Events, images, and logs live in a MariaDB database and a storage volume you choose, so you set retention rules and backups instead of renting cloud space for every camera.
- Mix Cameras From Any Brand
- Network cameras, USB devices, video files, and even web pages can all become monitors, so existing hardware keeps working and new cameras join without vendor lock-in.
- Cut False Alarms With Zones
- Six zone types plus pixel, filtered pixel, and blob checks let you tune motion detection per camera and ignore foliage, passing shadows, and sudden lighting changes.
- Automate Alerts And Cleanup
- Saved filters archive, email, message, upload, or delete matching events on a schedule, and the optional event server pushes notifications so you hear about activity without watching feeds.
Features
- Live Montage And Watch
- Montage tiles live monitors in layouts from one to twelve columns, Cycle rotates cameras, and Watch adds scale, stream quality, and player options including go2rtc WebRTC and MSE.
- Event Recording And Playback
- Motion, forced, or continuous recording stores events with frame scores, tags, and thumbnails, and the event view replays them against a timeline with rate and codec options.
- Motion Detection Zones
- Active, inclusive, exclusive, preclusive, inactive, and privacy zones use AlarmedPixels, FilteredPixels, and Blobs checks with per-zone thresholds and alarm colors for precise detection.
- Saved Event Filters
- Query events by monitor, cause, tags, score, or disk percent, then archive, email, upload, copy, move, or delete matches in the background at a set interval.
- REST API And MQTT
- A CakePHP-based REST API, MQTT support, and the zmeventnotificationNg event server give home automation and mobile apps programmatic access to monitors, events, and push alerts.
- Multi-Server Deployments
- Monitors and event storage can spread across several servers and storage areas, with official amd64 and arm64 Docker images published on Docker Hub and GitHub Container Registry.