VEGA Server — программное обеспечение для приема данных из различных устройств. Например, вместе с Pulse его можно использовать для получения и отображения показаний водосчетчиков, электросчетчиков, счетчиков газа с импульсными выходами.
Дистрибутив сервера распространяется как deb-пакет, поэтому установка будет выполняться на Linux Ubuntu. Инструкция также будет работать для Debian.
Подготовка системы
Настройка VEGA Server
Использование MariaDB / MySQL
Установка MariaDB
Создание базы и пользователя
Настройка библиотек IOT VEGA для работы с mysql
Настройка VEGA Server для работы с mysql
Использование Admin Tool
Установка веб-сервера
Установка Admin Tool
Использование Pulse
Настройка IotVegaNotifier
SSL-шифрование
Обновление
IOT VEGA Server
IOT Vega Pulse
Admin Tool
Дополнительные настройки
Смена пароля root
Вход на веб из вне
Предварительная настройка
Прежде чем начать, выполним некоторые настройки.
Обновление пакетов
В Ubuntu важно вручную обновлять кэш репозитория. В противном случае могут возникать ошибки во время установки пакетов.
Выполняем команду:
apt update
Если сервер новый, то можно также обновить пакеты:
apt upgrade
Установка CURL
В инструкции для загрузки файлов мы будем использовать утилиту curl. Необходимо убедиться, что она есть в системе:
apt install curl
Настройка брандмауэра
По умолчанию, в Ubuntu фаервол настроен, чтобы пропускать все пакеты, и настройка не требуется. Однако, если в вашей системе брандмауэр блокирует входящие, нам нужно будет открыть порты udp/8001 и tcp/8002.
Как правило в системах Deb, это делается с помощью утилиты iptables :
iptables -I INPUT -p udp —dport 8001 -j ACCEPT
iptables -I INPUT -p tcp —dport 8002 -j ACCEPT
Для сохранения правил используем iptables-persistent:
apt install iptables-persistent
netfilter-persistent save
Можно переходить к установке и настройке сервера VEGA.
Установка и запуск VEGA Server
Переходим на страницу iotvega.com/product/server и копируем ссылку на IOT Vega Server для Linux:

Скачиваем архив на сервере:
curl -sLO https://iotvega.com/content/ru/soft/server/iot-vega-server-1.9.0rc18.5-100.deb
* В данном примере скачивается версия 1.9.0.
Выполняем установку:
dpkg -i iot-vega-server-*.deb
После установочный файл лучше удалить:
rm -f iot-vega-server-*.deb
Открываем на редактирование файл конфигурации:
vi /opt/iot-vega-server/settings.conf
Редактируем IP-адрес, на котором сервис должен работать:
ip=192.168.1.10
* в данном примере сервер будет слушать на адресе 192.168.1.10 .
Запускаем сервер:
/opt/iot-vega-server/iot-vega-server.sh
Мы должны увидеть сообщение об успешном запуске:
…
INFO: [01-11 10:10:09.937](void CCustomDbConnectionRoutine::getGatewayStatistics(DB_UNI::SDbRequstParams):5968) — Collecting gateways statistics is starting…
INFO: [01-11 10:10:09.937](CCustomDbConnectionRoutine::getGatewayStatistics(DB_UNI::SDbRequstParams)::<lambda()>:5972) — Collecting gateways statistic is ended
INFO [11-01-2025 10:10:09.938](void CUdpServer::start():103) — UDP socket has opened. IP[62.217.182.183:8001]
INFO [11-01-2025 10:10:09.939](void CWebSocketServer::threadStartedSlot():116) — WebSocketServer has opened. Port[8002]
«DEBUG(int CCoreApplication::attach():22) — Started controller CCoreApplication»
Оставим консоль и подключимся новой (еще одной). В списке прослушиваемых портов должны появиться 8001 и 8002:
ss -tunlp | grep 800[1,2]
udp UNCONN 0 0 192.168.1.62:8001 *:* users:((«iot-vega-server»,pid=4381,fd=13))
tcp LISTEN 0 50 :::8002 :::* users:((«iot-vega-server»,pid=4381,fd=6))
Для автозапуска сервиса необходимо вручную создать systemd юнит:
vi /usr/lib/systemd/system/iot-vega-server.service
[Unit]
Description=IOT Vega Server
After=network.target
[Service]
User=root
Group=root
Type=forking
ExecStart=/opt/iot-vega-server/iot-vega-server.sh
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
Разрешаем автозапуск сервиса и стартуем его:
systemctl enable iot-vega-server —now
Для проверки работы, можно перезагрузить сервер и после загрузки проверить состояние службы:
systemctl status iot-vega-server
Хранение данных в MariaDB / MySQL
По умолчанию, данные хранятся в своей внутренней базе в файле /opt/iot-vega-server/server.db . Для работы с другой СУБД выполняем ряд действий, описанных ниже.
Установка MariaDB
Сначала установим ее:
apt install mariadb-server
Разрешаем автозапуск и запускаем:
systemctl enable mysql —now
Задаем пароль суперпользователю mysql:
mysqladmin -u root password
Создание базы и пользователя в СУБД
Заходим в оболочку SQL:
mysql -uroot -p
Создаем базу данных:
> CREATE DATABASE lorawan_server DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* в данном примере создана база lorawan_server .
Создаем пользователя и даем ему полные права на созданную базу:
> GRANT ALL PRIVILEGES ON lorawan_server.* TO vega@localhost IDENTIFIED BY ‘vega123’ WITH GRANT OPTION;
* в данном примере создана учетная запись vega с паролем vega123 .
Выходим из оболочки sql:
> q
Настройка библиотек IOT VEGA
Для работы с MySQL необходимо, чтобы все библиотеки или симлинки на них находились в каталоге /opt/iot-vega-server. Для проверки библиотек, переходим в каталог:
cd /opt/iot-vega-server/sqldrivers
Запускаем команду:
LD_LIBRARY_PATH=/opt/iot-vega-server/ ldd libqsqlmysql.so | grep «not found»
В моем случае был ответ такой:
libssl.so.10 => not found
libcrypto.so.10 => not found
… это означает, что симлинки libssl.so.10 и libcrypto.so.10 ведут на несуществующие файлы. Сначала удалим неправильные ссылки:
rm /opt/iot-vega-server/libssl.so.10
rm /opt/iot-vega-server/libcrypto.so.10
Теперь найдем правильное местоположение библиотек:
find {/usr/lib,/lib} -name «libssl*»
find {/usr/lib,/lib} -name «libcrypto*»
* в данном примере мы пытаемся найти нужные нам библиотеки в каталогах /lib и /usr/lib . В одном из них должны находиться нужные нам библиотеки.
После создадим правильные симлинки на существующие файлы. У меня получилось так:
ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /opt/iot-vega-server/libssl.so.10
ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /opt/iot-vega-server/libcrypto.so.10
Снова запускаем проверку:
LD_LIBRARY_PATH=/opt/iot-vega-server/ ldd libqsqlmysql.so | grep «not found»
… команда ничего не должна вернут.
Настройка Вега сервера
Для того, чтобы наш сервер начал использовать внешнюю базу, открываем его конфигурационный файл:
vi /opt/iot-vega-server/settings.conf
Редактируем следующее:
…
[external_db]
…
useExternalDb=1
…
userExternalDb=vega
passwordExternalDb=vega123
…
* useExternalDb указывает, использовать ли внешнюю базу данных; userExternalDb задает имя пользователя; passwordExternalDb — пароль для пользователя базы.
Перезапускаем демона vega:
systemctl restart iot-vega-server
Проверяем работу сервиса:
systemctl status iot-vega-server
* если сервис запускается с ошибкой, снова открываем конфигурационный файл /opt/iot-vega-server/settings.conf и задаем настройки подключения к базе под пользователем root.
Установка Admin Tool
Для управления сервером с помощью веб-интерфейса, ставим веб-сервер и Admin Tool.
Веб-сервер
В качестве веб-сервера достаточно установить NGINX. Для его установки вводим:
apt install nginx
Разрешаем автозапуск и стартуем сервис:
systemctl enable nginx —now
Если в системе брандмауэр блокирует входящие, нам нужно будет открыть порт 80:
iptables -I INPUT -p tcp —dport 80 -j ACCEPT
netfilter-persistent save
Можно переходить к установке и настройке сервера VEGA.
Для проверки работы сервера открываем браузер и переходим на страницу http://<IP-адрес сервера>/ — должна откыться страница приветствия NGINX:

Admin Tool
Заходим на тот же сайт iotvega.com/product/server и копируем ссылку на портал управления:

С помощью данной ссылки скачиваем архив на сервер:
curl -sLO «https://iotvega.com/content/ru/soft/server/IoT%20Vega%20AdminTool%20v1.1.7.zip»
* так как в пути есть спецсимволы, необходимо адрес вставить в кавычки.
Устанавливаем unzip для распаковки архива:
apt install unzip
Распаковываем архив:
unzip IoT%20Vega%20AdminTool%20v*.zip
Архив можно удалить:
rm -f IoT%20Vega%20AdminTool%20v*.zip
Переносим каталог с порталом к домашнюю директорию веб-сервера:
mv IoT Vega AdminTool v*/ /var/www/html/admin
Открываем настройки административной консоли:
vi /var/www/html/admin/config.js
Задаем адрес, на котором слушает сервер Vega:
const address_ws = ‘ws://192.168.1.10:8002’;
* в данном примере мы поменяли IP на 192.168.1.10 и порт на 8002 . Адрес должен быть внутренним, если мы будем заходить на сервер по внутренней сети или внешним, если заходить будем из сети Интернет.
Открываем браузер и переходим по адресу http://<IP-адрес сервера>/admin/ — должна открыться страница входа в Admin Tool.
Вводим логин root и пароль 123 (по умолчанию; задаются в настройках Vega Server — файле /opt/iot-vega-server/settings.conf , опция password ).
Установка Pulse
IOT Vega Pulse является клиентским веб-приложением. Оно нужно для отображения информации, которая была собрана сервером.
Для установки нам нужен веб-сервер. Его мы устанавливали на этапе, когда разворачивали Admin Tool. Теперь нам нужно просто скачать и распаковать портал Pulse.
Заходим на страницу iotvega.com/product/app и копируем ссылку на стабильную версию Pulse:

С помощью данной ссылки скачиваем архив на сервер:
curl -sLO https://iotvega.com/content/ru/soft/app/IoT%20Vega%20Pulse%20v1.1.14.zip
Распаковываем скачанный архив:
unzip IoT%20Vega%20Pulse%20v*.zip
* у нас должен быть установлен пакет unzip .
Архив можно удалить:
rm -f IoT%20Vega%20Pulse%20v*.zip
Переносим портал в каталог веб-сервера:
mv IoT Vega Pulse v*/ /var/www/html/pulse
Открываем на редактирование конфигурационный файл Pulse:
vi /var/www/html/pulse/config.js
Задаем адрес, на котором слушает сервер:
const address_ws = ‘ws://192.168.1.10:8002’;
* в данном примере IP 192.168.1.10 и порт 8002 .
Открываем браузер и переходим по адресу http://<IP-адрес сервера>/pulse/ — должна открыться страница входа в Pulse.
Вводим логин root и пароль 123 (по умолчанию; задаются в настройках Vega Server — файле /opt/iot-vega-server/settings.conf , опция password ).
Настройка IotVegaNotifier
IOT Vega Notifier — программа для отправки оповещений по SIP. С ее помощью мы можем получить звонок или уведомление на телефон при возникновении тревожных событий.
Данный софт распространяется в виде контейнера docker и требует его установки в систему:
apt install docker.io
Разворачиваем приложение:
docker run -it -d —name iotveganotifier vegaabsolute/iotveganotifier:disco
Запускаем командную консоль внутри контейнера iotveganotifier:
docker exec -it iotveganotifier bash
Открываем на редактирование конфигурационный файл для IotVegaNotifier:
nano IotVegaNotifier/config.ini
Меняем настройки для подключения к серверу
[ws]
#The address of the server WebSocket IotVega
address=ws://192.168.1.10:8002
#The user of the server WebSocket IotVega
user=root
#The user password
password=123
* мы должны указать адрес сервера VEGA, а также логин и пароль для подключения к нему. В данном примере у нас сервер с адресом 192.168.1.10 ; логин и пароль root 123 — те, что заданы по умолчанию.
После задаем настройки для SIP:
[sip]
#Enabled sip to take voice messages
#boolean
enabled=true
#The host of the SIP
host=sip.siplink.pro
#The user of the SIP
user=1234567890
#The user password
password=passw0rd
* в данных настройках мы включаем поддержку SIP ( enabled ); указываем сервер, предоставляющий услугу телефонии ( host ); задаем логин и пароль на подключение аккаунта ( user и password ).
Закрываем редактор и перезапускаем сервис оповещений:
pm2 restart 0
Выходим из оболочки контейнера docker, нажав Ctrl + D.
SSL шифрование для веб-трафика
Дополнительно рассмотрим процесс настройки https, чтобы веб-сервер nginx отдавал страницы по шифрованному каналу. Для этого нам нужно будет настроить как nginx, так и остальные компоненты VEGA.
NGINX
Для начала, нам нужен сертификат. Его можно купить или получить с помощью утилиты certbot от Let’s Encrypt .
Предполагается, что наш сертификат расположен в файлах:
- /etc/nginx/ssl/cert.crt — открытый ключ + цепочка сертификатов для CA.
- /etc/nginx/ssl/cert.key — закрытый.
Тогда настройка будет следующей:
vi /etc/nginx/sites-enabled/default
Редактируем строку listen :
server {
listen 443 ssl default_server;
…
Добавим директивы ssl_certificate и ssl_certificate_key :
server {
…
ssl_certificate /etc/nginx/ssl/cert.crt;
ssl_certificate_key /etc/nginx/ssl/cert.key;
…
Также добавим новый раздел server для редиректа запросов с 80 на 443 порт:
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
Перечитываем конфигурацию nginx:
nginx -t && nginx -s reload
Vega Server
Открываем конфигурационный файл:
vi /opt/iot-vega-server/settings.conf
Редактируем строки:
useSSL= 1
…
certFileName= /etc/nginx/ssl/cert.crt
…
keyFileName= /etc/nginx/ssl/cert.key
Перезапускаем iot-vega-server:
systemctl restart iot-vega-server
Admin и Pulse
Открываем файл:
vi /var/www/html/admin/config.js
Меняем:
const address_ws = ‘ws://…
на:
const address_ws = ‘wss://
То же самое делаем для файла:
vi /var/www/html/pulse/config.js
Проверка
Теперь наши порталы должны отвечать по https. Однако, некоторые браузеры кешируют запросы настолько, что мы увидим ошибку подключения к серверу.
В этом случае рекомендуется для проверки использовать другой браузер или почистить кеш текущему.
Обновление
Рассмотрим процесс обновления сервера и компонентов. Сначала создадим каталог, в котором будут резервные копии:
mkdir /backup
IOT VEGA Server
При выходе новой версии сервера, можно обновить приложение стандартной установкой, в ходе которой будут внесены изменения в саму серверную часть и базу данных.
Перед обновлением необходимо сделать резервную копию базы данных и конфигурационного файла.
Создадим каталог для хранения архивов сервера:
mkdir /backup/server
а) В нашем примере мы используем базу MariaDB — соответственно, делаем дамп mysql:
mysqldump -v -uroot -p lorawan_server > /backup/server/mysqldump.lorawan_server.sql
б) Если же мы используем встроенную базу, просто копируем файл server.db:
cp /opt/iot-vega-server/server.db /backup/server/server.db
После резервирования базы данных, копируем конфигурационный файл:
cp /opt/iot-vega-server/settings.conf /backup/server/
Теперь можно загружать новую версию сервера:
curl -sLO «https://iotvega.com/content/ru/soft/server/IOT%20Vega%20Server%20(linux)%20v1.2.1.tar.gz»
Распаковываем архив:
tar -xvf IOT Vega Server (linux) v*.tar.gz
Переходим в каталог с установочным пакетом:
cd IOT Vega Server (linux) v1.2.1/x64/
* в моем примере используется 64-х битная система. Посмотреть версию используемой системы можно командой uname -i
Выполняем обновление:
dpkg -i iot-vega-server-1.2.1.deb
* обратите внимание, что процесс обновления не отличается от установки — система сама определит, что IOT VEGA Server установлен и обновит его.
IOT Vega Pulse
Копируем каталог с текущей версией в папку backup:
cp -r /var/www/html/pulse /backup/pulse.1.1.10
* где 1.1.10 — версия pulse, которая у нас используется в данный момент.
Скачиваем новую версию Vega Pulse:
curl -sLO https://iotvega.com/content/ru/soft/app/IOT%20Vega%20Pulse%20V1.1.11_ru.zip
* на момент обновления инструкции последняя версия была 1.1.11 .
Распаковываем скачанный архив:
unzip IOT Vega Pulse V1.1.11_ru.zip
Удаляем папку pulse с текущей версией программы:
rm -rf /var/www/html/pulse
Переносим портал в каталог веб-сервера:
mv IOT Vega Pulse V1.1.11_ru/Pulse /var/www/html/pulse
Возвращаем из резервной копии конфигурационный файл Pulse:
cp /backup/pulse.1.1.10/config.js /var/www/html/pulse/
Admin Tool
Процесс обновления Admin Tool схож с Pulse. Рассмотрим его по шагам.
Копируем каталог с текущей версией в папку backup:
cp -r /var/www/html/admin /backup/admin.1.1.4
* где 1.1.4 — версия admin tool, которая у нас используется в данный момент.
Скачиваем новую версию:
curl -sLO «https://iotvega.com/content/ru/soft/server/IOT%20Vega%20Admin%20Tool%20V1.1.5_ru.zip»
* на момент обновления инструкции последняя версия была 1.1.5 .
Распаковываем скачанный архив:
unzip IOT Vega Admin Tool V1.1.5_ru.zip
Удаляем папку admin с текущей версией программы:
rm -rf /var/www/html/admin
Переносим портал в каталог веб-сервера:
mv IOT Vega Admin Tool V1.1.5_ru/Admin Tool /var/www/html/admin
Возвращаем из резервной копии конфигурационный файл Pulse:
cp /backup/admin.1.1.4/config.js /var/www/html/admin/
Дополнительно
Разберем некоторые дополнительные настройки.
Смена пароля root
Это одна из первых вещей, которые нужно сделать. По умолчанию, логин с паролем root / 123 — это не безопасно и каждый сможет управлять сервером.
Открываем конфигурационный файл Vega Server:
vi /opt/iot-vega-server/settings.conf
Редактируем пароль пользователя root:
[root]
# Login for super user
root=root
# Password for super user (recommendation: change this password to your own)
password=newpassword
* где нужно поменять значение параметра password.
Перезапускать сервер не нужно. Заходим в Admin Tool и Pulse — проверяем, что теперь система пускает под новым паролем.
Вход на веб из вне
Необходимо, чтобы клиент (браузер) мог напрямую подключиться к серверу по порту tcp 8002. Для этого в конфигурационном файле Pulse или Admin Tool нужно задать параметр address_ws с использованием внешнего адреса, например:
const address_ws = ‘ws://90.156.242.197:8002’;
* в данном примере 90.156.242.197 — это мой внешний адрес. Вам необходимо задать свой.
Если сервер подключен к сети Интернет не напрямую, а через шлюз, необходимо пробросить порты 8001/UDP и 8002/TCP.