Zoneminder
zoneminder logo | |
Maintainer | Unnilennium |
---|---|
Url | https://www.zoneminder.com |
Category | |
Tags | cctv, zoneminder, zm, video, ip camera |
Version
Description
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.
Installation
yum --enablerepo=smecontribs,smetest install smeserver-extrarepositories-zmrepo smeserver-extrarepositories-rpmfusion smeserver-extrarepositories-epel
yum install smeserver-zoneminder zoneminder --enablerepo=zmrepo,smecontribs,epel,rpmfusion
You can choose to activate one of the php version as long as it is at least >=56
yum --enablerepo=smecontribs 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
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.
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
Uninstall
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
Bugs
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:
ID | Product | Version | Status | Summary (3 tasks) ⇒ |
---|---|---|---|---|
12373 | SME Contribs | 10.0 | CONFIRMED | /etc/e-smith/events/actions/zoneminder prevents system to start after reboot in bootstrap console |
12219 | SME Contribs | 10.0 | RESOLVED | Unable to install Zoneminder |
11226 | SME Contribs | 10alpha | RESOLVED | Initial Import in SME 10 [smeserver-zoneminder] |
Know issues and NFR
to use usb camera would need :
usermod -a -G video www chmod 777 /dev/video0
- or find an alternative, that was what helped me here modprobe uvcvideo
- if this is the module for your cam https://forums.zoneminder.com/viewtopic.php?t=23361
syslog error when using vlclib:
ALSA lib confmisc.c:550:(snd_determine_driver) could not open control for card 0ALSA lib conf.c:3463:(_snd_config_evaluate) function snd_func_card_driver returned error: Permission denied
see https://forums.gentoo.org/viewtopic-t-319220-highlight-alsa+permission.html
usermod -a -G audio www
also create and add in /etc/udev/rules.d/50-udev.rules
# alsa devices
SUBSYSTEM="sound", GROUP="audio"
KERNEL="controlC[0-9]*", NAME="snd/%k", GROUP="audio"
KERNEL="hw[CD0-9]*", NAME="snd/%k", GROUP="audio"
KERNEL="pcm[CD0-9cp]*", NAME="snd/%k", GROUP="audio"
KERNEL="midiC[D0-9]*", NAME="snd/%k", GROUP="audio"
KERNEL="timer", NAME="snd/%k", GROUP="audio"
KERNEL="seq", NAME="snd/%k", GROUP="audio"
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
Changelog
Only released version in smecontrib are listed here.