{"id":11014,"date":"2020-12-20T18:21:48","date_gmt":"2020-12-20T23:21:48","guid":{"rendered":"https:\/\/myriad.ca\/?p=11014"},"modified":"2022-08-20T07:19:21","modified_gmt":"2022-08-20T11:19:21","slug":"zm-docker-ubuntu20-04","status":"publish","type":"post","link":"https:\/\/myriad.ca\/index.php\/2020\/12\/20\/zm-docker-ubuntu20-04\/","title":{"rendered":"Zoneminder Docker Install on Ubuntu 20.04"},"content":{"rendered":"[vc_row type=&#8221;in_container&#8221; full_screen_row_position=&#8221;middle&#8221; column_margin=&#8221;default&#8221; column_direction=&#8221;default&#8221; column_direction_tablet=&#8221;default&#8221; column_direction_phone=&#8221;default&#8221; scene_position=&#8221;center&#8221; text_color=&#8221;dark&#8221; text_align=&#8221;left&#8221; row_border_radius=&#8221;none&#8221; row_border_radius_applies=&#8221;bg&#8221; overflow=&#8221;visible&#8221; overlay_strength=&#8221;0.3&#8243; gradient_direction=&#8221;left_to_right&#8221; shape_divider_position=&#8221;bottom&#8221; bg_image_animation=&#8221;none&#8221;][vc_column column_padding=&#8221;no-extra-padding&#8221; column_padding_tablet=&#8221;inherit&#8221; column_padding_phone=&#8221;inherit&#8221; column_padding_position=&#8221;all&#8221; column_element_direction_desktop=&#8221;default&#8221; column_element_spacing=&#8221;default&#8221; desktop_text_alignment=&#8221;default&#8221; tablet_text_alignment=&#8221;default&#8221; phone_text_alignment=&#8221;default&#8221; background_color_opacity=&#8221;1&#8243; background_hover_color_opacity=&#8221;1&#8243; column_backdrop_filter=&#8221;none&#8221; column_shadow=&#8221;none&#8221; column_border_radius=&#8221;none&#8221; column_link_target=&#8221;_self&#8221; column_position=&#8221;default&#8221; gradient_direction=&#8221;left_to_right&#8221; overlay_strength=&#8221;0.3&#8243; width=&#8221;1\/1&#8243; tablet_width_inherit=&#8221;default&#8221; animation_type=&#8221;default&#8221; bg_image_animation=&#8221;none&#8221; border_type=&#8221;simple&#8221; column_border_width=&#8221;none&#8221; column_border_style=&#8221;solid&#8221;][vc_column_text]This tutorial will enable you to install Zoneminder 35.16 on Ubuntu 20.04 using a Docker container. Docker, in my opinion, represents a further abstraction of the software architecture and thus makes a simple operation more complex. But while it is tricky to initially set up, once you do it, it works well. Anecdotally, I have noticed on two BHYVE virtual servers I have built this project on, I find the Docker version runs much more efficiently that a traditional install and that the server load is less than half when run inside the Docker container.<\/p>\n<div class=\"brz-root__container brz-reset-all\">\n<section id=\"gwpwxrsymvodnbrpuqhyixdfcktklydsjwtm\" class=\"brz-section brz-css-zhcpg\" data-uid=\"gwpwxrsymvodnbrpuqhyixdfcktklydsjwtm\">\n<div class=\"brz-section__content brz-section--boxed brz-css-ztipu brz-css-dgcki\" data-custom-id=\"fvllhcgwbrpcoqaxjvdqncrvqaunvpzarwum\">\n<div class=\"brz-container brz-css-rkhma\">\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"diozfiyilupuicsnjsniowmjlilpxafnqpam\">\n<p class=\"brz-tp-paragraph\">Firstly, I created this version on TrueNAS v. 12 using a virtual BHYVE instance which, having worked with KVM vm&#8217;s previously, I find the FreeNAS\/TrueNAS virtual servers MUCH easier to use, snapshot and work with. Though if you are using other platforms, this tutorial should work for you as well. This tutorial assumes you have created an instance with one cpu and eight GB of ram and a 100gb virtual disk for the OS and a 500 GB or greater volume for camera storage (use &#8216;virtio&#8217; if you&#8217;re using BHYVE). This how-to works with Ubuntu 20.04, though it should work on other distros\/UB versions, ymmv. It assumes that you have Docker installed and properly tested. If you are new to Docker, <a class=\"link--external\" href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-install-and-use-docker-on-ubuntu-20-04\" target=\"_blank\" rel=\"noopener\" data-brz-link-type=\"external\">click on this link<\/a> for a quick tutorial to get you up and running. So let&#8217;s get started:<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"cntrfjddeyrabxnthvxwfbhsqtxuxfouvwdt\">\n<p class=\"brz-tp-paragraph\">Here are the steps I followed to get Zoneminder 35.16 on Ubuntu 20.04:<\/p>\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\">1 &#8211; Pull docker image:<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-bazwf brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-ytlnz\" data-custom-id=\"wrbvtuihbbbmspplunbsptwtjriojuggswbr\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre> docker pull dlandon\/zoneminder.master<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"eyrdpwqidjamdhjvdbaglnftwvakfdsiscaf\">\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\">2 &#8211; Open a ssh command prompt and run the command below to create the Zoneminder container. For more information on the different options set below <a class=\"link--external\" href=\"https:\/\/github.com\/dlandon\/zoneminder\" target=\"_blank\" rel=\"noopener\" data-brz-link-type=\"external\">click here<\/a>. Copy the command below as one block of text and paste it into the command window (change the timezone option and the \/mnt\/ option to suit your environment (**<span class=\" brz-span\">see step 6 below<\/span> for more info about mounting external drives <em>before<\/em> you press enter):<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-fehyx brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-bxmxf\" data-custom-id=\"ijvjcdqczmrzpsgqjffjyladxzhcnfjxathd\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>docker run -d --name=\"Zoneminder\" \\\n--net=\"bridge\" \\\n--privileged=\"true\" \\\n-p 8080:80\/tcp \\\n-p 8443:443\/tcp \\\n-p 9000:9000\/tcp \\\n-e TZ=\"America\/Toronto\" \\\n-e SHMEM=\"50%\" \\\n-e PUID=\"99\" \\\n-e PGID=\"100\" \\\n-e INSTALL_HOOK=\"0\" \\\n-e INSTALL_FACE=\"0\" \\\n-e INSTALL_TINY_YOLOV3=\"0\" \\\n-e INSTALL_TINY_YOLOV4=\"0\" \\\n-e INSTALL_YOLOV3=\"0\" \\\n-e INSTALL_YOLOV4=\"0\" \\\n-e NO_START_ZM=\"1\" \\\n-v \"\/mnt\/Zoneminder\":\"\/config\":rw \\\n-v \"\/var\/cache\/zoneminder\":\"\/var\/cache\/zoneminder\":rw \\\ndlandon\/zoneminder.master<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-mlglu brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-nrnmg\" data-custom-id=\"evknfyktqfadlgtatbwpceozwhfvekskocyi\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>docker logs -f Zoneminder 'check progress of install<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"pdnufgwhfcnigucjbwvbxpenpwnvvhvgzghq\">\n<p class=\"brz-tp-paragraph brz-mb-lg-0 brz-mt-lg-0\">3 &#8211; After the Zoneminder container is installed we need to fix the MariaDB instance, which on my installation at least, didn&#8217;t run and generated an error, resulting in Zoneminder not starting. So enter bash shell on your docker instance:<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-ypnbp brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-qbrgy\" data-custom-id=\"mkknxieizgmwdtgjvqiatrffnpzkqreeukpx\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>docker exec -it Zoneminder \/bin\/bash<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"gtuwrckeehzklwbmwlfsxrqeipigjtjpparq\">\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\">Remove the zm database:<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-jkndy brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-ynzzk\" data-custom-id=\"lmswsrnbytsbvbygjtsmpesjtkzagjvcxgud\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>    mysql -u root -p 'enter mysql \n\tMariaDB [(none)]&gt; SHOW DATABASES; 'list databases\n\tMariaDB [(none)]&gt; DROP DATABASE IF EXISTS zm; 'delete existing zm db\n\tMariaDB [(none)]&gt; exit;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"nwlycwmgzxwydloiwuirptlvcqlvsagnskvt\">\n<p class=\"brz-tp-paragraph brz-mb-lg-0 brz-mt-lg-0\">4 &#8211; Now create new zm db (root password is empty, but you can change it if you wish) and start mysql and Zoneminder<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-lwybl brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-lwzra\" data-custom-id=\"oqpwlupwgflggqtexwmlyaowufdpbblfnjdm\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>mysql -uroot -p &lt; \/usr\/share\/zoneminder\/db\/zm_create.sql\nservice mysql start\nservice zoneminder start\nexit 'quit the bash shell<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"wkzzufgneanitdkyehmouclclbpcfnbhemed\">\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\">5 &#8211; Now we need to adjust the <strong>NO_START_ZM=&#8221;1&#8243;<\/strong> environment variable so Zoneminder will start automagically when the container in started. I know you can spawn a new container with the modified variable and delete the old one AND rename the modified one, etc. But I prefer to edit the json and just modify the existing container (see my abstraction comment in the preamble). Find your container and edit it as follows to remove: ,&#8221;NO_START_ZM=1&#8243; to &#8220;NO_START_ZM=0&#8221; from the &#8220;Env&#8221;:[] section and save.<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-slgwv brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-mdlcv\" data-custom-id=\"dgxvyfebxkqfwawbzcxrzjlfpxwhnweamnks\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>docker container ls -a  'list containers\ndocker container stop Zoneminder '[CONTAINER ID] or [container name]  'stop your container\nnano \/var\/lib\/docker\/containers\/[your container]\/config.v2.json<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"xnihmbzogmpfotoqkjqgltfyclinwlvjbdvr\">\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\"><span class=\" brz-span\">6 &#8211; If you adjusted the variables in step 2 above you can skip this step, but I just wanted to provide readers with some context as to why we set these particular settings and what they do. Zoneminder, by its design uses a lot of disk space which is stored by default in the &#8216;\/var\/cache\/zoneminder\/events&#8217; folder. Now it is not a good idea to put this folder on the same drive as your &#8216;\/&#8217; folder due to the fact that if your hard drive fills up completely, your system will die. So I like to mount an additional drive just to store the camera recordings and associated data.<\/span><\/p>\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\">The json syntax is as follows: <strong>{&#8220;Source&#8221;:&#8221;[\/my_external_drive]&#8221;,&#8221;Destination&#8221;:&#8221;\/var\/cache\/zoneminder&#8221; <\/strong>*remember, \/mnt\/zoneminder is mounted internally inside your container by default so you want to change that line to your external drive which you have previously mounted to your vm. Change the line: ,&#8221;MountPoints&#8221;: and change <strong>{&#8220;Source&#8221;:&#8221;\/mnt\/zoneminder&#8221;,&#8221;Destination&#8221;:&#8221;\/var\/cache\/zoneminder&#8221;<\/strong> to <strong>{&#8220;Source&#8221;:&#8221;\/var\/cache\/zoneminder&#8221;,&#8221;Destination&#8221;:&#8221;\/var\/cache\/zoneminder&#8221;<\/strong> Also, using this step will allow those of you who need to mount more than one storage volume to your container do so easily by adding more mount points.<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-eqfod brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-qcvhb\" data-custom-id=\"nchhasfsbcgyvbcmzgmeaoxxtlrtrhqgmroh\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre> docker container ls -a  'stop your container\nnano config.v2.json 'See editing details above \nservice docker restart 'restart docker service and check your newly mounted volume for zm directories\ndocker container start Zoneminder 'start it up\ndocker logs -f Zoneminder 'check logs for errors<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"lnwagxpzmnjpaevmjqltpzebppwqaxklisbm\">\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\">7 &#8211; Now we have Zoneminder up and running we need to make it reachable from the outside world. To do this we are going to set up apache2 outside the container, configure a Let&#8217;s Encrypt certificate for it and establish a proxy connection to our webserver inside the Docker container which we have set up to listen on ports 8080 and 8443.<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-ccrux brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-esayk\" data-custom-id=\"qymytwhbxnrrswxyirdwrevreoungkazxioc\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>sudo apt install apache2 'install apache2\nsudo a2enmod proxy\nsudo a2enmod proxy_http\nsudo a2enmod rewrite\nsudo a2enmod ssl\nsudo a2enmod proxy_balancer\nsudo a2enmod lbmethod_byrequests 'install needed apache mods\nsudo a2ensite zm.example.com 'put your domain here\nsudo systemctl restart apache2<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"wuowpszgprnuwksqdiyuvvgfhoseximylhcb\">\n<p class=\"brz-tp-paragraph brz-mb-lg-0 brz-mt-lg-0\">8 &#8211; Create a Let&#8217;s Encrypt Certificate.<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-axwpw brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-inwjz\" data-custom-id=\"cwlbzhcvirakizwcqckwowmsspdntdehjmpz\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre># Install certbot:\nsudo apt install python3-certbot-apache\n# Issue the following command to create e certificate:\nsudo certbot --apache 'Follow the prompts. Certbot will find our zm.example.com domain and create a cert.<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"yutgpgkyykliubmrtvsgfglrcfnuqujvntqe\">\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\">9 &#8211; Set up the zm.example.com.conf file. Paste the following below into zm.example.com.conf replacing existing text. Adjust servername and your local host&#8217;s IP (don&#8217;t use &#8216;localhost&#8217;)<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-gxlmr brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-ouxwi\" data-custom-id=\"chyuowgudnueocwskyvhgbnqeptxbogzybyy\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>     \n\u2039VirtualHost *:80\u203a\n     ServerName zm.example.ca\n\nRewriteEngine on\nRewriteCond %{SERVER_NAME} =zm.example.ca\nRewriteRule ^ https:\/\/%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]\n\u2039\/VirtualHost\u203a\n\u2039VirtualHost *:443 *:30001 *:30002 *:30003 *:30004 *:30005\u203a\n\n    ServerName zm.example.ca\n            SSLEngine On\n        \tSSLProxyEngine On\n    \n            Order deny,allow\n            Allow from all\n    \n    ProxyRequests On\n    ProxyPreserveHost On\n        ProxyPass \/zm\/ http:\/\/10.40.10.67:8080\/zm\/\n        ProxyPassReverse \/zm\/ http:\/\/10.40.10.67:8080\/zm\/\n        ProxyPass \/ http:\/\/10.40.10.67:8080\/zm\/\n        ProxyPassReverse \/ http:\/\/10.40.10.67:8080\/zm\/\n\nProxyPreserveHost On\n\u2039\/VirtualHost\u203a\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"rfoeripxsrzfzzizddxsebwumttjjctixwlr\">\n<p class=\"brz-tp-paragraph brz-mb-lg-0 brz-mt-lg-0\">10 &#8211; Enable ssmtp for sending mail from Zoneminder<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-jfwhq brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-kgowx\" data-custom-id=\"ummpmvyxduzhxqbortaabxlljwwlmrojbtrg\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>docker exec -it Zoneminder \/bin\/bash 'get into the shell\nsudo nano \/etc\/ssmtp\/revaliases 'edit ssmtp options<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"ftwqeqztaswpdkarhwzonoxjnrjmvrmunmcy\">\n<p class=\"brz-mt-lg-0 brz-mb-lg-0 brz-tp-paragraph\">Add the following below to your revaliases file (change your settings to suit)<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-irvpq brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-qftyt\" data-custom-id=\"vphtsfgpfoebjwxpiqjqbsmvbehianvyjmgh\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>\t\t# sSMTP aliases\n# \n# Format:\tlocal_account:outgoing_address:mailhub\n#\n# Example: root:your_login@your.domain:mailhub.your.domain[:port]\n# where [:port] is an optional port number that defaults to 25.\nroot:zm@example.com:smtp.mailgun.org:587\nwww-data:zm@example.com:smtp.mailgun.org:587\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"xyuisfiwyglogwamzyvpthodkfhsorixxkgo\">\n<p class=\"brz-tp-paragraph brz-mb-lg-0 brz-mt-lg-0\">Now edit your ssmtp file.<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-qmnjd brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-zsddc\" data-custom-id=\"ostxjjlkxxmlgfhowecfwbydstojmsebqnmp\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre># Are users allowed to set their own From: address?\n# YES - Allow the user to specify their own From: address\n# NO - Use the system generated From: address\nFromLineOverride=NO\nroot=zm@mg.example.com\nmailhub=smtp.mailgun.org:587\nhostname=localhost\nRewriteDomain=mailgun.org\nUseSTARTTLS=YES\nUseTLS=YES\nAuthUser=zm@mg.example.com\nAuthPass=[your_PW]<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"hcaiapzsqziqtppzlembtbszplnhfpyapxal\">\n<p class=\"brz-tp-paragraph brz-mb-lg-0 brz-mt-lg-0\">Test your mail.<\/p>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-css-acqwz brz-wrapper\">\n<div class=\"brz-embed-code brz-css-zaiej brz-css-xsvoh\" data-custom-id=\"jdmstebdvvmxusolpqyuqtjparmbtaoydgyj\">\n<div class=\"brz-embed-content\">\n<div class=\"\">\n<pre>sudo echo \"Subject: sendmail test\" | sendmail -v me@example.com 'send a test\nsudo ln -s \/usr\/bin\/ssmtp \/usr\/lib\/sendmail 'sym link for zm<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-css-shllh brz-wrapper\">\n<div class=\"brz-rich-text brz-css-tdctj\" data-custom-id=\"iyshllmvkedjrloialmwjjhmcxzflzkciygk\">\n<p class=\"brz-tp-paragraph\">Still not working as you expect? Check out the log files by running <span class=\"brz-pre-population-visible\">#<\/span>docker logs -f Zoneminder before you post a comment. Still not working? \u00a0Just telling me, &#8216;it&#8217;s not working&#8217;, does not provide enough information to troubleshoot your problem. You wouldn&#8217;t take your car into the garage and say, &#8220;my car doesn&#8217;t work!&#8221; &#8211; you need to give me some clues to help you fix your problem. Check your steps carefully, every command has to be issued as it is shown in the how to. If you find any mistakes please let me know and I will fix them right away.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<p>&nbsp;[\/vc_column_text][\/vc_column][\/vc_row]\n","protected":false},"excerpt":{"rendered":"<p>[vc_row type=&#8221;in_container&#8221; full_screen_row_position=&#8221;middle&#8221; column_margin=&#8221;default&#8221; column_direction=&#8221;default&#8221; column_direction_tablet=&#8221;default&#8221; column_direction_phone=&#8221;default&#8221; scene_position=&#8221;center&#8221; text_color=&#8221;dark&#8221; text_align=&#8221;left&#8221; row_border_radius=&#8221;none&#8221; row_border_radius_applies=&#8221;bg&#8221; overflow=&#8221;visible&#8221; overlay_strength=&#8221;0.3&#8243; gradient_direction=&#8221;left_to_right&#8221; shape_divider_position=&#8221;bottom&#8221; bg_image_animation=&#8221;none&#8221;][vc_column column_padding=&#8221;no-extra-padding&#8221; column_padding_tablet=&#8221;inherit&#8221; column_padding_phone=&#8221;inherit&#8221; column_padding_position=&#8221;all&#8221; column_element_direction_desktop=&#8221;default&#8221; column_element_spacing=&#8221;default&#8221; desktop_text_alignment=&#8221;default&#8221; tablet_text_alignment=&#8221;default&#8221;&#8230;<\/p>\n","protected":false},"author":2,"featured_media":11863,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[469],"tags":[],"class_list":{"0":"post-11014","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-linux"},"_links":{"self":[{"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/posts\/11014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/comments?post=11014"}],"version-history":[{"count":11,"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/posts\/11014\/revisions"}],"predecessor-version":[{"id":12765,"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/posts\/11014\/revisions\/12765"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/media\/11863"}],"wp:attachment":[{"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/media?parent=11014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/categories?post=11014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myriad.ca\/index.php\/wp-json\/wp\/v2\/tags?post=11014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}