Структура ПО РТЛС
По умолчанию все модули имеют между собой связь средствами docker с возможностью установки каждого модуля на отдельной машине |
Минимальные требования (по умолчанию требования указаны для конфигурации UWB + LE + SRV и развертывании в пределах одной машины и могут меняться в зависимости от используемых модулей, конфигурации инфраструктуры, кол-ва меток, частоты обновления данных от меток, сроков хранения данных и т.д. ):
OS | Ubuntu Server 20.04, Ubuntu Server 22.04, Debian 11 |
CPU | 4 cores CPU, 2GHz |
RAM | 4 Gb |
FS | 50 Gb |
Порты | 443/tcp, 5683/udp |
* с поддержкой LoRaWAN | 8420/tcp |
* c поддержкой BLE позиционирования | 8520/tcp |
Все команды по конфигурации ОС и установке пакетов производятся под пользователем с административными правами (здесь и далее пользователь appuser). Все команды здесь и далее приведены для Ubuntu Server 20.04. Инструкции по установке на другие версии OS: docker и docker-compose |
Удалить старые версии пакетов Docker Engine (если были установлены ранее)
sudo apt-get remove docker docker-engine docker.io containerd runc |
Добавить репозиторий
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 -zxvf 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 -zxvf 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 -L https://repo.rtlsnet.ru/repository/raw-rtls/releases/$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/ |
Положить полученный от разработчиков update.sql файл в папку rtls/postgres
Запустить контейнер postgres
docker compose up -d postgres |
Запустить процедуру обновления БД
docker compose exec -ti postgres psql -d postgres -U rtls_pu -f /var/lib/postgresql/data/update.sql |
Скопировать конфигурацию emxq контейнера (если исходная версия ПО РТЛС v5.x)
cp -R ../rtls_bup/emqx/data/* srv/emqx/data/ |
Запустить ПО в зависимости от необходимой конфигурации
запуск с поддержкой 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 и проверить, что загруженные ранее карты доступны для работы