I’ve written about many different aspects of my smart home over the years. However, I haven’t dedicated an article to my surveillance system, powered by ZoneMinder. Maybe I haven’t written about it because, for the most part, it just works. Perhaps it’s because I haven’t bothered integrating it with other parts of my smart home. Whatever the reason, I’m no longer ignoring it on this site. Let’s discuss my ZoneMinder setup.
This page contains affiliate links. If you purchase an item using an affiliate link I will receive a small commission at no cost to you. Affiliates do not influence my recommendations. Read my disclosures for more information.
Table of Contents
What is ZoneMinder
ZoneMinder is an open source video camera security and surveillance application. It is designed to run on Linux-based systems and can be used to monitor and record video from a variety of sources, including IP cameras, webcams, and analog cameras connected to a video capture card.
ZoneMinder allows users to set up a network of cameras and configure them to record video at specific times or in response to certain events, such as motion detection. It also includes features such as alert notifications, which can be sent via email or text message, and the ability to view live video feeds and recorded footage from a web browser.
One of the main benefits of ZoneMinder is that it is highly customizable. It is also an open source application, which means that the source code is freely available and can be modified and distributed by users. This has led to a strong community of developers and users who contribute to the development and improvement of the application.
I consider ZoneMinder to be a key part of the safety and security my smart home provides.
My ZoneMinder background
I actually can’t remember how long I’ve been using ZoneMinder. It has been well over 10 years. I started off with a couple of IP cams around the house and I wanted a way to use one application to view them, even though they were from different vendors with different capabilities. I used them as baby cams when my kids were younger. I’ve always been a fan of Linux, so the fact that it was free and ran on Linux was all I needed. So it was baby cam software to start. I only used it for live viewing and only recorded motion when the kids squirmed in their cribs.
When we moved into a new home a decade ago, I started to get a lot more into it. I started to really think of it as part of my security system. I installed cameras inside and outside of my house. Over time, it grew into a full-blown security system that alerted me (via email) to movement in areas and times when there wasn’t supposed to be movement (I saw numerous videos of various animals in our yard at night!).
As you can see from the video below, I also caught thieves stealing my packages on camera, which got me on the local news:
The police eventually caught the thief. I upgraded my cameras to HD after this. More on my cameras later.
Installing ZoneMinder used to be complicated. Lots of manual configurations were needed, and then lots of tweaking just to get it to work. Over the years, that process became much simpler. I’ve probably installed and reinstalled ZoneMinder 5-10 times for various reasons.
My ZoneMinder equipment and setup
Let’s get into the details of the setup I have now. As of the writing of this article, I’m running ZoneMinder 1.36.33. I installed it using this PPA on a Proxmox virtual machine (running on an Intel NUC). Because I have 11 cameras, most of which are HD cameras, I have given this machine five cores and 10 GB of RAM. This VM doesn’t do much other than run ZoneMinder.
The cameras I’m using
I mentioned I have 11 IP cameras. They are all different vintages, but they have one thing in common. They are all on the inexpensive side. I didn’t want to pay much for my cameras, so I’d wait for sales and look for lower-cost models. I don’t need fancy features; ZoneMinder can handle motion detection, storage, alerts, etc. Here are my camera models:
I also have a couple of really old cameras that I couldn’t even find links for, which are standard definition. All of the cameras above are HD.
I use the SV3C cameras for outdoor surveillance where I don’t have a protective eave, as they are meant for outdoors. However, I use a Dericam and a Foscam camera outdoors, even though they are indoor cameras. A couple of them are under eaves, and one is in an enclosure. They’ve worked well for years, enduring cold and hot weather.
You might want to check out my article about inexpensive cameras that work with ZoneMinder.
Key ZoneMinder configurations
This article isn’t about running through the thousands of ZoneMinder configurations. Instead, I’m going to talk about a few settings and configurations I use.
- Recordings — I use the ZoneMinder filters to keep 15 days worth of recordings. I can archive recordings when I want to keep them longer than that. Recordings are chopped up into 10 or 20-minute segments.
- Motion — Most of the time I have my cameras set to just record everything. Sometimes I have them set to record motion (like when we are on vacation) and it can alert me when it detects motion. It took a while to set up the motion zones and sensitivity as I want them. Honestly, that took longer than everything else I configured.
- Passthrough — For most of my HD cameras I am able to simply capture the stream without any encoding, keeping the CPU cycles down. I also record the audio. When I first started using ZoneMinder, it didn’t support audio encoding.
- Storage — I keep all of my recordings on a remote NAS (my TerraMaster F5-221). I have 11 TB of storage on that NAS, of which my recordings take up a little over 3.5 TB.
- App — I actually have two different apps that I use to view ZoneMinder from my mobile phone. I use ZmNinja and IP Cam Viewer Pro. ZmNinja gives way more access to the functionality of ZoneMinder (viewing events and making some configuration changes). I prefer the IP Cam Viewer Pro video interface and it also allows me to view my cameras directly (without going through ZoneMinder) as well as look at local traffic cams. Plus, I’m not sure ZmNinja has active development anymore.
Eight of my 11 cameras are on Wi-Fi. I also have a Google Nest Cam Outdoor that I received as a gift and a Google Nest Video Doorbell that also stream via my Wi-Fi (they are not tied into ZoneMinder). All of that video can be a lot of traffic constantly affecting your Wi-Fi network. My Wi-fi network handles it with ease because I use really good Wi-Fi access points, like the EAP 610 and the EAP 620.
I’m paranoid about cameras being hacked. I have configured my pfSense router to block all Internet connections to or from my the individual cameras I have tied into ZoneMinder. So they aren’t even accessible via Internet connections. I connect to my home’s VPN when I want to view my cameras or ZoneMinder away from home.
Note, I don’t block my Google video doorbell or the outdoor camera from the Internet. They rely on the cloud to work properly, so I have to take my risks there. At least any hacks on these cameras will be widely communicated because they are popular models and brands. Also, they are on a separate IoT network in my home for safety.
How well ZoneMinder works for me
As mentioned above, I’ve caught lots of interesting videos with it, including package thieves. I have videos of various animals, of when I almost crashed my car into my house (brakes gave out in the snow). I even have some funny videos of my children when they were young.
The sign of good software like this is that it just works. It’s pretty much set up and I rarely ever go into the configuration interface unless I want to look for a recording.
Future plans with ZoneMinder and Final thoughts
With as many cameras as I have, ZoneMinder is actually the most resource-intensive application I run in my home lab. I currently have a VM dedicated to it that I may beef up. Or, I may run it as a container on a beefy Docker host to make it easier to upgrade and maintain. I haven’t done this up until this point because it’s been easy enough to maintain in my Ubuntu VM.
I also may upgrade some of my cameras. Some are long in the tooth and need to be rebooted every so often. Others are low resolution. Also, I don’t have any 4K cameras.
Overall ZoneMinder has been great and if you are looking for similar software, you should try it out.
Do you use ZoneMinder? What do you think of it? Let me know in the comments or on Twitter.