
오늘은 IoT 플랫폼으로 많이 활용되는 ThingsBoard를 Ubuntu 서버에 설치하고,
Docker-Compose를 통해 PostgreSQL과 함께 실행하는 전체 과정을 기록해보았습니다.
사전 준비부터 방화벽 설정, 데이터베이스 접근 설정까지 모두 담았으니
처음 설치하시는 분들께 도움이 되었으면 좋겠습니다 😊
ThingsBoard는 오픈소스 기반의 IoT 플랫폼으로,
디바이스 관리, 데이터 수집 및 시각화, 경고 시스템, 원격 제어 기능 등을 지원합니다.
IoT 데이터를 실시간으로 모니터링하거나, 사용자 맞춤 대시보드를 구성할 수 있는 것이 특징이에요.
공식 사이트: https://thingsboard.io
Ubuntu 서버 환경에서 아래 순서대로 작업을 진행합니다.
sudo passwd root
apt-get update
apt-get upgrade -y
sudo apt-get update && sudo apt-get install openssh-server
sudo systemctl status ssh
sudo systemctl start ssh
sudo systemctl enable ssh
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
sudo apt install -y docker.io
sudo apt install -y docker-compose
mkdir -p ~/thingsboard && cd ~/thingsboard
nano docker-compose.yml
version: '3.3'
services:
postgres:
image: postgres:14
container_name: postgres
restart: always
environment:
POSTGRES_DB: thingsboard
POSTGRES_USER: tb_user
POSTGRES_PASSWORD: tb_password
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
tb:
image: thingsboard/tb-postgres
container_name: thingsboard
restart: always
depends_on:
- postgres
ports:
- "8080:9090"
- "1883:1883"
- "5683:5683/udp"
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboard
SPRING_DATASOURCE_USERNAME: tb_user
SPRING_DATASOURCE_PASSWORD: tb_password
TB_QUEUE_TYPE: in-memory
volumes:
- tb-data:/data
- tb-logs:/var/log/thingsboard
volumes:
postgres-data:
tb-data:
tb-logs:
sudo ufw allow 8080/tcp
sudo ufw allow 9090/tcp
sudo ufw allow 1883/tcp
sudo ufw allow 5432/tcp
sudo ufw allow 5683/udp
sudo usermod -aG docker <사용자명>
logout # 로그아웃 후 다시 로그인하여 적용
cd ~/thingsboard
docker-compose up -d
docker exec -it -u 0 postgres bash
apt-get update && apt-get install nano -y
cd /var/lib/postgresql/data
nano pg_hba.conf
# 아래 라인 추가 또는 수정
host all all 0.0.0.0/0 md5
수정 후 저장: Ctrl + X → Y → Enter
컨테이너 종료:
exit
docker restart postgres
브라우저에서 아래 주소로 접속합니다:
http://<서버 IP>:8080
sysadmin@thingsboard.orgsysadmin이제 ThingsBoard가 정상 실행되었다면,
디바이스 연결, 데이터 시각화 대시보드 구성 등을 진행할 수 있어요!
다음 글에서는 Web UI 설정, 장치 등록, 텔레메트리 수집 등도 다뤄볼 예정입니다 🙌
궁금한 점이 있다면 언제든 댓글 주세요!
잘보구 갑니당!