Prepare for upgrading ThingsBoard
Stop ThingsBoard
Check if ThingsBoard and database services are running. Initially ThingsBoard, check status to ensure it is stopped and then databases.
sudo systemctl stop thingsboard
sudo systemctl status thingsboard
Backup Database
Make a backup of the database before upgrading.
PostgreSQL
Check PostgreSQL status. It is unnecessary to stop PostgreSQL for the backup.
sudo systemctl status postgresql
Make sure you have enough space to place a backup of the database
Check database size:
sudo -u postgres psql -c " SELECT pg_size_pretty( pg_database_size('thingsboard') ); "
Check free space:
If there is enough free space — make a backup:
sudo -Hiu postgres pg_dump thingsboard > thingsboard.sql.bak
Check backup file being created.
Cassandra
Check Cassandra status. It is necessary to stop Cassandra for the backup.
sudo systemctl status cassandra
Flush all memtables from the node to SSTables on disk:
Stop Cassandra:
sudo systemctl stop cassandra
Check the status again to ensure it is stopped:
sudo systemctl status cassandra
Make sure you have enough space to place a backup of the database
Check database size:
du -h /var/lib/cassandra/ | tail -1
Check free space:
Make a backup of Cassandra database:
sudo tar -cvf backup/cassandra.tar /var/lib/cassandra
Check archive being created.
Start Database
Cassandra:
sudo systemctl start cassandra
PostgreSQL: Do nothing, PostgreSQL is already running.
Upgrading ThingsBoard to 4.4
Compatibility check before upgrading
If you are using Edge PE or Trendz Analytics together with ThingsBoard, verify that your target ThingsBoard version is compatible with the currently installed versions of these components. Upgrade them if required to ensure compatibility.
Important note before upgrading to ThingsBoard 4.4
ThingsBoard backend was migrated to Java 25 . Install JDK 25 and make it the system's default Java version before upgrading.
Please refer to Step 1 of the corresponding installation guide for detailed instructions: CentOS/RHEL
TBEL date formatting changes
ThingsBoard 4.4 runs on Java 25, whose updated Unicode CLDR data changes the locale-formatted strings produced by TbDate methods: toLocaleString(), toLocaleDateString(), toLocaleTimeString(), toString(), toDateString(), toTimeString() and toUTCString(). Scripts that string-match or split formatted dates may behave differently after the upgrade. toISOString(), toJSON(), getTime() and the numeric getters are unaffected.
See Date formatting changes in ThingsBoard 4.4+ for examples and recommendations.
ThingsBoard package download
wget https://github.com/thingsboard/thingsboard/releases/download/v4.4/thingsboard-4.4.rpm
ThingsBoard service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.4.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.3.1.6 (latest 4.3.1 patch)
Important note before upgrading to ThingsBoard 4.3.1
Starting with version 4.3.1, the platform uses Angular 20 (upgraded from Angular 18). The core platform remains fully backward compatible and no upgrade scripts are required. However, custom UI code (widgets or custom CSS) that relies on internal component structure or CSS variable names may break. This can affect up to ~1% of users with heavy customizations. We recommend testing custom UI in a staging environment before upgrading.
Alarm data migration may extend your upgrade
Starting with 4.3.1.4, ThingsBoard migrates all existing alarms to a new storage format. Alarm data is not lost.
Migration time depends on the number of alarms.
From 4.2.x: the migration runs inside the upgrade script. Don't interrupt it. Plan a longer
maintenance window, and do a trial run on a copy of your production database first.
From 4.3.0 – 4.3.1.3: the migration runs in the background after startup, and older alarms may
not appear in the UI or API until it finishes. The Applied LTS migration 4.3.1.4 log message marks
completion. With multiple tb-nodes, don't run old and new versions side by side: old tb-nodes keep creating alarms
in the old format, and some of them may never appear.
Already on 4.3.1.4 or later: no action needed.
Compatibility check before upgrading
If you are using Edge PE or Trendz Analytics together with ThingsBoard, verify that your target ThingsBoard version is compatible with the currently installed versions of these components. Upgrade them if required to ensure compatibility.
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.3.1.6pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.3.1.6pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
Caution
If you are upgrading from 4.2.1.x, you must run the script below. However, if you are upgrading from version 4.3.x, DO NOT run the upgrade script; proceed directly to starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.3.0.1 (latest 4.3.0 patch)
Compatibility check before upgrading
If you are using Edge PE or Trendz Analytics together with ThingsBoard, verify that your target ThingsBoard version is compatible with the currently installed versions of these components. Upgrade them if required to ensure compatibility.
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.3.0.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.3.0.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
Caution
If you are upgrading from 4.2.1.x, you must run the script below. However, if you are upgrading from version 4.3.0.x, DO NOT run the upgrade script; proceed directly to starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.2.2.6 (latest 4.2.2 patch)
Important note before upgrading to ThingsBoard 4.2.2
Starting with version 4.2.2, the platform uses Angular 20 (upgraded from Angular 18). The core platform remains fully backward compatible and no upgrade scripts are required. However, custom UI code (widgets or custom CSS) that relies on internal component structure or CSS variable names may break. This can affect up to ~1% of users with heavy customizations. We recommend testing custom UI in a staging environment before upgrading.
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.2.2.6pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.2.2.6pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
Caution
If you are upgrading from 4.2.0, you must run the script below. However, if you are upgrading from version 4.2.2.x, DO NOT run the upgrade script; proceed directly to starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.2.1.2 (latest 4.2.1 patch)
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.2.1.2pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.2.1.2pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
Caution
If you are upgrading from 4.2.0, you must run the script below. However, if you are upgrading from version 4.2.1.x, DO NOT run the upgrade script; proceed directly to starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.2
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.2pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.2pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.0.2
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.0.2pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.0.2pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.0.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.0.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.0.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 4.0
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-4.0pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-4.0pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.9.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.9.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.9.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.9
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.9pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.9pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.8.1
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.8.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.8.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.8.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
No database schema upgrade is required for this version. Proceed to starting the service.
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.8
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.8pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.8pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.7.0
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.7
Important note before upgrading to ThingsBoard 3.7
ThingsBoard backend was migrated to Java 17. Install JDK 17 and ensure that the system's default Java version is set to 17.
sudo dnf install java-17-openjdk-headless
Then select Java 17 as the system default:
sudo update-alternatives --config java
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.7pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.7pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.6.4
Start the service
Note
In case Cassandra is installed , ensure that a proper JAVA_HOME parameter is set for cassandra.in.sh include file. As of 3.7.0 release, latest stable Cassandra version does not support Java 17 yet.
In case action is required, refer to the Hybrid (PostgreSQL + Cassandra) tab of Step 3 of the installation guide .
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.6.4
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.6.4pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.6.4pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.6.3
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.6.3
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.6.3pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.6.3pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.6.2
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.6.2
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.6.2pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.6.2pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.6.1
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.6.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.6.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.6.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.6.0
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.6
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.6pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.6pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.5.1
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.5.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.5.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.5.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.5.0
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.5
Important note before upgrading to ThingsBoard 3.5
ThingsBoard UI was migrated to Angular 15. You need to re-build your custom widgets and rule nodes (which use UI) on Angular 15.
We suggest consulting this guide .
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.5pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.5pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.4.4
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.4.4
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.4.4pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.4.4pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
No database schema upgrade is required for this version. Proceed to starting the service.
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.4.3
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.4.3pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.4.3pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
No database schema upgrade is required for this version. Proceed to starting the service.
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.4.2
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.4.2pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.4.2pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.4.1
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.4.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.4.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.4.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.4.0
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.4
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.4pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.4pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.3.4
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.3.4.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.3.4.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.3.4.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
No database schema upgrade is required for this version. Proceed to starting the service.
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.3.4
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.3.4pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.3.4pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh --fromVersion=3.3.3
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.3.3
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.3.3pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.3.3pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.3.2
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.3.2pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.3.2pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.3.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.3.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.3.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.3
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.3pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.3pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.2.2
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.2.2pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.2.2pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.2.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.2.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.2.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.2
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.2pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.2pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.1.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.1.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.1.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.0.1
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.0.1pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.0.1pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start
Upgrading ThingsBoard PE to 3.0
ThingsBoard PE package download
wget https://dist.thingsboard.io/thingsboard-3.0pe.rpm
ThingsBoard PE service upgrade
Stop ThingsBoard service if it is running.
sudo service thingsboard stop
sudo rpm -Uvh thingsboard-3.0pe.rpm
Configuration files
rpm does not prompt about configuration files. If you changed a configuration file and the new package ships a different version of it, rpm keeps your file in place and writes the new default alongside it as .rpmnew. If no .rpmnew file appears, there is nothing to merge.
The recommended approach is to use the new file as the base: copy your custom values into the .rpmnew file, then replace your current configuration file with it.
Do this before running the upgrade script — the script reads the configuration file for your database connection settings and fails without them. If this version needs no upgrade script, do it before starting the service.
sudo /usr/share/thingsboard/bin/install/upgrade.sh
Start the service
sudo service thingsboard start