Difference between revisions of "Zoneminder"

From SME Server
Jump to navigationJump to search
 
(9 intermediate revisions by 3 users not shown)
Line 20: Line 20:
 
<!-- keep this first element as is, you can add some if needed -->
 
<!-- keep this first element as is, you can add some if needed -->
 
{{#smeversion: {{#var:smecontribname}} }}
 
{{#smeversion: {{#var:smecontribname}} }}
{{#smeversion: {{#var:contribname}} | this is available in the zmrepo external repository with most of the dependencies}}
 
  
 
==Description==
 
==Description==
Line 28: Line 27:
  
 
==Installation==
 
==Installation==
====Requirements====
+
<tabs container><tab name="For SME 10">
 +
yum --enablerepo=smecontribs,smetest install smeserver-extrarepositories-zmrepo smeserver-extrarepositories-rpmfusion smeserver-extrarepositories-epel
 +
 
 +
yum install smeserver-zoneminder zoneminder --enablerepo=zmrepo,smecontribs,epel,rpmfusion
 +
</tab><tab name="For SME 9">
 
You can choose to activate one of the php version as long as it is at least >=56
 
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
+
  yum --enablerepo=smecontribs install smeserver-extrarepositories-zmrepo smeserver-extrarepositories-remi-safe  smeserver-extrarepositories-rpmfusion smeserver-extrarepositories-epel
 
  signal-event yum-modify
 
  signal-event yum-modify
 
  yum install smeserver-php-scl --enablerepo=smecontribs
 
  yum install smeserver-php-scl --enablerepo=smecontribs
Line 42: Line 45:
 
  signal-event php-update
 
  signal-event php-update
  
====Install Zoneminder from the zmrepo====
 
 
From a fresh install it should be that easy:
 
From a fresh install it should be that easy:
 
  yum install smeserver-zoneminder zoneminder --enablerepo=zmrepo,smecontribs
 
  yum install smeserver-zoneminder zoneminder --enablerepo=zmrepo,smecontribs
 +
 
  signal-event zoneminder-update
 
  signal-event zoneminder-update
 
  config set UnsavedChanges no
 
  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 :
 
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
 
  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=smecontirbs,zmrepo
+
  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  
 
  yum install smeserver-zoneminder zoneminder --enablerepo=zmrepo,smecontribs  
 
  rpm -ivh <nowiki>https://mirror.canada.pialasse.com/releases/9/ffmpeg-compat_0.10.16-0.10.16-2.el6.sme.x86_64.rpm</nowiki>  
 
  rpm -ivh <nowiki>https://mirror.canada.pialasse.com/releases/9/ffmpeg-compat_0.10.16-0.10.16-2.el6.sme.x86_64.rpm</nowiki>  
 
  signal-event zoneminder-update  
 
  signal-event zoneminder-update  
 
  config set UnsavedChanges no
 
  config set UnsavedChanges no
 +
 +
</tab>
 +
</tabs>
  
 
== NFR Acces Zoneminder via sub domain==
 
== NFR Acces Zoneminder via sub domain==
Line 67: Line 73:
 
  signal-event domain-create cctv.myserver.com
 
  signal-event domain-create cctv.myserver.com
  
 
+
  Now you can reach your zoneminder portal at https://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==
 
==Uninstall==
Line 95: Line 95:
 
- Mac/Windows/Linux [https://github.com/pliablepixels/zmNinja/releases Github]
 
- Mac/Windows/Linux [https://github.com/pliablepixels/zmNinja/releases Github]
  
=== Bugs ===
+
== Bugs ==
 
Please raise bugs under the SME-Contribs section in [http://bugs.contribs.org/enter_bug.cgi bugzilla]
 
Please raise bugs under the SME-Contribs section in [http://bugs.contribs.org/enter_bug.cgi bugzilla]
 
and select the {{#var:smecontribname}} component or use {{BugzillaFileBug|product=SME%20Contribs|component={{#var:smecontribname}}|title=this link}}
 
and select the {{#var:smecontribname}} component or use {{BugzillaFileBug|product=SME%20Contribs|component={{#var:smecontribname}}|title=this link}}
Line 101: Line 101:
 
Below is an overview of the current issues for this contrib:{{#bugzilla:columns=id,product,version,status,summary|sort=id|order=desc|component={{#var:smecontribname}} |noresultsmessage=No open bugs found.}}  
 
Below is an overview of the current issues for this contrib:{{#bugzilla:columns=id,product,version,status,summary|sort=id|order=desc|component={{#var:smecontribname}} |noresultsmessage=No open bugs found.}}  
  
=== Know issues and NFR ===
+
== Know issues and NFR ==
 
   
 
   
 
'''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
 
  
<nowiki>#</nowiki> if this is the module for your cam <nowiki>https://forums.zoneminder.com/viewtopic.php?t=23361</nowiki>
+
# 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>
 +
'''syslog error when using vlclib:'''<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>see https://forums.gentoo.org/viewtopic-t-319220-highlight-alsa+permission.html<syntaxhighlight lang="bash">
 +
usermod -a -G audio www
 +
</syntaxhighlight>also create and add  in  /etc/udev/rules.d/50-udev.rules<syntaxhighlight lang="bash">
 +
# 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"
 +
</syntaxhighlight>
  
 
'''NFR  :'''
 
'''NFR  :'''
Line 125: Line 139:
 
* set email configs like EMAIL_ADDRESS
 
* set email configs like EMAIL_ADDRESS
  
===Changelog===
+
==Changelog==
 
Only released version in smecontrib are listed here.
 
Only released version in smecontrib are listed here.
  
Line 133: Line 147:
 
<!-- list of category you want to see this page in -->
 
<!-- list of category you want to see this page in -->
 
[[Category: Contrib]]
 
[[Category: Contrib]]
 +
[[Category: Video]]
 
<!-- Please keep there the template revision  number as is -->
 
<!-- Please keep there the template revision  number as is -->

Latest revision as of 04:28, 25 March 2023




zoneminder
Zoneminder.png
zoneminder logo
MaintainerUnnilennium
Urlhttps://www.zoneminder.com
Category

Contrib

Tags cctvzoneminderzmvideoip camera


Warning.png Warning:
This is early alpha development please use only on test machine, not for production


Version

Devel 10:
Contrib 9:
smeserver-zoneminder
The latest version of smeserver-zoneminder is available in the SME repository, click on the version number(s) for more information.


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.


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
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:

IDProductVersionStatusSummary (3 tasks)
12373SME Contribs10.0CONFIRMED/etc/e-smith/events/actions/zoneminder prevents system to start after reboot in bootstrap console
12219SME Contribs10.0RESOLVEDUnable to install Zoneminder
11226SME Contribs10alphaRESOLVEDInitial 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 
  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

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.