Try   HackMD

Environment

env

OS

debian-12.9.0-amd64-netinst.iso

$ cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Java
$ java -version

openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed mode, sharing)

Maven
$ mvn -version

Apache Maven 3.8.7
Maven home: /usr/share/maven
Java version: 17.0.13, vendor: Debian, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "6.1.0-29-amd64", arch: "amd64", family: "unix"

node.js
$ node -v

v18.19.0

npm
$ npm -v

9.2.0

Docker Engine
$ docker --version

Docker version 27.5.0, build a187fa5
environment setup
#!/bin/sh # openjdk 17 sudo apt install -y openjdk-17-jdk java -version # maven sudo apt install -y maven mvn -version # nodejs sudo apt install -y nodejs node -v # npm sudo apt install -y npm npm -v # docker - start # https://docs.docker.com/engine/install/debian/ for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get -y remove $pkg; done # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker --version # docker - end

Build TB 3.9.1

https://thingsboard.io/docs/user-guide/install/building-from-source/

build step

# checkout latest release branch
git clone -b v3.9.1 https://github.com/thingsboard/thingsboard.git --depth 1
cd thingsboard
# Build local docker images
mvn clean install -DskipTests -Ddockerfile.skip=false
build result

image
image

Run TB 3.9.1

https://thingsboard.io/docs/user-guide/install/docker/

1. docker-compose.yml

version: '3.0'
services:
  mytb:
    restart: always
    image: "thingsboard/tb-postgres:3.9.1"
    ports:
      - "8080:9090" # HTTP
      - "1883:1883" # MQTT
      - "7070:7070" # edge-RPC
      - "5683-5688:5683-5688/udp" # for COAP and LwM2M
    environment:
      TB_QUEUE_TYPE: in-memory
    volumes: # mounts
      - ./mytb-data:/data
      - ./mytb-logs:/var/log/thingsboard

2. create mount folders

mkdir -p ./mytb-data && sudo chown -R 799:799 ./mytb-data
mkdir -p ./mytb-logs && sudo chown -R 799:799 ./mytb-logs

3. start the container

sudo docker compose up -d