Difference between revisions of "Zoneminder"

From SME Server
Jump to: navigation, search
m (Fixed typo error in ffmpeg installation procedure ( contirbs vs contribs ))
(Know issues and NFR)
Line 105: Line 105:
'''to use usb camera would need''' :  
'''to use usb camera would need''' :  
usermod -a -G video www chmod 777 /dev/video0  
  usermod -a -G video www  
  chmod 777 /dev/video0  
<nowiki>#</nowiki> or find an alternative, that was what helped me here modprobe uvcvideo  
# or find an alternative, that was what helped me here modprobe uvcvideo  
# if this is the module for your cam <nowiki>https://forums.zoneminder.com/viewtopic.php?t=23361</nowiki>
<nowiki>#</nowiki> if this is the module for your cam <nowiki>https://forums.zoneminder.com/viewtopic.php?t=23361</nowiki>
'''NFR  :'''
'''NFR  :'''

Latest revision as of 06:22, 9 January 2019

zoneminder logo
Tags cctvzoneminderzmvideoip camera
Warning.png Warning:
This is early alpha development please use only on test machine, not for production


Contrib 9:
The latest version of smeserver-zoneminder is available in the SME repository, click on the version number(s) for more information.
this is available in the zmrepo external repository with most of the dependencies


ZoneMinder is intended for use in single or multi-camera video security applications, including commercial or home CCTV, theft prevention and child, family member or home monitoring and other domestic care scenarios such as nanny cam installations. It supports capture, analysis, recording, and monitoring of video data coming from one or more video or network cameras attached to a Linux system. ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom cameras using a variety of protocols. It is suitable for use as a DIY home video security system and for commercial or professional video security and surveillance. It can also be integrated into a home automation system via X.10 or other protocols.

This contrib is for IP Camera's only.



You can choose to activate one of the php version as long as it is at least >=56

yum --enablerepo=smecontribs,smetest install smeserver-extrarepositories-zmrepo smeserver-extrarepositories-remi-safe  smeserver-extrarepositories-rpmfusion smeserver-extrarepositories-epel
signal-event yum-modify
yum install smeserver-php-scl --enablerepo=smecontribs
config setprop php54 PhpModule disabled
config setprop php55 PhpModule disabled 
config setprop php56 PhpModule enabled
config setprop php70 PhpModule disabled
config setprop php71 PhpModule disabled
config setprop php72 PhpModule disabled
config setprop php73 PhpModule disabled
signal-event php-update

Install Zoneminder from the zmrepo

From a fresh install it should be that easy:

yum install smeserver-zoneminder zoneminder --enablerepo=zmrepo,smecontribs
signal-event zoneminder-update
config set UnsavedChanges no

If you already have few packages depending on ffmpeg, you might need to force the install as zoneminder need a newer ffmpeg. We have built a compatibility package, but this needs two more steps :

wget https://mirror.canada.pialasse.com/releases/9/smetest/x86_64/RPMS/ffmpeg-compat_0.10.16-0.10.16-2.el6.sme.x86_64.rpm
yum install ffmpeg-compat_0.10.16-0.10.16-2.el6.sme.x86_64.rpm --enablerepo=smecontribs,zmrepo
yum install smeserver-zoneminder zoneminder --enablerepo=zmrepo,smecontribs 
rpm -ivh https://mirror.canada.pialasse.com/releases/9/ffmpeg-compat_0.10.16-0.10.16-2.el6.sme.x86_64.rpm 
signal-event zoneminder-update 
config set UnsavedChanges no

NFR Acces Zoneminder via sub domain

Instead of accessing the Zoneminder portal at http://myserver.com/zm, it is possible to change this to e.g. https://cctv.myserver.com. For this the easiest and comfortable way is to use the webapps-common contrib.

Important.png Note:
This part assumes you have followed the complete above installation procedure.

Install the webapps-common contrib according to the Contrib page. Then (as per example for https://cctv.myserver.com) issue the following as root:

db domains set cctv.myserver.com domain Description "CCTV" Content Primary \
Nameservers internet TemplatePath WebAppVirtualHost \
DocumentRoot /usr/share/zoneminder/www RequireSSL enabled
signal-event domain-create cctv.myserver.com

Next you need to adjust the existing (from above) custom template (make a backup copy first):

cp /etc/e-smith/templates/etc/httpd/conf/httpd.conf/98zoneminder /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/98zoneminder
sed -i '/Alias/d' /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/98zoneminder

Followed by:

signal-event webapps-update

to activate all changes. Now you can reach your zoneminder portal at https://cctv.myserver.com


service zoneminder stop
yum --setopt=tsflags=noscripts remove zoneminder smeserver-zoneminder

do not forget to remove the domain you created if you did

signal-event domain-delete cctv.myserver.com
signal-event webapps-update

Now to cleanup everything you may want to perform the usual post-upgrade and reboot events. Apart from the php-scl and webapps contribs, all that is left is the MySQL database zm and the logfiles. It's up to you what to do with them.

ZoneMinder clients

By default, ZoneMinder can be accessed via the webinterface. There are also 3rd party client applications available.

zmNinja, a beautiful fast and efficient client application (freely available on Github) DEMO

- Android - Play Store

- iOS - iTunes

- Mac/Windows/Linux Github


Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-zoneminder component or use this link

Below is an overview of the current issues for this contrib:
No open bugs found.

Know issues and NFR

to use usb camera would need :

 usermod -a -G video www 
 chmod 777 /dev/video0 
  1. or find an alternative, that was what helped me here modprobe uvcvideo
  2. if this is the module for your cam https://forums.zoneminder.com/viewtopic.php?t=23361

NFR  :

  • set php to 56 if default is not at list  56
  • force https and redirect
  • allow to set a http host and if set, remove access using /zm
  • set zoneminder and httpd template to :
    • auth agaisnt http OPT_USE_AUTH = true + AUTH_TYPE = remote + AUTH_RELAY disabled (or stream will fail)
    • no zm auth but httpd auth
    • no auth at all -
    • only httpd auth for admin
    • httpd auth for a list of user -
  • httpd auth for a group "zm group" -
  • set LANG_DEFAULT depending on system language : fr_fr if fr_* or en_uk if en_*
  • set email configs like EMAIL_ADDRESS


Only released version in smecontrib are listed here.

smeserver-zoneminder Changelog: SME 9 (smecontribs)

2018/12/28 Jean-Philipe Pialasse 1.0-7.sme
- add deps [SME: 10539]

- fix sql init file perms [SME: 10676]
2018/03/13 Jean-Philipe Pialasse 1.0-4.sme
- fix wrong cgi path preventing realtime image to display [SME: 10539]

2018/03/13 Jean-Philipe Pialasse 1.0-3.sme
- fix few bugs on initial release [SME: 10539]
- fix auth using SME Server admin user and pass for http auth

- add setting of mysql for innodb
2018/03/13 Jean-Philipe Pialasse 1.0-2.sme
- fix bad dep to phpscl should be php-scl [SME: 10539]

2018/03/13 Jean-Philipe Pialasse 1.0-1.sme
- initial version for SME9 [SME: 10539]
- create password for db, db , and fill it
- based on zoneminder rpm from http://zmrepo.metroeasthomevetcare.com for el6,

 el7 will be on rpmfusion

- added event zoneminder-update
- removed post and postun scripts

- set admin password inside zm user db