How to use Serveo to view Zoneminder Console & Motion Detection events remotely – Ubuntu 20.04

Installation procedure of Docker Zoneminder Master on Ubuntu 20.04 is described in the following post.

How to install ZoneMinder Master, v1.35.4 on UBUNTU 20.04 LTS ( Focal Fossa) Using a Docker image

After the installation , the Zoneminder Console can be obtained from the following link.


The next task is to view the Zoneminder remotely using Serveo

The Serveo is a software that can expose a local server to the internet.

There is no installation or signup required.

Serveo is an SSH server just for remote port forwarding. When a user connects to Serveo, they get a public URL that anybody can use to connect to their localhost server.

Open the Ubuntu terminal in the local computer where the Zoneminder is installed.

Let us select the name of the public url as abcd2020

sudo start zm

ssh -R abcd2020:80:localhost:8080

Then you get the following public url of the port forwarded (from 8080 to 80) localhost of the local pc

Forwarding HTTP traffic from
Figure:-2 Using Serveo to get the public url of the localhost:8080

Now if you copy above url to a remote computer or smart phone , you can access the localhost:8080 on the screen.

If you add /zm to the above link , you will be able to access the Zoneminder Console on the remote computer of smart phone

Figure:-3 localhost:8080 on smart phone
Figure:-4 Zoneminder Console on the smart phone

For the additional safety , It is advisable to have a password protection to the local host and the zoneminder.


How to add password protection to the localhost

It is necessary to copy the index.html file from the docker container zm to the host and edit with password protection commands and copy back to the zm container

Coping /var/www/html/index.html file from zm container to ~/Documents directory of the host pc

sudo docker cp zm:/var/www/html/index.html ~/Documents

sudo chmod 777 ~/Documents/index.html

Now edit the copied file by adding the following html scripts highlighted in red in the figure below for password protection as follows.

Figure:-5 Editing index.html for password protection
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Password Protected page</title>
<script type="text/javascript">
var s ="";

while (s!= "yourpassword")
s=prompt("please enter your password");
if (s!= "yourpassword!")

alert("Incorrect password-Try again");


You can use gedit to edit the index.html file . The two empty white boxes at line no 16 and 19 are for your password for the localhost. You will have to fill the space with  your password and save.And then copy back to the original place in the zm container as follows
sudo docker cp ~/Documents/index.html zm:/var/www/html/index.html

Now the localhost is password protected

How to make Zoneminder password protected

Go to Options>system of the Zoneminder Console and tick the boxes as shown in the follwing figure.

Figure:-6 Zoneminder with password protection

Then go to Options>Users>admin and enter your password for Zoneminder and save. Restart Zoneminder .

Now the zoneminder is password protected.

Following are the outcome at remote smart phone when accessing Zoneminder Console after the two protections above for the localhost and the Zoneminder .

Zoneminder Console is obtained by adding /zm to the port forwarded serveo url of localhost:8080 ( In our case ).

You can replace the name abcd2020 to suit your requirement.

Figure:- 9 Zoneminder Console at the remote smart phone.

You can control your Zoneminder at PC from the remote smart phone . The motion detection events can also be viewed using the smart phone.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s