Community Edition
ThingsBoard Documentation
Cloud Professional Edition Community Edition Edge PE Edge IoT Gateway License Server Trendz Analytics Mobile Application PE Mobile Application
Try it now Pricing
Installation > On premise > Building from sources
Getting Started Documentation Guides
Architecture API FAQ

On this page

Building from sources

This guide will help you to download and build ThingsBoard from sources. Instructions listed below are tested on Ubuntu 20.04 LTS and CentOS 7/8

Required tools

This section contains installation instructions for build tools.


ThingsBoard is build using Java 11. You can use following instructions to install Java 11.


ThingsBoard build requires Maven 3.1.0+.

sudo apt-get install maven
sudo yum install maven

Please note that maven installation may set Java 7 as a default JVM on certain Linux machines. Use java installation instructions to fix this.

Source code

You can clone source code of the project from the official github repo.

git clone [email protected]:thingsboard/thingsboard.git
# checkout latest release branch
git checkout release-3.4


Run the following command from the thingsboard folder to build the project:

mvn clean install -DskipTests

Build local docker images

Make sure that Docker is installed.

mvn clean install -DskipTests -Ddockerfile.skip=false

Build artifacts

You can find debian, rpm and windows packages in the target folder:


Running tests

We are using docker and docker-compose to run all kind of integration and black-box tests.

Please, manage Docker as a non-root user to run tests properly.

Master and release branches is already tested, so you can skip tests and avoid installing docker as well.

Run all unit and integration tests:

mvn clean install

To run black-box tests, please refer black-box tests readme.

Estimated time is about 1 hour on AMD Ryzen 5 3600 (6-cores), 32GB DDR4, fancy SSD and shiny weather. Actual time may vary and depends on particular hardware performance.

Tips and tricks

Thingsboard is quite easy to build from sources on a brand-new clear environment.

Here are some tips and tricks to boost build experience:

  • clean maven cache
    rm -rf ~/.m2/repository
  • clean gradle cache
    rm -rf ~/.gradle/caches/
  • clean node modules
    rm -rf ui-ngx/node_modules
  • build in parallel, format headers, build docker images
    mvn -T 0.8C license:format clean install -DskipTests -Ddockerfile.skip=false