Skip to content
Stand with Ukraine flag

Installing ThingsBoard Edge on Ubuntu Server

This guide provides step-by-step instructions for installing ThingsBoard Edge on Ubuntu 22.04 LTS and Ubuntu 24.04 LTS.

To run ThingsBoard Edge, you need an active ThingsBoard Community Edition account that supports Edge functionality.

You can install a local ThingsBoard CE server. The local server is accessible at http://localhost:8080.

The hardware requirements for ThingsBoard Edge depend on the number of connected devices and platform interaction intensity.

WorkloadRAMDescription
Light1 GBFewer than 100 devices, minimal dashboard/device management usage
Heavy4 GB100+ devices or intense platform interactions

To create a new Edge instance on your ThingsBoard Server:

  1. Sign in to your ThingsBoard instance and go to Edge Management → Instances. Click Add (+) in the top-right corner and select Add new edge.
  2. Enter a name for the Edge, like My New Edge.

    Click Add.
  3. Your new Edge instance is created and appears at the top of the list.

Guided installation using ThingsBoard Server instructions

Section titled “Guided installation using ThingsBoard Server instructions”

Once an Edge instance is created, the server generates pre-configured installation instructions containing the Edge credentials (Edge Key, Edge Secret, etc.). To access them:

  1. Click the Edge entity to open its details.
  2. Click Install & Connection Instructions.
  3. Select the installation method and follow the instructions to install Edge and connect it to the server.

If you are unable to use the guided instructions above, follow the steps below to install and configure Edge manually.

ThingsBoard Edge requires Java 17. To install OpenJDK 17:

Terminal window
sudo apt update && sudo apt install openjdk-17-jdk-headless

Configure your operating system to use OpenJDK 17 by default:

Terminal window
sudo update-alternatives --config java

Verify the installation:

Terminal window
java -version

The expected output:

openjdk version "17.x.xx"
OpenJDK Runtime Environment (...)
OpenJDK 64-Bit Server VM (...)

Step 2. Configure the ThingsBoard Edge database

Section titled “Step 2. Configure the ThingsBoard Edge database”

ThingsBoard Edge supports SQL and hybrid database approaches.

PostgreSQL is recommended for development and production environments with moderate load (fewer than 5,000 messages/sec). Many cloud providers offer managed PostgreSQL services, making it a cost-effective option for most deployments.

To install the PostgreSQL database:

Terminal window
# Automated repository configuration:
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
# Install and launch the PostgreSQL service:
sudo apt update
sudo apt -y install postgresql-16
sudo service postgresql start

Once PostgreSQL is installed, set the password for the main PostgreSQL user:

Terminal window
sudo -u postgres psql -c "\password"

Enter and confirm the password when prompted.

Create a new PostgreSQL database named tb_edge:

Terminal window
echo "CREATE DATABASE tb_edge;" | psql -U postgres -d postgres -h 127.0.0.1 -W

ThingsBoard Edge can use different messaging systems for storing messages and enabling communication between its services.

The In Memory queue is the built-in default implementation. It is suitable for development or proof-of-concept environments, but is not recommended for production or clustered deployments due to limited scalability.

No additional configuration is required.

Step 4. Download and install ThingsBoard Edge

Section titled “Step 4. Download and install ThingsBoard Edge”
Terminal window
wget https://github.com/thingsboard/thingsboard-edge/releases/download/v4.3.1.1/tb-edge-4.3.1.1.deb
sudo dpkg -i tb-edge-4.3.1.1.deb

In the Edge instance details panel, click Copy Edge Key and Copy Edge Secret. Store these values securely — you need them below.

Edit the ThingsBoard Edge configuration file to set your Edge credentials and cloud connection parameters.

Terminal window
sudo sh -c 'cat <<EOL >> /etc/tb-edge/conf/tb-edge.conf
export CLOUD_ROUTING_KEY=PUT_YOUR_EDGE_KEY_HERE
export CLOUD_ROUTING_SECRET=PUT_YOUR_EDGE_SECRET_HERE
export CLOUD_RPC_HOST=PUT_YOUR_RPC_HOST
export CLOUD_RPC_PORT=7070
export CLOUD_RPC_SSL_ENABLED=false
export HTTP_BIND_PORT=18080
export MQTT_BIND_PORT=11883
export COAP_BIND_PORT=15683
export LWM2M_ENABLED=false
export SNMP_ENABLED=false
EOL'

Configuration parameters:

ParameterDescription
CLOUD_ROUTING_KEYYour Edge key (copied above)
CLOUD_ROUTING_SECRETYour Edge secret (copied above)
CLOUD_RPC_HOSTHostname or IP address of the ThingsBoard Server
CLOUD_RPC_PORTgRPC port used for Edge–server communication (default: 7070)
CLOUD_RPC_SSL_ENABLEDSet to true to enable SSL — required when connecting to ThingsBoard Cloud
HTTP_BIND_PORTLocal HTTP port for the Edge UI (18080 avoids conflict with ThingsBoard Server on 8080)
MQTT_BIND_PORTLocal MQTT port (11883 avoids conflict with ThingsBoard Server on 1883)
COAP_BIND_PORTLocal CoAP port (15683 avoids conflict with ThingsBoard Server on 5683)

Execute the installation script:

Terminal window
sudo /usr/share/tb-edge/bin/install/install.sh

Start the service:

Terminal window
sudo service tb-edge start

Once the service is running, open the Edge UI at http://localhost:8080.

ThingsBoard Edge logs are stored in:

Terminal window
/var/log/tb-edge

To check for errors:

Terminal window
cat /var/log/tb-edge/tb-edge.log | grep ERROR

To stop the ThingsBoard Edge service:

Terminal window
sudo service tb-edge stop

To restart the ThingsBoard Edge service:

Terminal window
sudo service tb-edge restart

To check the status of the ThingsBoard Edge service:

Terminal window
sudo service tb-edge status