Code Monkey home page Code Monkey logo

zoneminder's Introduction

Zoneminder Docker (Deprecated)

(Current version: 1.36)

This container will no longer be maintained or updated. The current ZM Event Server is being phased out at the end of 2021 and this container will not be updated when a new ZM Event Server is released.

About

This is an easy to run dockerized image of ZoneMinder along with the the ZM Event Notification Server and its machine learning subsystem.

The configuration settings that are needed for this implementation of Zoneminder are pre-applied and do not need to be changed on the first run of Zoneminder.

This version will now upgrade Zoneminder from previous versions.

You can donate to dlandon here.

Support

There is minimal support for this docker container at this time.

Go to the Zoneminder Forum here for support.

Installation

Install the docker container by going to a command line and enter the command:

docker pull oren47/zoneminder

This will pull the zoneminder docker image. Once it is installed you are ready to run the docker container.

Before you run the image, feel free to read the configuration section below to customize various settings.

To run Zoneminder:

docker run -d --name="Zoneminder" \
--net="bridge" \
--privileged="false" \
--shm-size="8G" \
-p 8443:443/tcp \
-p 9000:9000/tcp \
-e TZ="America/New_York" \
-e PUID="99" \
-e PGID="100" \
-e MULTI_PORT_START="0" \
-e MULTI_PORT_END="0" \
-v "/mnt/Zoneminder":"/config":rw \
-v "/mnt/Zoneminder/data":"/var/cache/zoneminder":rw \
dlandon/zoneminder.machine.learning

For http:// access use: -p 8080:80/tcp

Shared Memory

Set shared memory to half of your installed memory.

Subsequent runs

You can start/stop/restart the container anytime. You don't need to run the command above every time. If you have already created the container once (by the docker run command above), you can simply do a docker stop Zoneminder to stop it and a docker start Zoneminder to start it any time (or do a docker restart Zoneminder).

Customization

  • Set MULTI_PORT_START and MULTI_PORT_END to define a port range for ES multi-port operation.
  • The commands above use a host path of /mnt/Zoneminder to map the container config and cache directories. This is going to be persistent directory that will retain data across container/image stop/restart/deletes. ZM mysql/other config data/event files/etc are kept here. You can change this to any directory in your host path that you want to.

User Script

You can enable a custom user script that will run every time the container is started.

Put your script in the /mnt/Zoneminder/ folder and name it userscript.sh. The script will be executed each time the container is started before Zoneminder is started. Be sure to chmod +x userscript.sh so the script is executable. Set ADVANCED_SCRIPT="1" environment variable to enable your script.

Adding Nvidia GPU support to the Zoneminder.

You will have to install support for your graphics card. If you are using Unraid, install the Nvidia plugin and follow these instructions. On other systems install the Nvidia docker, see here.

After you confirm the graphics card is seen by the Zoneminder docker container, you can then compile opencv with GPU support. Be sure your container can see the graphics card. Read the opencv.sh script for instructions on how to download the packages needed for compiling opencv. You will need to get a developer account for some of the packages because of licensing. Get into the docker command line by docker exec -it Zoneminder /bin/bash and do this once you have the packages:

cd /config/opencv
./opencv.sh

This will compile the opencv with GPU support. It takes a LONG time. You should then have GPU support.

You will have to install the CuDNN runtime yourself based on your particular setup.

Post install configuration and caveats

  • After successful installation, please refer to the ZoneMinder, Event Server and Machine Learning configuration guides from the authors of these components to set it up to your needs. Specifically, if you are using the Event Server and the machine learning hooks, you will need to customize /etc/zm/zmeventnotification.ini and /etc/zm/objectconfig.ini.

  • Note that by default, this docker build runs ZM on port 443 inside the docker container and maps it to port 8443 for the outside world. Therefore, if you are configuring /etc/zm/objectconfig.ini or /etc/zm/zmeventnotification.ini remember to use https://localhost:443/<etc> as the base URL.

  • Push notifications with images will not work unless you replace the self-signed certificates that are auto-generated. Feel free to use the excellent and free LetsEncrypt service if you'd like.

Usage

To access the Zoneminder GUI, browse to: https://<your host ip>:8443/zm or http://<your host ip>:8080/zm if -p 8080:80/tcp is specified.

The zmNinja Event Notification Server is accessed at port 9000. Security with a self signed certificate is enabled. You may have to install the certificate on iOS devices for the event notification to work properly.

Troubleshooting when the container fails

If you have a situation where the container fails to start, you can set NO_START_ZM="1" as an environment variable - this will spin up the container but will not automatically start the MySql and Zoneminder processes. This way, you can get into a command line in the container (docker exec -it Zoneminder /bin/bash) and troubleshoot your issue by using the following commands to start MySql and Zoneminder and fix any errors/problems with them starting.

service mysql start
service zoneminder start

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.