Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

Mosquitto is an open-source message broker service that uses the MQTT protocol to send and receive messages, typically with IOT (Internet of Things) devices.
OwnTracks is an open-source GPS location history logging service (the main components are apps for iPhone and Android.) OwnTracks takes care of sending the data, and recommends using Mosquitto as the framework on the receiving or “broker” side.
This is the process I went through to get a Mosquitto server up and receiving data on a DigitalOcean droplet, I customized the server for OwnTracks but most steps except config should apply for any use of Mosquitto server.
REQUIREMENTS: It runs on Raspberry Pi, so I figured a 512MB Ubuntu 14.04 x64 Droplet would be sufficient.
Mosquitto wants to run as user mosquitto, adduser mosquitto
adduser mosquitto
SSH into the droplet, do an update, and then install mosquitto dependencies
apt-get update
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
You could try installing via apt-get, it didn’t work for me so I downloaded the latest release of mosquitto listed here: http://mosquitto.org/download/
cd /home/mosquitto
wget http://mosquitto.org/files/source/mosquitto-1.4.8.tar.gz
tar xvzf mosquitto-1.4.8.tar.gz
cd mosquitto-1.4.8
Run make to compile and make install to install
make
make install
Create a mosquitto user/password: the command below will create a user owntracks, you can change
mosquitto_passwd -c /etc/mosquitto/pwfile owntracks
you will be prompted to enter a password.
Create the directory where persistence db files will be stored, change owner to mosquitto:
mkdir /var/lib/mosquitto/
chown mosquitto:mosquitto /var/lib/mosquitto/ -R
Create a config file by copying the example file:
cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
editor /etc/mosquitto/mosquitto.conf
At the end of the config file, add a block of all suggested config changes specific to OwnTracks (replace <yourIP> with the IP address of the droplet)
listener 8883 <yourIP>
persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db
log_dest syslog
log_dest stdout
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true
allow_anonymous false
password_file /etc/mosquitto/pwfile
Finally be sure to run:
/sbin/ldconfig
Run the mosquitto server with this command:
mosquitto -c /etc/mosquitto/mosquitto.conf
It should start running without error, then in another window: Replace <YourIP> and <YourPassword> with your own stuff
mosquitto_sub -h <YourIP> -p 8883 -v -t 'owntracks/#' -u owntracks -P <YourPassword>
If everything went correctly you should see no errors executing this command, and in the window where mosquitto is running should acknowledge the connection. if so create an upstart file to autorun mosquitto:
vim /etc/init/mosquitto.conf
#THEN PASTE IN:
description "Mosquitto MQTT broker"
start on net-device-up
respawn
exec /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
NEXT STEP: Now that you have Mosquitto broker working, your next step is to setup OwnTracks on your phone to speak to your broker - The TL;DR is you need to install the App, go to preferences, select PRIVATE mode, and set the connection details to match the IP, user, and password specs you just setup.
UPGRADES: I’m working on getting Let’s Encrypt TLS certificates to work with this, I will post when I have that working.
John Berg
GiantElectricBlueShip
galgoczibalint
a327d6aefbb8482cb62cd04a8fb824
truesource310
support1Angler
c4ed371aad2748f7bec4a2115c7e44
Thore
cloudnine
karantaneja