Skip to content

An always up-to-date automatically building ZoneMinder container

Notifications You must be signed in to change notification settings

zoneminder-containers/zoneminder-base

Repository files navigation

Zoneminder Container

Docker Build DockerHub Pulls Status

Maintenance Mode Notice

I do not personally use this and as such will have limited time to invest into this project. Basic things will be fixed, however larger issues from either changes from Zoneminder or otherwise will likely not be fixed. If there is substantial demand for a new feature/improvement, I will consider implementing it if I have time. Sponsoring me and noting this is the reason you are doing so will help me invest more time into this as well.

Why

This is an automatically updating ZoneMinder container built using s6-overlay with full support for all things containers. This aims to be the container that will never die as things will automatically keep themselves up to date and allow for easy selection/testing of various ZoneMinder versions.

This container aims to follow all of the best practices of being a container meaning that the software and persistent data are separated, with the container remaining static. This means the container can easily be updated/restored provided the persistent data volumes are backed up.

Not only does this aim to follow all of the best practices, but this also aims to be the easiest container with nearly everything configurable through environment variables or automatically/preconfigured for you!

There is also full support for multi-server setups with automation to link all servers!

How

  1. Install Docker and docker-compose
  2. Download docker-compose.yml or docker-compose-multi.yml depending on single/multi server setups.
  3. Download .env
  4. Place all these files in the same folder and configure .env and the yml files as you please.
  5. Run docker compose up -d to start.

NOTE: The default docker-compose.yml files use the latest tag which runs the latest release build of ZoneMinder.

Defining a Version

  1. Replace latest in the docker-compose.yml file with any ZoneMinder version you would like to run. You can find all available releases here. Ex. 1.36.1

Note: For those new to Docker, these values are known as the container tag.

Available Tags

  • branch_name: This is the branch name of this repository, not Zoneminder.
  • release: References the latest release
  • latest: Same as release
  • nightly: Nightly builds from master on Zoneminder

Updates

  1. Replace the tag with the new version to update to, or for latest, simply continue to the next step.
  2. docker compose pull
  3. docker compose up -d

Helpful Info

Logs are rotated according to the TAI64N standard

/data is not included in fix-permissions because it takes a substantial amount of time to run for the events folder when there are a large number of files

The web interface is accessible at the root directory. Do not use the /zm subdirectory to access the interface.

Issues:

  • Tell me?

Future Containers:

  1. eventserver-base (Currently WIP)
  • Install ZM Event Server
  • Automatically enable Event Server and modify Servers table entry to enable Event Server
  1. eventserver-mlapi-base
  • Install YOLO ML Models without opencv
  1. eventserver-mlapi
  • Build and install standard opencv
  1. eventserver-mlapi-cuda
  • Develop autobuilding opencv with cuda support container