--- title: TB Edge Installation tags: TB DevOps --- # TB Edge Deployment :::info TB CE (192.168.1.205) * \+ ==**Edge**== (192.168.1.110) * \+ thingsboard-gateway (192.168.1.110) * \+ sensor devices (iAeris2) ::: :::warning Limitations * It is designed for **a single tenant** and **a single customer**. * A single Edge instance is capable of handling up to **1,000 devices**. ::: [toc] ## Installing Edge using Docker in Debian / Ubuntu ### Prerequisites :bulb: * We need to have one live ThingsBoard CE instance first (version compatible). * We need to have [Docker Engine](https://docs.docker.com/engine/install/) and [Docker Compose](https://docs.docker.com/compose/install/linux/#install-using-the-repository) on the target environment for edge instance(s). ### Edge provision on cloud 1. Login [TB](http://192.168.1.205:8080) Web GUI (smartpole@5giotlead.com/*********) 2. New create an Edge instance, see [details](https://thingsboard.io/docs/edge/getting-started/?cloudType=on-premise) 3. Copy **Edge Key** & **Secret** ### Running Edge > [details](https://thingsboard.io/docs/user-guide/install/edge/docker/) 1. Use SSH to Connect to IoT gateway ( @192.168.1.110 ) 2. New create and Edit the file - **docker-compose.yml** * :bulb: ++essential params++ * CLOUD_ROUTING_KEY (EDGE KEY) * CLOUD_ROUTING_SECRET (Secret) * CLOUD_RPC_HOST (TB address or domain name) ``` version: '3.0' services: mytbedge: restart: always image: "thingsboard/tb-edge:3.4.3EDGE" ports: - "8080:8080" - "1883:1883" - "5683-5688:5683-5688/udp" environment: SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/tb-edge CLOUD_ROUTING_KEY: PUT_YOUR_EDGE_KEY_HERE # e.g. 19ea7ee8-5e6d-e642-4f32-05440a529015 CLOUD_ROUTING_SECRET: PUT_YOUR_EDGE_SECRET_HERE # e.g. bztvkvfqsye7omv9uxlp CLOUD_RPC_HOST: PUT_YOUR_CLOUD_IP # e.g. 192.168.1.205 volumes: - ~/.mytb-edge-data:/data - ~/.mytb-edge-logs:/var/log/tb-edge postgres: restart: always image: "postgres:12" ports: - "5432" environment: POSTGRES_DB: tb-edge POSTGRES_PASSWORD: postgres volumes: - ~/.mytb-edge-data/db:/var/lib/postgresql/data ``` * ( optional ) use rebuild docker image from source code * [docker image import & export](https://hackmd.io/Dj-kjYP5TnezsNkA5ihC-g?view#Docker-image-%E5%8C%AF%E5%87%BA-amp-%E5%8C%AF%E5%85%A5%E6%AA%94%E6%A1%88) 2. Create folders for storing data and logs ``` mkdir -p ~/.mytb-edge-data && sudo chown -R 799:799 ~/.mytb-edge-data mkdir -p ~/.mytb-edge-logs && sudo chown -R 799:799 ~/.mytb-edge-logs ``` 3. Run up docker compose (working directory with a file named docker-compose.yml) to bring up docker containers in the background ``` docker compose up -d or docker-compose up -d ``` 4. Check docker console logs ``` docker compose logs -f mytbedge ``` 5. Login Edge Web GUI based on the same credentials as the TB > http://192.168.1.110:8080 ## References * [Install / Upgrade ThingsBoard Edge using Docker](https://hackmd.io/pGm_5F8zTeSB8j_z-DISbQ?view) * [Troubleshooting instruments and tips](https://thingsboard.io/docs/edge/user-guide/troubleshooting/)