Coder Social home page Coder Social logo

iocage-plugin-zoneminder's Introduction

iocage-plugin-zoneminder

Artifact repo for iocage zoneminder plugin.

SSL/TLS Settings

This version of the Zoneminder plugin allows for customisation of SSL/TLS options. It also automatically generates a self-signed SSL certificate and a private key during its first installation so that the initial connection can be secured. As this is a self-signed certificate it will cause security warnings to be thrown by the browser. Ideally, you would provide your own certificate and key using the plugin settings to avoid the warnings, as soon as possible. The self-signed certificate will expire after 366 days.

A possible scheme to do that efficiently on a host such as FreeNAS is to copy a valid certificate and private key file from the host's /etc/certificates/mycert.pem into the plugin at /mnt/YourDataset/iocage/jails/YourJail/root/usr/local/etc/ssl/mycert.pem directory and specify /usr/local/etc/ssl/mycert.pem for the plug in to use. You need to do that for the private key, too. You can set-up a Tasks/Cron Job on the FreeNAS host to copy them regularly, especially if using an automated certificate renewal tool like ACME LetsEncrypt. This way there is no need for the plugin to have to manage its certificate renewal and you will achieve a reasonable level of network security.

Settings

All the configurable settings are configured in settings.json. They are:

  • httpport
  • httpsport
  • sslcert
  • sslkey

Assuming your plugin jail is called "zoneminder" you can set them by calling something along the lines of:

iocage set -P httpport=8349 zoneminder
iocage set -P sslcert=/usr/local/etc/ssl/mycert.pem zoneminder

Bear in mind if you are setting the value of sslcert and sslkey you will get an error once you have set the first parameter but before the second one. This error, which you can ignore, simply states that the just-changed file does not match the other one. Once the key and certificate match each other all is good. A way to avoid that would be for iocage not to call the servicerestart command when setting multiple values, but it does not do that at present. Another way would be to only make one of the two settings require a restart, but that would be error-prone in other ways.

Admin UI issue

Please note that the Manage admin UI defaults to HTTPS on the default port (443) because of a bug in iocage (see iocage/iocage#1163) that prevents the adminportal URL from being formed correctly using custom values. Once that bug has been fixed it will be possible to replace the ui.json with the below one to make it work automatically:

{
    "adminportal": "%%S%%://%%IP%%%%P%%/zm",
    "adminportal_placeholders": {
	"%%S%%": "adminprotocol",
	"%%P%%": "adminport"
    },
    "docurl": "https://github.com/freenas/iocage-plugin-zoneminder"
}

Configuring Zoneminder To Work With More Cameras (Montage View)

By default the montage view will only work with something like 4 cameras at a time. This is because of the limits placed on the configuration of the software. More processes are needed in order for the software to work, so it would be adviseable to enter into the jail and make changes to the following files, with the following advice:

Edit:

/etc/rc.conf

And increase fcgiwrap_flags -c 4 to something that matches your configuration. IIRC one is needed per camera stream. Please make sure to note that this may have an impact on local resources.

All major browsers (because they all use the same engines now) limit the number of connections to each server, so you need to also enable a setting in zone minder called multiport, that was added to zoneminder recently. Before you do so you MUST add more ports to the nginx config.

Edit:

/usr/local/etc/nginx/conf.d/zoneminder.conf

And add an additional listen directive, for the additional ports that zoneminder can use. Since nginx can take multiple ports per directive you could add something like this:

listen 30000-30025;

Right under:

listen 80;

You must then go to the zoneminder GUI config, and edit MIN_STREAMING_PORT and set it at the starting port (in this example): 30000

At some point, the author that wrote these montage instructions, also edited this file:

/usr/local/etc/php-fpm.d/zoneminder.conf

And modified pm.max_childern to be:

pm.max_childern = 50

The author does not know if this matters, and did not have time to look up the setting, and test the config mod. Sorry.

iocage-plugin-zoneminder's People

Contributors

a-stjohn avatar davidjb avatar kmoore134 avatar miwi-fbsd avatar rafallukawiecki avatar webdawg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

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.