Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
IoT-платформа

ThingsBoard

Open-source платформа для приема телеметрии с устройств, обработки правилами и дашбордов. Развернули Community Edition на своем сервере, проверили прием данных и замерили аппетит стека JVM + PostgreSQL.

Сентябрь 2026 ~9 минут чтения Fatmetal Team
IoT-платформа Лицензия: Apache 2.0 Статус: запущен у нас, CE v4.2.1.1

Вердикт

Подходит
  • кто собирает телеметрию с устройств по MQTT/HTTP/CoAP и хочет все держать у себя
  • прототипам и продакшену IoT: правила, алармы, дашборды из коробки
  • кому важен полный контроль над данными без облака вендора
Не подходит
  • для одного-двух домашних датчиков - избыточно, хватит Home Assistant
  • кто не готов эксплуатировать JVM-стек и Postgres
  • кому нужна кластеризация/white-label из коробки - это платная PE
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU4-RAM8-DISK100 Сложность: medium RAM в простое: ~1.25 ГБ Главный риск: монолит-образ отстает от GitHub-релиза Прод-готовность: с оговорками (TLS + смена паролей + Kafka под нагрузку)
Что это

Что это и какую задачу решает

ThingsBoard - платформа для интернета вещей: устройства шлют в нее телеметрию по MQTT, HTTP или CoAP, платформа хранит данные, гоняет их через движок правил (rule engine), поднимает алармы и рисует дашборды. По сути это готовый бэкенд для IoT-проекта, который иначе пришлось бы собирать из брокера, базы под временные ряды, обработчика событий и фронта с графиками.

Community Edition распространяется под Apache 2.0 и ставится на свой сервер. Это закрывает боль тех, кому нельзя или не хочется гнать показания датчиков в чужое облако: производство, энергетика, умные здания, агротех. Из коробки - мультитенантность (тенанты и их клиенты), профили устройств, виджеты, REST API и встроенный MQTT-брокер.

Java 17Spring BootPostgreSQLMQTT / HTTP / CoAPDocker
Сравнение

Чем отличается от платных аналогов

Сравнение с управляемыми IoT-облаками по тому, что влияет на выбор.

ПараметрThingsBoard CE (self-hosted)Облачный IoT (AWS IoT, TB Cloud)
Модель ценыбесплатно, платите за свой серверза устройства и сообщения
Где данныена вашем серверев облаке провайдера
Vendor lock-inнет, открытый кодзавязка на API провайдера
MQTT-брокервстроенотдельный сервис
Масштаб под нагрузкуKafka + кластер вручнуюиз коробки, но платно
Под капотом

Тех-стек и архитектура

Ядро написано на Java 17 (Spring Boot), данные и телеметрия лежат в PostgreSQL. Для быстрой установки есть монолит-образ thingsboard/tb-postgres - в одном контейнере и приложение, и база. Внутренняя очередь событий по умолчанию in-memory; для продакшена под нагрузкой ThingsBoard переключают на Kafka.

В большом развертывании компоненты разносят: отдельно ядро, отдельно транспортные сервисы (MQTT/HTTP/CoAP), отдельно веб-UI, PostgreSQL и Kafka. Для разбора и типового старта достаточно монолита - он поднимается одним docker compose up.

Конфигурация

Минимальная конфигурация

Реальные требования против официального минимума.

Официальный минимум RAM4 ГБ
Реально в простое (контейнер)~1.25 ГБ
Занято на хосте после старта~1.9 ГБ
Рекомендуем тарифCPU4-RAM8-DISK100
i

Важно: под 4 ГБ монолит стартует впритык - JVM-heap, Postgres и ОС конкурируют за память. Берем 8 ГБ, чтобы был запас под прием телеметрии и rule engine, а не только на холостой старт.

В маркетплейсе Fatmetal

Не хотите ставить руками?

ThingsBoard CE есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочую платформу на своем домене, валидный TLS и файл с доступами.

Рекомендуемая конфигурация:
4 vCPU · 8 ГБ RAM · 100 ГБ NVMe от 990 ₽/мес

Развернуть в 1 клик →
Развертывание

Развертывание на Fatmetal

Базовый путь - Cloud Server + Ubuntu 24.04 + Docker.

  1. Создать VM

    Тариф CPU4-RAM8-DISK100, Ubuntu 24.04, приложение Docker.

  2. Подготовить compose

    mkdir ~/thingsboard && cd ~/thingsboard
    # монолит-образ: приложение + PostgreSQL в одном контейнере
    # берем реальный тег, НЕ latest (см. «Где может сломаться»)

    Образ: thingsboard/tb-postgres:4.2.1.1, порт 8080, том под данные.

  3. Поднять стек

    docker compose up -d
    docker compose logs -f | grep "Started ThingsBoard"

    Первый старт инициализирует схему БД - это занимает заметно дольше обычного. Проверка: curl -I localhost:8080 должен вернуть 200.

  4. Валидный TLS

    Поставить Caddy обратным прокси на :8080 - он сам возьмет сертификат Let's Encrypt на ваш домен. Голый :8080 наружу не выставляем.

  5. Сменить дефолтные пароли

    Учетки sysadmin@thingsboard.org, tenant@thingsboard.org, customer@thingsboard.org активны сразу с известными паролями - сменить до выхода в интернет.

https://ваш-домен
Домашний экран ThingsBoard CE: сводка устройств, алармов и активности
Home - сводка тенанта. ThingsBoard CE v4.2.1.1, тариф CPU4-RAM8.
https://ваш-домен/entities/devices
Список устройств ThingsBoard: профили thermostat и default, состояние и владелец
Раздел устройств с профилями и состоянием. ThingsBoard CE v4.2.1.1.
Замеры

Что измерили после запуска

Цифры со свежей установки, без нагрузки. Стенд: 4 vCPU / 8 ГБ, in-memory queue.

RAM контейнера в простое~1.25 ГБ
Занято на хосте1894 / 7941 МБ
CPU в простое~8%
Отклик UI (локально)~16 мс
Логин через API (локально)~224 мс
i

Главное: в простое монолит держит ~1.25 ГБ - это JVM-heap плюс Postgres в одном образе. UI отвечает мгновенно; основную память съедает именно JVM, поэтому запас RAM важнее числа ядер.

Проверено на ThingsBoard CE v4.2.1.1, сентябрь 2026. На новых версиях результаты могут отличаться.

Подводные камни

Где может сломаться

Реальные грабли, на которые наткнулись при запуске.

!

In-memory очередь. Дефолт монолита - очередь в памяти. Для демо и одного узла нормально, но под продакшен-нагрузку и чтобы события переживали рестарт, переключают на Kafka.

!

Дефолтные учетки. Три системных аккаунта активны сразу с публично известными паролями. Сменить до того, как платформа станет доступна из интернета.

manifest for thingsboard/tb-postgres:4.3.1.4 not found: manifest unknown

Причина. На GitHub уже вышел CE v4.3.1.4, но монолит-образа tb-postgres под этот тег на Docker Hub еще нет - последний доступный монолит на момент разбора v4.2.1.1. Если взять номер версии из GitHub-релиза, pull падает на несуществующем теге.

Решение. Пиньте реальный существующий тег образа (tb-postgres:4.2.1.1), а не latest и не номер из релиз-нот. Свежие версии сперва появляются как компонентные образы, монолит подтягивается позже.

Безопасность

Безопасность и обновления

Релизы и security advisories - на GitHub проекта. Перед апдейтом читайте release notes: между мажорными версиями бывают миграции схемы БД. Обновление:

docker compose pull && docker compose up -d

Бэкап базы:

docker exec tb-postgres pg_dump -U postgres thingsboard > backup.sql
Рядом

Связь с другими стеками

  • Обратный прокси - Caddy / Nginx Proxy Manager для валидного TLS перед :8080.
  • Очередь - Kafka вместо in-memory под продакшен-нагрузку.
  • Бэкапы - pg_dump базы thingsboard + выгрузка в S3.
  • Мониторинг - Grafana + Prometheus поверх метрик платформы.
Честно

Когда это НЕ ваш выбор

Пара датчиков для дома

Разворачивать JVM-платформу с Postgres ради двух термометров - из пушки по воробьям. Home Assistant или Node-RED закроют задачу проще.

Нужен managed без эксплуатации

Если не готовы держать JVM-стек, следить за памятью и обновлениями - берите облачный ThingsBoard Cloud или AWS IoT и платите за удобство.

Кластеризация и white-label из коробки

Горизонтальное масштабирование одной кнопкой, брендирование, расширенные интеграции - это Professional Edition, платная.

FAQ

Частые вопросы

Можно поставить без Docker?

Да, есть установка из deb/rpm-пакетов с отдельным PostgreSQL. Но Docker-монолит воспроизводимее и быстрее для старта.

Хватит ли 2 ГБ RAM?

Нет. Официальный минимум 4 ГБ, и даже под ним JVM плюс Postgres идут впритык. Для приема телеметрии берем 8 ГБ.

Можно в продакшен?

Да: смените дефолтные пароли, закройте платформу валидным TLS через прокси, а под нагрузку переключите очередь на Kafka.

Как обновлять?

docker compose pull && docker compose up -d, но сперва читайте release notes - бывают миграции схемы.

Что бэкапить?

Базу PostgreSQL (pg_dump базы thingsboard) и том с данными контейнера.

Какие протоколы устройств поддерживаются?

MQTT, HTTP и CoAP из коробки, MQTT-брокер встроен в платформу.

Какие ограничения лицензии?

Community Edition - Apache 2.0, коммерческое использование свободно. Кластеризация и white-label - в платной Professional Edition.

Итог

ThingsBoard CE - зрелый open-source бэкенд для IoT: MQTT-брокер, rule engine, алармы и дашборды в одном месте, данные на своем сервере. В простое монолит держит ~1.25 ГБ, UI отвечает за ~16 мс. Берите 8 ГБ RAM с запасом, пиньте реальный тег образа, закройте TLS и смените дефолтные пароли - и получите продакшен-платформу без облака вендора.

Рекомендуемая конфигурация для установки:
4 vCPU · 8 ГБ RAM · 100 ГБ NVMe

Не хотите устанавливать вручную?

Запустите ThingsBoard на этой конфигурации автоматически - от 990 ₽/мес.

Запустить ThingsBoard →
Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU4-RAM8-DISK100. Нашли баг в гайде - напишите, поправим в течение дня.