From SME Server
Jump to navigationJump to search

zoneminder logo


Tags cctvzoneminderzmvideoip camera

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


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


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.


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 :

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 
signal-event zoneminder-update 
config set UnsavedChanges no

NFR Acces Zoneminder via sub domain

Instead of accessing the Zoneminder portal at, it is possible to change this to e.g. 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 issue the following as root:

db domains set domain Description "CCTV" Content Primary \
Nameservers internet TemplatePath WebAppVirtualHost \
DocumentRoot /usr/share/zoneminder/www RequireSSL enabled
signal-event domain-create
Now you can reach your zoneminder portal at


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

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

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


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


Only released version in smecontrib are listed here.