Skip to content

Cookie preferences

We use cookies for our own analytics, to see how our campaigns perform and, if you allow it, to load content from other services such as the Google site search. We never sell your data. Necessary cookies keep the site working and cannot be switched off. See our Cookie Policy for details and our Privacy Policy for how we handle personal data.

Security, load balancing and remembering your cookie choice.

Show us which pages people read, how they find the site and where they get stuck, so we can improve it (Google Analytics, Microsoft Clarity).

Show us which of our ad campaigns bring visitors to the site and remember the campaign or partner link you arrived from (Google Ads, LinkedIn, Meta, partner program). We do not use these cookies to build advertising profiles.

Load the site search from Google when you use it. Google sets its own cookies and shows ads in the search results.

© 2026 The ThingsBoard Authors
180 Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Installing ThingsBoard Edge on Raspberry Pi

This guide provides step-by-step instructions for installing ThingsBoard Edge on Raspberry Pi.

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

You can use ThingsBoard Cloud or install a local ThingsBoard server.

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

Workload RAM Description
Light 1 GB Fewer than 100 devices, minimal dashboard/device management usage
Heavy 4 GB 100+ devices or intense platform interactions

To create a new Edge instance on your ThingsBoard Server:

  1. Log in to your ThingsBoard server and go to Edge management > Edges. Click Add edge and select Add new edge.
  2. Enter a name for the Edge, like My New Edge.

    If needed, update the Cloud endpoint (the field is shown only for Edges with legacy v1 licensing). If Edge runs in a Docker container, do not use localhost — use the IP address of the machine where ThingsBoard is hosted (e.g., http://10.7.2.143:8080). If you use ThingsBoard Cloud, keep the default. Click Add.
  3. Your new Edge instance appears at the top of the list, and the Edge created dialog opens with ready-to-use installation instructions (unless Do not show again was turned on earlier).

Guided installation using ThingsBoard Server instructions

Section titled “Guided installation using ThingsBoard Server instructions”

The instructions generated by the server already contain the credentials of this Edge (Edge key and Edge secret), so this is the fastest way to install it. If you closed the dialog, open the instructions again:

  1. Click the Edge to open its details.
  2. On the Details tab, click Install & Connect Instructions.
  3. Select the Docker, Ubuntu, or CentOS/RHEL tab and follow the instructions to install Edge and connect it to the server. The dialog opens on the Agent tab, which is for remote installation with a Remote Agent.

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

ThingsBoard Edge requires Java 25. To install OpenJDK 25:

OpenJDK 25 is available on Raspberry Pi OS based on Debian 13 (Trixie) and later.

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

Configure your operating system to use OpenJDK 25 by default:

Terminal window
sudo update-alternatives --config java

Verify the installation:

Terminal window
java -version

The expected output:

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

Step 2. Download and install ThingsBoard Edge

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

Step 3. Configure the ThingsBoard Edge database

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

ThingsBoard Edge uses PostgreSQL as its local database.

Install PostgreSQL:

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

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

Add the database connection settings to the ThingsBoard Edge configuration file:

Terminal window
sudo bash -c 'cat >> /etc/tb-edge/conf/tb-edge.conf <<EOL
export DATABASE_TS_TYPE=sql
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/tb_edge
export SPRING_DATASOURCE_USERNAME=postgres
export SPRING_DATASOURCE_PASSWORD=PUT_YOUR_POSTGRESQL_PASSWORD_HERE
export SQL_POSTGRES_TS_KV_PARTITIONING=MONTHS
EOL'

Replace PUT_YOUR_POSTGRESQL_PASSWORD_HERE with your actual PostgreSQL password.

SQL_POSTGRES_TS_KV_PARTITIONING sets the partitioning interval for time-series storage. Allowed values: DAYS, MONTHS, YEARS, INDEFINITE.

On the server, open the Edge and click Copy Edge key and Copy Edge secret on its Details tab. Store these values securely. You need them below.

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

Use this configuration to connect to ThingsBoard Cloud hosted in North America.

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=thingsboard.cloud
export CLOUD_RPC_PORT=7070
export CLOUD_RPC_SSL_ENABLED=true
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
INTEGRATIONS_RPC_PORTPort on which Edge accepts connections from remote integrations (default: 9090). Change it only if Edge runs on the same machine as ThingsBoard Server

Step 5. [Optional] Tune JVM memory for low-memory devices

Section titled “Step 5. [Optional] Tune JVM memory for low-memory devices”

On devices with limited RAM, you can constrain the JVM heap size to prevent out-of-memory issues:

Terminal window
echo 'export JAVA_OPTS="$JAVA_OPTS -Xms512M -Xmx1G"' | sudo tee -a /etc/tb-edge/conf/tb-edge.conf
Parameter Description
-Xms512M Initial JVM heap size — 512 MB
-Xmx1G Maximum JVM heap size — 1 GB

Adjust these values based on available RAM. A good rule of thumb: set -Xmx to half the total RAM if ThingsBoard Edge is the only memory-intensive process, or one-third if other services are also running.

Once ThingsBoard Edge is installed and configured, execute the installation script:

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

Start the ThingsBoard Edge service:

Terminal window
sudo service tb-edge start

Once the service is running, open the Edge UI at http://localhost:8080 (port 18080 if you moved the Edge ports), or replace localhost with your Raspberry Pi’s local IP address if accessing from another device on the network.

Log in using your tenant credentials from ThingsBoard Server or ThingsBoard Cloud. To check the connection, go to Edge > Status in the Edge UI. The status is Connected.

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