Monday, July 24, 2017

My Quest With ZoneMinder - Deciding and Installing

For the past several years, I've been using Milestone Systems XProtect as my NVR software package for my security cameras at home.  Recently I've ran up against the limits of the free version (8 cameras).  In looking at what it would cost me to keep up to date with XProtect, it's become obvious that it's not possible for me to continue using XProtect.  Further, XProtect is quite expensive for some of the people I do consulting work for.  As such, I started looking at alternatives and ZoneMinder came up.  I did some quick feature comparisons and for my purposes, ZoneMinder seems to fit the bill.  After doing some research on the Internet, I decided I should document my thoughts and work since there is a lot of scattered information out there, as well as lots of old information.

My Needs

Here are my needs from an NVR package:

  • Affordable
  • Support my existing IP cameras
    • HikVision & HikVision clones
  • Support the capacity I need
    • If need be, scalable
    • Should perform similar to my current XProtect 
  • Use portable formats for exports (easily readable)
  • Support viewing on remote devices (phones/etc)
  • Support viewing on PCs easily
  • Support viewing on tablets around the house
  • Run on commodity hardware
  • Preferably run on Linux, but Windows would be acceptable
All of these needs seem to be met by ZoneMinder, except for performance.  The information I found on the performance of ZoneMinder seems to be all over the place.  Some say it runs great (ie, it runs on Synology NAS boxes), while others say it's a resource hog.  So the only way to know for sure is to try it.

Getting Installed & Working

After doing some reading, I started by installing Ubuntu Server 16.04.2 LTS on my current HP Proliant DL380 G5 server.  My OS lives on a mirrored pair of 146GB drives.  I tried not to overthink things, and went with automated partitioning.  During the install I installed a few extra packages:
  • LAMP Server
    • I knew this would be required for ZoneMinder, so I did it here
  • Samba Server
    • I want to be able to share out captures if needed, so I wanted to add this in now.  I may remove it later, we'll see
  • OpenSSH Server
    • No brainer here, since I want to be able to remotely manage the system
After the system was installed, I hopped over to the ZoneMinder documentation and followed these directions:  .   For the purposes of "once source of truth", I will not put the directions on this page directly.

After those directions were finished, I did have to change one particular thing in the UI settings.  At the time this was written, the configuration for ZoneMinder has the cgi-bin "master script" location at "/cgi-bin/nph-zms".  However, the configuration of the system is actually "/zm/cgi-bin/nph-zms".  This was discovered after not being able to see any of the video from my cameras in the UI.  To fix this, in the UI, open up "Options", then go to the "Paths" tab and change "PATH_ZMS" to "/zm/cgi-bin/nph-zms".

At this point, there's a working, empty ZoneMinder installation.  That's it!  Next up, I'll go into adding a camera/zone.


  1. Linux? You traitor!

    1. Yep. Not so much a traitor. Just trying to widen my breath more. Been a long time since I used Linux heavily, so wanted to get back at it. I still have a FreeBSD system in the house, so don't worry. ;)

  2. How SystemRescueCd 7.0.1 Crack Can Be a Disaster Recovery Plan: A blog about how you can use SystemRescueCd to create a disaster recovery plan.

  3. The 2023 Isuzu D-Max will be receiving some updates in Thailand for the 2021 model year, which will see the addition of a new grey colour, ...

  4. Click here(volveris) to find out the best WordPress plugins on the market today.

  5. We generaly shy away from being too specific in our goals, because that might make rustte a niche...


IT Accountability: Avoiding Murphy

Amongst technology experts, Murphy is someone we all try to avoid.  Murphy's Law states "Anything that can go wrong, will".  E...