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 serveo.net
Then you get the following public url of the port forwarded (from 8080 to 80) localhost of the local pc
Forwarding HTTP traffic from https://abcd2020.serveousercontent.com

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


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.

<html> <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"); } } </script> </head> <body> </body> </html>
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.

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 https://abcd2020.serveousercontent.com/zm ).
You can replace the name abcd2020 to suit your requirement.

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