Структура ПО РТЛС
По умолчанию все модули имеют между собой связь средствами docker с возможностью установки каждого модуля на отдельной машине |

Минимальные требования (по умолчанию требования указаны для конфигурации UWB + LE + SRV и развертывании в пределах одной машины и могут меняться в зависимости от используемых модулей, конфигурации инфраструктуры, кол-ва меток, частоты обновления данных от меток, сроков хранения данных и т.д. ):
OS | Ubuntu Server 20.04, Ubuntu Server 22.04, Debian 11 |
CPU | 4 (min) 6 (recommended) cores CPU, 2GHz |
RAM | 6 Gb |
FS | 50 Gb |
Порты | 443/tcp, 5683/udp |
* с поддержкой DTLS на анкерах | 5684/udp |
* с поддержкой LoRaWAN | 8420/tcp |
* c поддержкой BLE позиционирования | 8520/tcp |
Все команды по конфигурации ОС и установке пакетов производятся под пользователем с административными правами (здесь и далее пользователь appuser). Все команды здесь и далее приведены для Ubuntu Server 20.04. Инструкции по установке на другие версии OS: docker и docker-compose |
Удалить старые версии пакетов Docker Engine (если были установлены ранее) . Docker, запущенный через snap, должен быть удален!
sudo apt-get remove docker docker-engine docker.io containerd runc sudo snap remove docker |
Добавить репозиторий
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
Установить последние версии пакетов Docker Engine
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin |
Проверить , что пакеты установились успешно
docker version docker compose version |
Пользователя, под которым будет производится управление ПО РТЛС, добавить в группу docker
sudo usermod -aG docker appuser |
Повторно авторизоваться под пользователем appuser для применения прав доступа
Все команды производятся под пользователем appuser |
Получить от РТЛС Логин и Пароль для доступа к репозиторию.
Авторизоваться в docker с полученными параметрами подключения
docker login repo.rtlsnet.ru:5000 Username: *** Password: **** Login Succeeded |
На странице доступных релизов найти архив с конфигурацией нужной версии RTLS releases
Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v5.0) , <repo-user> имя пользователя для доступа к ресурсам репозитория РТЛС. В процессе выполнения команды curl потребуется ввести пароль для пользователя <repo-user>
mkdir rtls cd rtls export RTLS_VERSION=<version> curl -u <repo-user> -v -L https://repo.rtlsnet.ru/repository/rtls-public/srv/release/$RTLS_VERSION/RTLS-compose-$RTLS_VERSION.tar.gz -o rtls.tar.gz tar -xvf rtls.tar.gz rm rtls.tar.gz |
Запустить ПО в зависимости от необходимой конфигурации
запуск с поддержкой UWB
docker compose up -d |
запуск с поддержкой получения данных по LoRa
docker compose --profile actobus up -d |
Запуск с поддержкой BLE (включая получение данных по LoRa)
docker compose --profile ble up -d |
После полного старта контейнера SRV статус должен перейти в healthy
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c58f0cc80b8e repo.rtlsnet.ru:5000/emqx:4.4.2 "/usr/bin/docker-ent…" 43 hours ago Up 5 minutes (healthy) 1883/tcp, 4369-4370/tcp, 5369/tcp, 6369-6370/tcp, 8081/tcp, 8083-8084/tcp, 8883/tcp, 11883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp rtls-emqx-1 af20240c2d95 repo.rtlsnet.ru:5000/srv:v5.0 "/entrypoint.sh -c s…" 44 hours ago Up 5 minutes (healthy) 0.0.0.0:9993->9993/tcp, :::9993->9993/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:8300->8081/tcp, :::8300->8081/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp rtls-srv-1 f16b0ad37ef3 repo.rtlsnet.ru:5000/le:v5.0 "/entrypoint.sh '-f …" 44 hours ago Up 5 minutes 0.0.0.0:5683->5683/udp, :::5683->5683/udp, 0.0.0.0:17320-17321->17320-17321/udp, :::17320-17321->17320-17321/udp, 0.0.0.0:8320->8320/tcp, :::8320->8320/tcp rtls-le-1 d95d0ae66074 repo.rtlsnet.ru:5000/postgres:9.6 "/entrypoint.sh post…" 44 hours ago Up 5 minutes (healthy) rtls-postgres-1 |
После старта сервисов должны быть доступны пользовательские интерфейсы, где <ip> адрес машины, на которой развернуто ПО РТЛС
https://<ip>/CToolUI - интерфейс конфигурации
https://<ip>/BA-UI - пользовательский интерфейс
http://<ip>:8420 - ресурсы actobus (при запуске ПО с профилем actobus и ble)
http://<ip>:8520 - ресурсы BLE (при запуске ПО с профилем ble)
Первоначальная загрузка образов производится на машине с доступом к репозиторию РТЛС |
Получить от РТЛС Логин и Пароль для доступа к репозиторию.
Авторизоваться в docker с полученными параметрами подключения
docker login repo.rtlsnet.ru:5000 Username: *** Password: **** Login Succeeded |
На странице доступных релизов найти архив с конфигурацией нужной версии RTLS releases
Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v5.0) , <repo-user> имя пользователя для доступа к ресурсам репозитория РТЛС. В процессе выполнения команды curl потребуется ввести пароль для пользователя <repo-user>
mkdir rtls cd rtls export RTLS_VERSION=<version> curl -u <repo-user> -v -L https://repo.rtlsnet.ru/repository/rtls-public/srv/release/$RTLS_VERSION/RTLS-compose-$RTLS_VERSION.tar.gz -o rtls.tar.gz tar -xvf rtls.tar.gz rm rtls.tar.gz |
Загрузить образы в локальное хранилище
docker compose pull |
Сохранить образ в файл (где <file_name> имя контейнера, <version> - версия контейнера, например v5.0).
docker save -o <file_name>.tar repo.rtlsnet.ru:5000/name:<version> gzip <file_name>.tar |
Повторить процедуру выгрузки для всех необходимых контейнеров
с поддержкой UWB: postgres, srv, le, emqx, emqx_init
с поддержкой LoRa: postgres, srv, le, emqx, emqx_init, redis, actobus
поддержкой BLE (включая получение данных по LoRa): postgres, srv, le, emqx, emqx_init, actobus, ble-solver, redis
Скопировать в домашнюю директорию пользователя appuser на машине, где развертывается ПО архивы
Импортировать каждый контейнер в docker (где <file_name> имя контейнера)
docker load -i <file_name>.tar.gz |
Проверить результат импорта (в списке должны появиться версии контейнеров, экспортированные ранее)
docker images |
Запустить ПО в зависимости от необходимой конфигурации
запуск с поддержкой UWB
docker compose up -d |
запуск с поддержкой получения данных по LoRa
docker compose --profile actobus up -d |
Запуск с поддержкой BLE (включая получение данных по LoRa)
docker compose --profile ble up -d |
После полного старта контейнера SRV статус должен перейти в healthy
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c58f0cc80b8e repo.rtlsnet.ru:5000/emqx:4.4.2 "/usr/bin/docker-ent…" 43 hours ago Up 5 minutes (healthy) 1883/tcp, 4369-4370/tcp, 5369/tcp, 6369-6370/tcp, 8081/tcp, 8083-8084/tcp, 8883/tcp, 11883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp rtls-emqx-1 af20240c2d95 repo.rtlsnet.ru:5000/srv:v5.0 "/entrypoint.sh -c s…" 44 hours ago Up 5 minutes (healthy) 0.0.0.0:9993->9993/tcp, :::9993->9993/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:8300->8081/tcp, :::8300->8081/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp rtls-srv-1 f16b0ad37ef3 repo.rtlsnet.ru:5000/le:v5.0 "/entrypoint.sh '-f …" 44 hours ago Up 5 minutes 0.0.0.0:5683->5683/udp, :::5683->5683/udp, 0.0.0.0:17320-17321->17320-17321/udp, :::17320-17321->17320-17321/udp, 0.0.0.0:8320->8320/tcp, :::8320->8320/tcp rtls-le-1 d95d0ae66074 repo.rtlsnet.ru:5000/postgres:9.6 "/entrypoint.sh post…" 44 hours ago Up 5 minutes (healthy) rtls-postgres-1 |
После старта сервисов должны быть доступны пользовательские интерфейсы, где <ip> адрес машины, на которой развернуто ПО РТЛС
https://<ip>/CToolUI - интерфейс конфигурации
https://<ip>/BA-UI - пользовательский интерфейс
http://<ip>:8420 - ресурсы actobus (при запуске ПО с профилем actobus и ble)
http://<ip>:8520 - ресурсы BLE (при запуске ПО с профилем ble)
Выключить все контейнеры
cd rtls docker compose stop |
Удалить папку rtls
cd ../rtls rm -rf rtls |
Провести установку согласно инструкциям раздела Чистая установка ПО РТЛС
Посмотреть текущие версии ПО
docker ps |
Получить от РТЛС скрипт update.sql для обновления струкруры БД до нужной версии, если скрипт отсутствует на странице описания релиза, обновление БД не требуется
Выключить все контейнеры
cd rtls docker compose stop |
Сделать бекап текущего состояния через изменение имени рабочей директории rtls
cd ../ mv rtls rtls_bup |
Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v4.3.8)
mkdir rtls cd rtls export RTLS_VERSION=<version> curl -u <repo-user> -v -L https://repo.rtlsnet.ru/repository/rtls-public/srv/release/$RTLS_VERSION/RTLS-compose-$RTLS_VERSION.tar.gz -o rtls.tar.gz tar -zxvf rtls.tar.gz rm rtls.tar.gz |
Скопировать сохраненное состояние БД в новую рабочую директорию
cp -R ../rtls_bup/postgres/pgdata ./postgres/ cp -R ../rtls_bup/postgres/tablespaces ./postgres/tablespaces |
* Загрузить со страницы с описанием релиза скрипт update.sql для обновления БД и положить в папку rtls/postgres
Запустить контейнер postgres
docker compose up -d postgres |
* Запустить процедуру обновления БД, заменить update.sql на правильное название файла, если оно отличается
docker compose exec -ti postgres psql -d postgres -U rtls_pu -f /var/lib/postgresql/data/update.sql |
Скопировать конфигурацию emxq контейнера (если исходная версия ПО РТЛС v5.x и были дополнительные настройки интеграции в EMQX в процессе работы, иначе можно пропустить)
cp -R ../rtls_bup/emqx/data/* emqx/data/ |
cp -R ../rtls_bup/.env ./ |
Запустить ПО в зависимости от необходимой конфигурации
запуск с поддержкой UWB
docker compose up -d |
запуск с поддержкой получения данных по LoRa
docker compose --profile actobus up -d |
Запуск с поддержкой BLE (включая получение данных по LoRa)
docker compose --profile ble up -d |
Дождаться полного старта контейнера srv (статус healthy при опросе статуса контейнеров)
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c58f0cc80b8e repo.rtlsnet.ru:5000/emqx:4.4.2 "/usr/bin/docker-ent…" 43 hours ago Up 5 minutes (healthy) 1883/tcp, 4369-4370/tcp, 5369/tcp, 6369-6370/tcp, 8081/tcp, 8083-8084/tcp, 8883/tcp, 11883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp rtls-emqx-1 af20240c2d95 repo.rtlsnet.ru:5000/srv:v5.0 "/entrypoint.sh -c s…" 44 hours ago Up 5 minutes (healthy) 0.0.0.0:9993->9993/tcp, :::9993->9993/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:8300->8081/tcp, :::8300->8081/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp rtls-srv-1 f16b0ad37ef3 repo.rtlsnet.ru:5000/le:v5.0 "/entrypoint.sh '-f …" 44 hours ago Up 5 minutes 0.0.0.0:5683->5683/udp, :::5683->5683/udp, 0.0.0.0:17320-17321->17320-17321/udp, :::17320-17321->17320-17321/udp, 0.0.0.0:8320->8320/tcp, :::8320->8320/tcp rtls-le-1 d95d0ae66074 repo.rtlsnet.ru:5000/postgres:9.6 "/entrypoint.sh post…" 44 hours ago Up 5 minutes (healthy) rtls-postgres-1 |
Скопировать данные о картографических слоях, созданных в предыдущей версии ПО в рабочую папку
cp -R ../rtls_bup/srv/geoserver-data/data/rtls srv/geoserver-data/data/ cp -R ../rtls_bup/srv/geoserver-data/workspaces/rtls/site* srv/geoserver-data/workspaces/rtls/ |
Перезапустить контейнер сервера приложений
docker compose restart srv |
Авторизоваться в BA-UI и проверить, что загруженные ранее карты доступны для работы