Mosquitto

How to Install Mosquitto MQTT Broker with Web Client on Ubuntu 24.04

This guide walks you through installing Mosquitto, the lightweight MQTT broker, along with a simple web-based MQTT client on Ubuntu 24.04. The setup includes configuring MQTT over standard TCP, WebSockets, and serving a minimal web client via Nginx.

 

Step 1: Update System Packages

 

First, ensure your system is up-to-date:

sudo apt update && sudo apt upgrade -y
 

Install basic dependencies:

sudo apt install -y curl wget gnupg

 

Step 2: Install Mosquitto

Install Mosquitto and its client utilities:

sudo apt install -y mosquitto mosquitto-clients

Enable and start the service:

sudo systemctl enable --now mosquitto

 

Step 3: Configure Mosquitto

Create a basic configuration file at /etc/mosquitto/mosquitto.conf:

# MQTT listener
listener 1883 0.0.0.0
protocol mqtt

# WebSockets listener
listener 9001 0.0.0.0
protocol websockets

# Allow anonymous connections
allow_anonymous true

# Persistence and logging
persistence true
persistence_location /var/lib/mosquitto
log_dest file /var/log/mosquitto/mosquitto.log
log_type all

# Connection limits
max_connections -1
max_keepalive 60
connection_messages true
log_timestamp true

Restart Mosquitto to apply changes:

sudo systemctl restart mosquitto

 

Step 4: Install Nginx and Prepare Web Client

Install Nginx:

sudo apt install -y nginx

Create a directory for the web client:

sudo mkdir -p /opt/mqtt-web-client
sudo chown www-data:www-data /opt/mqtt-web-client

Create a minimal web client in /opt/mqtt-web-client/index.html using the MQTT.js library. This client allows connecting, publishing, and subscribing to MQTT topics through a browser.

 

Step 5: Configure Nginx for the Web Client

Create a site configuration /etc/nginx/sites-available/mqtt-web-client:

server {
    listen 8080;
    server_name _;
    root /opt/mqtt-web-client;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Enable the site and disable the default:

sudo ln -s /etc/nginx/sites-available/mqtt-web-client /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl restart nginx

 

Step 6: Configure Firewall (UFW)

Allow necessary ports:

sudo ufw allow 22          # SSH
sudo ufw allow 1883        # MQTT
sudo ufw allow 9001        # MQTT WebSockets
sudo ufw allow 8080        # Web client
sudo ufw enable
sudo ufw status

 

Step 7: Access Mosquitto and Web Client

  • MQTT Broker (TCP): mqtt://<server-ip>:1883

  • MQTT Broker (WebSockets): ws://<server-ip>:9001

  • Web Client Interface: http://<server-ip>:8080

Open the web client in your browser to test connecting, publishing, and subscribing to MQTT topics.

 

Conclusion

This setup provides a fully functional Mosquitto broker with WebSocket support and a browser-based MQTT client on Ubuntu 24.04. It’s suitable for testing IoT devices, developing MQTT applications, or learning MQTT concepts.

  • 0 Els usuaris han Trobat Això Útil
Ha estat útil la resposta?

Articles Relacionats

ERPNext v15

Install and maintain ERPNext v15 on Ubuntu ERPNext v15 is installed with Frappe Bench, Node.js...

Open-EMR v7.0.3

Install and maintain Open-EMR v7.0.3 on Ubuntu OpenEMR 7.0.3 is built from the rel-7.0.3 source...

ERPNext v14

Last Updated: 31 August 2025Applies to: Ubuntu 24.04 LTS (fresh server recommended)Skill Level:...

WordPress

Install and maintain WordPress on Ubuntu WordPress is installed below a domain-specific Apache...

Joomla

Install and maintain Joomla on Ubuntu Joomla is installed from the latest selected release under...