Stop the war

Stand with Ukraine flag

Support Ukraine

Try it now Pricing
MQTT Broker
Community Edition Professional Edition Cloud Edge PE Edge IoT Gateway License Server Trendz Analytics Mobile Application PE Mobile Application MQTT Broker
Installation > Installing TBMQ using Docker
Getting Started Documentation
Architecture API FAQ
On this page

Installing TBMQ using Docker (Linux or Mac OS)

This guide will help you to install and start standalone TBMQ using Docker on Linux or Mac OS. If you are looking for a cluster installation instruction, please visit cluster setup page.

Prerequisites

To run TBMQ on a single machine you will need at least 2Gb of RAM.

doc warn icon

Don’t forget to add your linux user to the docker group. See Manage Docker as a non-root user.

Installation

Execute the following commands to download the script that will install and start TBMQ:

1
2
wget https://raw.githubusercontent.com/thingsboard/tbmq/release-1.2.0/msa/tbmq/configs/tbmq-install-and-run.sh &&
sudo chmod +x tbmq-install-and-run.sh && ./tbmq-install-and-run.sh

The script downloads the docker-compose.yml file, creates mounted directories, installs the database for TBMQ, and starts TBMQ. Key configuration points for TBMQ in docker-compose file:

  • 8083:8083 - connect local port 8083 to exposed internal HTTP port 8083
  • 1883:1883 - connect local port 1883 to exposed internal MQTT port 1883
  • ~/.tb-mqtt-broker-data/postgres:/var/lib/postgresql/data - mounts the host’s dir ~/.tb-mqtt-broker-data/postgres to TBMQ DataBase data directory
  • ~/.tb-mqtt-broker-data/kafka:/kafka - mounts the host’s dir ~/.tb-mqtt-broker-data/kafka to Kafka data directory
  • ~/.tb-mqtt-broker-data/log:/var/log/thingsboard-mqtt-broker - mounts the host’s dir ~/.tb-mqtt-broker-data/log to TBMQ logs directory
  • ~/.tb-mqtt-broker-data/data:/data - mounts the host’s dir ~/.tb-mqtt-broker-data/data to TBMQ data directory that contains .firstlaunch file after the DB is installed
  • tbmq - friendly local name of this machine
  • restart: always - automatically start TBMQ in case of system reboot and restart in case of failure
  • SECURITY_MQTT_BASIC_ENABLED: true - enables MQTT basic security. Note: by default security is disabled

Note: In case the TBMQ is being installed on the same host where ThingsBoard is already running, the following issue can be seen:

1
Error response from daemon: ... Bind for 0.0.0.0:1883 failed: port is already allocated

In order to fix this, you need to expose another host’s port for the TBMQ container, i.e. change the 1883:1883 line in the downloaded docker-compose.yml file with, for example, 1889:1883. After that re-run the script.

1
./tbmq-install-and-run.sh

Once the installation process is complete you can access TBMQ UI by visiting the following URL http://{your-host-ip}:8083 in your browser (e.g. http://localhost:8083).

You should see TBMQ login page. Use the following default credentials for System Administrator:

Username:

Password:

1
sysadmin

On the first user log-in you will be asked to change the default password to the preferred one and then re-login using the new credentials.

Logs, stop and start commands

In case of any issues you can examine service logs for errors. For example to see TBMQ logs execute the following command:

1
docker compose logs -f tbmq

To stop the containers:

1
docker compose stop

To start the containers:

1
docker compose start

Upgrading

In order to update to the latest version, execute the following commands:

1
2
wget https://raw.githubusercontent.com/thingsboard/tbmq/release-1.2.0/msa/tbmq/configs/tbmq-upgrade.sh &&
sudo chmod +x tbmq-upgrade.sh && ./tbmq-upgrade.sh

NOTE: replace db_url, db_username, and db_password variables in the script with the corresponding values used during DB initialization.

NOTE: replace the host’s directory data_dir variable with the directory used during container creation.

Next steps