How to install a Cloud MQTT Broker on a VPS (Virtual Private Server)
This tutorial is useful for setting up a Cloud MQTT Broker on an VPS (Virtual Private Server) for testing and deploying your MQTT projects.
With this type of MQTT broker, you are independent, its availability is 99.99% and its cost is very affordable. You can also chose a ready to use MQTT Broker on Internet or an Android app like MQTT Broker (for testing). |
![]() |
Test our MQTT Broker
Before you start, you can test our MQTT broker with an uptime of 99.99% (availability)
- Install on your Widnows PC a MQTT Client: MQTT Explorer
- Setup a new connection
- Host = aceautomation.ddns.net or 101b7a0.online-server.cloud
- Port = 1883
- Username = aceautomation
- Password = ilovetheseproducts
- Connect !
Select the right VPS from your provider of your choose
The cost of a VPS is approximately 1€ to 4€ /month. You can open an account with Ionos and select VPS cloud hosting.
- Linux (Debian or similare)
- CPU: 1 vCore or more, RAM: 0.5 Go or more, SSD: 10 Go or more
Firewall Policies
Via the Dashboard of your VPS, add the 1883 TCP port for the MQTT Broker
The other ports are there by default. You will need the TCP port 22 for a SSH access. The other ones are not used.
Connect to the VPS Server via SSH
You can use PuTTY as an SSH Client to connect.
Enter your Host Name or IP and 22 as port, and connect.
The login (root or admin ?) and password are those provided by your VPS provider.
Install MQTT Broker
Let’s install the Mosquitto MQTT Broker.
Enter the commands:
sudo apt update
sudo apt install -y mosquitto
The MQTT broker service will start automatically after the installation has completed.
Installation status of Mosquitto Broker
Enter the commands: sudo systemctl status mosquitto
for checking the Mosquitto MQTT installation : Ensure the package is “Loaded: …” and “Active: …”
Optional: Test locally the Mosquitto Broker
You can also install the mosquitto client if you wish. This can be useful for testing the MQTT broker on the server itself (Raspberry Pi).
- Enter the commands:
sudo apt-get install mosquitto-clients
and confirm installation - Open a second command-line interface (CLI) using PuTTY
- subscribe to a test topic named “mymqtttesttopic” by entering:
mosquitto_sub -h localhost -t mymqtttesttopic
- Then, publish a message from the other terminal:
mosquitto_pub -h localhost -t mymqtttesttopic -m "Sent from my own MQTT Broker"
- If the installation is properly working, the subscribe terminal will receive the message:
- subscribe to a test topic named “mymqtttesttopic” by entering:
Stop, Run and Restart Mosquitto
The MQTT broker service started automatically after the installation was completed, but it is useful to know these command, especially after modifying the Mosquitto configuration file:
Stop the MQTT Server service: sudo systemctl stop mosquitto
Start the MQTT Server service: sudo systemctl start mosquitto
Restart the MQTT Server service: sudo systemctl restart mosquitto
Secure the MQTT Server
MQTT Server reads configuration information from the following location: /etc/mosquitto/conf.d
Create a default.conf under the directory:
sudo nano /etc/mosquitto/conf.d/default.conf
You are in text editor. It will maybe ask you for your password for SSH user
Paste the information below to disable anonymous connections and allow Mosquitto to read valid credentials from the /etc/mosquitto/passwd file:
allow_anonymous false
password_file /etc/mosquitto/passwd
listener 1883
- [Ctrl] + [X]
- [Y]
- [Enter] to save the file in /etc/mosquitto/conf.d/default.conf
Add a Password to the MQTT Broker
Replace USER by your username in this commands and execute:
sudo mosquitto_passwd -c /etc/mosquitto/passwd USER
It will ask twice the new password
Restart the mosquitto service to load the new changes:
sudo systemctl restart mosquitto
Connect a MQTT Client
You can use MQTT Explorer as MQTT Client
Host = IP address or DNS host name
Port = 1883
Username = USER you have chosen in the previous section
Password = PASSWORD that you also chose in the previous section