ThingsBoardv4.2.2.7
IoT-платформа для датчиков: история показаний, тревоги, панели и отдельный кабинет заказчика без разработки бэкенда с нуля.
ThingsBoard превращает показания датчиков в графики, историю и тревоги. Оператор следит за всеми объектами, а каждому заказчику можно назначить только его устройства и панели. Такой кабинет работает в Community Edition без коммерческого ключа: не нужно писать хранение данных, правила обработки и разграничение доступа с нуля.
После создания сервера установка поднимет приложение, базу и очередь, заведет двух администраторов и откроет веб-интерфейс по HTTPS с сертификатом Let's Encrypt. На проверке путь от начала установки до работающего HTTPS занял около пяти минут. Дождитесь уведомления о готовности; примерные устройства и панели не загружаются.
Что внутри
- ThingsBoard CE
4.2.2.7, Java 17 - устройства, история показаний, правила, тревоги и кабинеты заказчиков.
- PostgreSQL 16.15
- отдельная база для пользователей, настроек, показаний и панелей.
- Apache Kafka 4.0.2
- очередь обработки событий с сохранением на томе, чтобы сообщения не зависели от памяти процесса.
- Caddy 2.11.7
- HTTPS для панели и API датчиков, выпуск и продление сертификата Let's Encrypt.
Безопасность
- Вход подготовлен до публичного доступаоба администратора получают пароль сервера; заводские пароли проверяются на отказ до запуска HTTPS.
- Посторонний не создаст пользователяанонимный запрос к API создания учетной записи получает отказ, пользователями управляет администратор.
- База и очередь закрыты снаружиPostgreSQL и Kafka не публикуют порты; интерфейс и API доступны через HTTPS.
- Свои секретыустановка генерирует случайный пароль базы и отдельный ключ подписи сессий, файл настроек доступен только root.
- fail2ban на SSHпять неудачных попыток входа приводят к блокировке IP на час.
- Отчет вендору отключенфоновая проверка обновлений, отправляющая идентификатор установки, выключена.
- Версия
4.2.2.7с исправлением старого интерфейсазакрыта CVE-2026-22610: вредоносный SVG мог выполнить посторонний код в браузере пользователя.
Как войти
Возьмите IP сервера в панели, замените точки на дефисы и добавьте
.fatmetal.net. Откройте получившийся адрес по HTTPS.Для устройств и кабинетов войдите как
tenant@thingsboard.org, для управления платформой - какsysadmin@thingsboard.org. Оба администратора уже созданы; пароль обоих - пароль сервера из панели, тот же, что для SSH.Чтобы задать отдельный пароль, откройте меню профиля -> Security и смените его для нужной учетной записи.
Под
tenant@thingsboard.orgоткройте Entities -> Devices ->+-> Add new device. Задайте имя устройства; в его карточке нажмите Copy access token.Отправьте показание, заменив домен и ТОКЕН своими значениями:
curl -fsS -X POST "https://ваш-домен/api/v1/ТОКЕН/telemetry" -H 'Content-Type: application/json' -d '{"temperature":22.1}'.Откройте Latest telemetry в карточке устройства: появится ключ
temperatureсо значением22.1. Для графика создайте панель в Dashboards и добавьте виджет Time series chart с этим устройством как источником.
Важно
Интерфейс проверенной CE 4.2.2.7 на английском. Публичный прием показаний настроен по HTTPS. MQTT на порту 1883 доступен только локально или через SSH-туннель; готового публичного MQTTS-входа в этом рецепте нет.
Для приглашений и восстановления доступа настройте свою почту. Под системным администратором откройте меню профиля -> Profile, замените заводской Email на свой и нажмите Save: новый адрес станет логином, а на него придет тестовое письмо. Затем в Settings -> Mail server заполните Mail From, SMTP host, SMTP port, Username и Password, включите Enable TLS для STARTTLS, выберите TLSv1.2, нажмите Save и Send test mail.
Для внешних ИИ-моделей укажите собственный ключ выбранного провайдера в настройках модели. Прокси Fatmetal к внешним API входит в VPS и уже настроен для Java-приложения. Прием показаний, история и тревоги работают без ИИ-модели.
Это новая установка на одном сервере, без переноса старой базы и без отказоустойчивого кластера. Делайте резервные копии: umask 077; cd /opt/thingsboard && sudo docker compose exec -T postgres pg_dump -U thingsboard -d thingsboard -Fc > ~/thingsboard.dump; файл появится в домашнем каталоге SSH-пользователя. Храните копию отдельно от VPS. Команда docker compose down -v удаляет данные вместе с томами.
Лицензия
ThingsBoard Community Edition 4.2.2.7 распространяется под Apache-2.0 и допускает коммерческое использование. Рецепт закреплен на этой версии; коммерческий ключ для описанного сценария не нужен.
Свой домен
- Направьте
A-запись своего домена на публичный IP сервера. - Проверьте:
ping ваш-домендолжен показывать этот IP. Пока адрес не совпадает, дождитесь обновления DNS. - По SSH получите права root командой
sudo -i. В файле/opt/thingsboard/.envзамените значениеAPP_DOMAINна свой домен безhttps://. - Выполните
cd /opt/thingsboard && sudo docker compose --profile public up -d caddy. Caddy выпустит сертификат для нового адреса. - Откройте
https://ваш-домени войдите какsysadmin@thingsboard.org. В Settings -> General задайте Base URL =https://ваш-домен, оставьте Force base URL включенным и нажмите Save. - Для работы с устройствами используйте
tenant@thingsboard.org. Пароль обоих администраторов остается прежним: пароль сервера из панели, если вы его еще не меняли в ThingsBoard.
Требования
Ubuntu 24.04 LTS; открытые входящие порты 80/443 для HTTPS и выпуска сертификата, SSH для обслуживания.
Тариф CPU4-RAM8-DISK100 - для нескольких объектов с историей, тревогами и кабинетами заказчиков. Стек в простое занимает около 2,3 ГиБ RAM без файлового кеша. В проверке загружена суточная история 20 датчиков с тремя показателями раз в минуту; при такой разовой загрузке пик CPU достигал 3,6 ядра. Это основание оставить четыре ядра и запас памяти для JVM.
Если при вашей постоянной нагрузке процессор надолго занят полностью, переходите на CPU6-RAM16-DISK100. Количество одновременно работающих устройств, частота показаний и сложность правил влияют на нагрузку вместе.