How to access localhost using ngrok free account and dropbox over the internet (Ubuntu 16.10)

OS of my PC is Ubuntu 16.10

First install ngrok on the the PC  Please refer the official web site

Extract  the downloaded zip file in to the home directory of the PC

Now if you run ./ngrok http 80 you will get the ngrok panel as follws

Screenshot from 2017-03-21 00-00-55

ngrok running on the terminal

Screenshot from 2017-03-21 00-02-13

ngrok web interface

If you copy the Forwarding web links on the web browser of a remote computer ,local host of the forwarding computer will appear on the screen.

The main problem in the free ngrok is ,the forwarding link is not a fixed one .Every time you start ngrok ,you will get a different link address .Therefore you can not access the localhost of the computer ,without knowing the forwarding address .

If you can save the ngrok web interface as a pdf file and upload in to a free dropbox account ,you will be able to access it over the internet and connect with the link .

Therefore it is necessary to install dropbox on the hosting computer.Installation of  dropbox  can be easily done using the Ubuntu Software center .


wkhtmltopdf is installed for saving html files as pdf


sudo apt-get install wkhtmltopdf


In order to start dropbox , ngrok at the startup of the PC and saving ngrok forwarding links to dropbox and uploading to the cloud automatically , I have written a script shown below


Open the terminal and run


sudo gedit


Copy the following script in to the and save the file in the home directory




dropbox start -i

gnome-terminal -e ‘./ngrok http 80 ‘

xdg-open http://127.0.01:4040/inspect/http

rm ~/Dropbox/Public/ngrok/*

sleep 20

wkhtmltopdf http://127.0.01:4040/inspect/http ~/Dropbox/Public/ngrok/ngrok.pdf



Then to make executable run on th terminal

chmod +x ~/

Now if you run ./ on the terminal ,dropbox and ngrok will 
start and the forwarding links are uploaded to the dropbox cloud.

If you want to start the above process at the startup of PC ,the script
has to be added in to the startup applications .
Screenshot from 2017-03-21 00-38-01

Adding the script to the menu launcher
Screenshot from 2017-03-21 00-40-46.png
Adding the script to the startup applications

When you start the computer the above script will activate automatically
and save the forwarding links in the dropbox cloud so that the localhost
can be accessed remotely.

Screenshot from 2017-03-21 00-45-24.png  

Saved forwarding links file on the dropbox folder of the local computer

Screenshot from 2017-03-21 00-48-06

Saved forwarding links in the dropbox cloud

If you place the cursor and press on the link you will be able to 
access the local host of the forwarding computer

How to Install and Configure VNC® Server 6.0.2 on Ubuntu 16.10 and remotely connect the computer with a mobile phone using free VNC cloud home connction

VNC Connect is a flexible and secure remote access software for computers.The details can be obtained from the official web site of RealVNC.

First download the linux vnc connect deb file from the vnc web site. in to the computer

and extract the deb file .(you will get 2 files of server and viewer installers)

install VNC-Server-6.0.2-Linux-x64.deb using the official installer of Ubuntu.Screenshot from 2017-03-13 17-03-50

To start the server open the Ubuntu terminal and run

sudo systemctl start vncserver-x11-serviced.service

Now you can see an icon on the panel to indicate  the sever is running

Screenshot from 2017-03-13 20-33-59

After installing you will not be able to see any launcher icon. In this type of situation Mainmenu appication is useful in creating a launcher.Since  Mainmenu is not a default software in Ubuntu 16.10  we will have to install it manually.

Open the Ubuntu terminal and run

sudo apt-get update
sudo apt-get install alacarte

Now if you run  the mainmenu you will find the vnc server under the 
applications/other menu

Screenshot from 2017-03-13 19-04-27

If the VNC server is not available, you can add an item.

Go to the Launcher properties and edit as follows

Screenshot from 2017-03-13 19-09-13

Under the Command cage enter the following  to enable the server start at the boot time of the computer and include it to Startup Applications

gksu systemctl start vncserver-x11-serviced.service

and press OK

Screenshot from 2017-03-13 19-21-43

Now the VNCServer is installed on Ubuntu 16.10 correctly

Screenshot from 2017-03-13 19-27-57

The next step is to sign up for a free VNC Cloud home account

Go to this REAL VNC website and sign up for a free cloud home account

To connect the sever with the cloud

Now place the mouse pointer on the vnc sever icon on the  panel at the top of the desktop and right click to get the menu and make the licensing for the cloud connection



Screenshot from 2017-03-13 17-10-56

Now open the cloud to see weather the computer is connected

Go to the vnc  cloud and sign in

Screenshot from 2017-03-13 19-59-25.png

Screenshot from 2017-03-13 20-00-44

Screenshot from 2017-03-13 20-01-32


Now you can see the computer with the vnc server is connected to the vnc cloud

The next step is to connect the computer running   the vnc server remotly  over the inter net using a mobile phone

First VNC Viewer for remote desktop application is installed on the phone

Open the app and connect to the computer using the vnc password saved in the server previously .




How to remotely control your Raspberry pi 3 over the internet using a RealVNC cloud connection

The VNC connect (RealVNC Server and the Viewer) has  been installed by default on the Raspbian OS make available for  Raspberry pi 3 .

But the VNC connect installed by default on Raspberry seems to be an Old version which does not permit VNC cloud connection.Therefore you will have to upgrade the software to version 6 at the start.

Updating software

Open the terminal an run

sudo apt-get update

sudo apt-get upgrade

Then sign up for a free VNC Cloud account  available for the home users

Signing up for free home cloud account

Then you will have to make changes in the Raspberry setup to activate the VNC Server at the booting and to facilitate the connection with the cloud and the licensing


Activating VNC Server at boot time

On the Raspberry pi menu go to

Preferences/Raspberry Pi Configuration/interfaces/

Screenshot from 2017-03-05 22-43-51.png

and enable VNC and SSH

Then re boot the Rasberry pi

Now you can see the Sever icon on the panel.


VNC server running on Raspberry Pi 3

Place the mouse pointer on the vnc sever icon and  right click

Then go to Licensing and connect the Raspberry with the cloud

Licensing for free cloud account

facilitating head less remote connection for the Raspberry  Pi 3

Place the mouse pointer on the vnc sever icon and  right click

Select Options/connections/

Make the check  boxes as shown in the following figures

Now If you sign in to your cloud account, you can see your Raspberry pi is connected to the cloud


Cloud connection with raspberry Pi

Accessing the Raspberry Pi desktop from the remote computer

Install the VNC Viwer on the remote computer

My Os on the remote  computer is Ubuntu 16.10

Start the VNC Viwer  and connect to the Raspberry Pi  over the cloud



Raspberry Pi desktop on the remote computer


Controlling Zoneminder CCTV system installed on the Rasberry Pi using the remote computer


How to control Zoneminder CCTV installed on Raspberry pi3 remotely using TeamViewer

First install Zoneminder on Raspberry pi 3

Now our task is to find a method to control the Raspberry pi 3 computer remotely through inter net .

I have selected the  TeamViewer software for this purpose as it is

1.A free software

2. Very simple to install and use .No port forwarding is required

We will have to install TeamViewer on Raspberry pi 3 as well as on the remote computer.

The  TeamViewer for the Raspberry pi 3 can be downloaded from here.

The downloaded  TeamViewer deb file can be installed on pi using the installer in Raspbian (Jessy)  ( by right clicking on the deb file and selecting the program)


The TeamViewer control Panel on Raspberry pi3


Setting up passwords

Then disable the random password and setup a personal password using the Option menu

Once the TeamViewer is installed it activates as a startup software .(Once computer is switched on the program is activated automatically )


The  TeamViewer for the remote computer can be downloaded from here

Install TeamViewer on the remote computer


The TeamViewer  Control panel  on remote computer after installation

The add the Raspberry pi 3 to remote computer as a partner

Add the details of Raspberry pi 3 ( ID and password)to remote computer.

Then activate the connection  between the remote computer and the raspberry pi using the TeamViewer panel of the remote computer


The  desktop of Raspberry pi 3  on the remote computer after the connection using TeamView


Zoneminder monitor of USB  Camera   on Raspberry pi3  appeared on remote  computer

The connection is very fast !

Thanks to Raspberry pi3 & TeamViewer !

Now you can control the pi from the remote computer!

I think there is a very big potential in developing cost effective Home Automation and Surveillance systems  using  Rasberry pi3 and TeamViewer

Reference :-How to install Zoneminder 1.29.0 on Raspberry pi 3


How to install Zoneminder 1.29.0 on Raspberry pi 3 with Raspbian 8.1 (Jessy)

First of all you will have to install Raspbian using Noobs on a class 10 sd card (16 GB or more) Pl refer this web site


Please check the available version of zoneminder in Raspbian software center .You can see the available version version is zoneminder 1.26 wich is out dated .Therefore we will have to add the Jessie backports to source list and then update in order to obtain latest stable zoneminder version for Raspbian.

Using the terminal

Add The Jessie backports

sudo gedit  /etc/apt/sources.list

Then add following line to the bottom of the file and save

deb jessie-backports main


There are signature errors can be found

To fix those errors run following on the terminal

gpg --keyserver --recv-key  8B48AD6246925553
gpg -a --export 8B48AD6246925553 | sudo apt-key add -
gpg --keyserver --recv-key  7638D0442B90D010
gpg -a --export 7638D0442B90D010 | sudo apt-key add -


Then run on the terminal

sudo apt-get update

Now if you check the software center you see the latest zoneminder version 1.29 on it .


Install PHP, and MySQL server. You will be prompted to set a MySQL password

sudo apt-get install php5 mysql-server php-pear php5-mysql php5-gd

Then install zoneminder 1.29 using the software center of Raspbian

Create Zoneminder database in MySQL

Run following on the terminal

mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
mysql -uroot -p -e "grant all on zm.* 
to 'zmuser'@localhost identified by 'zmpass';"
mysqladmin -uroot -p reload
sudo chmod 740 /etc/zm/zm.conf
sudo chown root:www-data /etc/zm/zm.conf
sudo systemctl enable zoneminder.service
sudo adduser www-data video

sudo a2enmod cgi
sudo a2enconf zoneminder
sudo a2enmod rewrite
sudo chown -R www-data:www-data /usr/share/zoneminder/
sudo systemctl enable zoneminder
sudo service zoneminder start

Adding  timezone to PHP
sudo gedit /etc/php5/apache2/php.ini

Edit 894 line to enter your time zone as follows and save the php.ini file

Your time zone can be get from here 

sudo service apache2 reload

Open Zoneminder http://localhost/zm/

Screenshot from 2016-11-23 21:29:42.png


ZM Console on Rasberry Pi 3


Adding a monitor for IP Camera


Adding a monitor for IP Camera


IP Camera view


1 .Zoneminder wiki

2. Zoneminder wiki

How to upgrade zoneminder 1.29 to 1.30 on Ubuntu 16.04

You will have to refer iconnor  for adding Adding Zoneminder  PPA to your system.

Open the Ubuntu terminal

sudo add-apt-repository ppa:iconnor/zoneminder
sudo apt-get update
sudo apt-get upgrade 
sudo apt-get dist-upgrade

Then open the Synaptic Package Manager and see whether the  Zoneminder is upgraded to version 1.3 properly .If not upgrade using the Synaptic Package Manager.

Now open the ZM Console to find Zoneminder is running.

How to email using SSMTP

Please refer Zoneminder Wiki 

Installation of SSMTP

sudo apt-get update

apt-get install ssmtp

apt-get install mailutils

Configuration of SSMTP

To open ssmtp.conf

sudo gedit /etc/ssmtp/ssmtp.conf.

Then edit to include following  lines and save the file

root="your gmail"
AuthUser="your gmail"
AuthPass=" password of your gmail"

Screenshot from 2016-09-04 13-04-12




Configure the revaliases with the correct “From” addresses while sending email

sudo gedit  /etc/ssmtp/revaliases

Add following lines and save the file

root:"your gmail"
www-data:"your gmail"
Screenshot from 2016-09-04 13-05-55


Checking to see mail works

Go to root sudo su enter the root password cd ..

echo "Hello, World" | mail -s "My email check" "your gmail"

Note:- All the places where "your gmail"  mentioned in above commands
have to be replaced with your e mail address

Making changes in ZM Options 
Open sub menu ZM/Options/Email
Make changes as follows
Screenshot from 2016-09-04 13-06-45
To attach alarm videos to email body you will have to include %EV% as 
follows in the ZM/Options/Email/EMAIL_BODY

Screenshot from 2016-09-04 13-09-19

To create alarm videos you will have to tick the box against OPT_FFMPEG 
in ZM as follows
Screenshot from 2016-09-04 13-10-16
Creating a filter to send alarm email

you will have to create , save and run on the background to be enable 
to email alarms  as follows.

Screenshot from 2016-09-04 16-45-13

How to install Zoneminder 1.29.0 on Ubuntu 16.04

Open the Ubuntu terminal

sudo su

apt-get update
apt-get upgrade
apt-get dist-upgrade

rm /etc/mysql/my.cnf  

cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
gedit /etc/mysql/my.cnf

add the following line at 32


Screenshot from 2016-04-23 21-38-28

Then save my.cnf

systemctl restart mysql

Install Zoneminder

Install Synaptic package manager using Ubuntu Software Center

Then install Zoneminder 29.1.0 using the Synaptic package manager

(Ubuntu Software Center in Ubuntu 16.04 does not have Zoneminder)

Create Zoneminder database in MySQL (Note: this also creates the default Zoneminder user and permissions in MySQL)

mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
mysql -uroot -p -e "grant all on zm.* to 'zmuser'@localhost identified by 'zmpass';"
mysqladmin -uroot -p reload


chmod 740 /etc/zm/zm.conf

chown root:www-data /etc/zm/zm.conf
adduser www-data video
a2enmod cgi
a2enconf zoneminder
a2enmod rewrite
chown -R www-data:www-data /usr/share/zoneminder/
systemctl enable zoneminder

service zoneminder start

Add timezone to PHP

gedit /etc/php/7.0/apache2/php.ini
edit line 912 with your timezone

Screenshot from 2016-04-23 21-40-45
Then save the file php.ini

Your time zone can be get from here 

service apache2 reload

Open Zoneminder http://localhost/zm/
 Referance Zoneminder Wiki