--- title: Install TB using Docker tags: ThingsBoard image: https://i.imgur.com/Sj8F1tL.png disqus: hackmd --- Install TB using Docker === * https://thingsboard.io/docs/user-guide/install/docker/ * **Ubuntu 20.04.3** [toc] ## Prerequisites ### Install Docker CE > 1. Install prerequisites packages for docker ``` sudo apt update sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common ``` > 2. Setup docker official repository ``` curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" ``` > 3. Install docker with apt command ``` sudo apt update sudo apt install docker-ce -y sudo usermod -aG docker star logout ``` > 4. Check version and daemon running ``` docker version sudo systemctl status docker //the same as: service docker status ``` ### Install Docker Compose ``` sudo curl -L "https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version ``` ## Running :::info thingsboard/tb-postgres - single instance of ThingsBoard with PostgreSQL database. Recommended option for small servers with at least 1GB of RAM and minimum load (few messages per second). 2-4GB is recommended. ::: ## Choose ThingsBoard queue service :::info In Memory queue implementation is built-in and default. It is useful for development(PoC) environments ::: ## Steps > 1. New create a file named ==docker-compose.yml== ``` version: '3.3' services: mytb: restart: always image: "thingsboard/tb-postgres" ports: - "8080:9090" - "1883:1883" - "5683:5683/udp" environment: TB_QUEUE_TYPE: in-memory volumes: - ~/.mytb-data:/data - ~/.mytb-logs:/var/log/thingsboard ``` > 2. Execute the following command to up this docker compose directly ``` star@tb-ce:~/workspace/tb$ docker-compose pull Pulling mytb ... done star@tb-ce:~/workspace/tb$ mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data star@tb-ce:~/workspace/tb$ mkdir -p ~/.mytb-logs && sudo chown -R 799:799 ~/.mytb-logs star@tb-ce:~/workspace/tb$ docker-compose up ``` There is a TB VM (Ubuntu 20.04.3) running with network bridge mode (IP addr: 192.168.1.135). After executing this command you can open http://{your-host-ip}:8080 in your browser. You should see ThingsBoard login page. Use the following default credentials: * System Administrator: sysadmin@thingsboard.org / sysadmin * Tenant Administrator: tenant@thingsboard.org / tenant * Customer User: customer@thingsboard.org / customer You can always change passwords for each account in account profile page. >**ThingsBoard Login** ![](https://hackmd.io/_uploads/BJm-J9-nK.png) >**SysAdmin View (TB 3.3.3)** ![](https://hackmd.io/_uploads/SkgC-CF-3F.png) >**Tenant View (TB 3.3.3)** ![](https://hackmd.io/_uploads/SyAraKWht.png) >**Customer User View (TB 3.3.3)** ![](https://hackmd.io/_uploads/rJ_PCtWnK.png) >**ThingsBoard Swagger UI and REST API Auth** ![](https://hackmd.io/_uploads/Sk8h0tbht.png) ## Get into a Docker container's shell ``` star@tb-ce:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6d2a9e4c90b2 thingsboard/tb-postgres "start-tb.sh" 24 hours ago Up 24 hours 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 0.0.0.0:5683->5683/udp, :::5683->5683/udp, 5685/udp, 0.0.0.0:8080->9090/tcp, :::8080->9090/tcp tb_mytb_1 star@tb-ce:~$ docker exec -it ce_mytbce_1 env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/12/bin HOSTNAME=2dcde43aac7e TERM=xterm TB_QUEUE_TYPE=in-memory LANG=C.UTF-8 JAVA_HOME=/docker-java-home JAVA_VERSION=11.0.16 JAVA_DEBIAN_VERSION=11.0.16+8-1~deb11u1 PG_MAJOR=12 DATA_FOLDER=/data HTTP_BIND_PORT=9090 DATABASE_TS_TYPE=sql PGDATA=/data/db SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard SPRING_DATASOURCE_USERNAME=thingsboard SPRING_DATASOURCE_PASSWORD=postgres PGLOG=/var/log/postgres HOME=/home/thingsboard star@tb-ce:~$ docker exec -it tb_mytb_1 bash thingsboard@6d2a9e4c90b2:/$ ``` Resource(s) --- * [Facebook ThingsBoard Taiwan Group](https://facebook.com/groups/thingsboard)