Установка на дистрибутив Debian / Ubuntu / CentOS

В этом руководстве описываются шаги, необходимые для установки и настройки проекта LoRa Server, включая все требуемые дополнительные программы для работы на одном сервере. Работоспособность была протестирована в следующих дистрибутивах:

  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Debian 9 (Stretch)

Пожалуйста, обратитесь к другим страницам руководства для более точной и типовой инструкции по установке.

Возможно большое количество конфигураций установки пакетов, из которых состоит «LoRaWAN.Server I/Q». Зависимые пакеты программного обеспечения могут быть установлены на любое количество удаленных серверов, а сами пакеты могут находиться на своих собственных серверах.

Тем не менее, чтобы упростить первоначальную установку, мы примем следующую архитектуру развертывания:

  • Все компоненты «LoRaWAN.Server I/Q» и его зависимые компоненты будут установлены на единственном экземпляре сервера.
  • Компонент GW Bridge будет установлен на сервере, но также может быть установлен на самом шлюзе.
  • Правила в брандмауэре не настраиваются.

В зависимости от функционирования вашей системы, может понадобится оптимизация. Вы можете переместить базу данных PostgreSQL на другой сервер. Либо вы можете установить сервер MQTT в другой системе или использовать сервер, отличный от того, который рекомендован в этой инструкции. Такие и другие изменения по установке не описаны в текущей документации. Тем не менее, вы сможете найти здесь информацию, позволяющие произвести данные изменения.

Требования к установке:

  • MQTT брокер – протокол, которому доступны команды публикации и подписки. Он позволяет пользователям публиковать информацию по темам, на которые могут подписаться другие. Популярной реализацией протокола MQTT является Mosquitto.
  • Redis (от англ. резидентная система управления базами данных) – база данных, используемая для хранения относительно временных данных.
  • PostgreSQL - база данных для долгосрочного хранения и использования, с открытым исходным кодом.

Для установки дополнительных необходимых компонент выполните следующие команды:
1.

  В системах *Debian* или *Ubuntu* используйте диспетчер пакетов apt для установки этих компонентов: 


sudo apt install mosquitto mosquitto-clients redis-server redis-tools postgresql
2.

  В системах *CentOS* используйте диспетчер пакетов yum для установки этих компонентов: 


sudo yum -y install mosquitto mosquitto-clients docker nano epel-release redis
sudo systemctl enable mosquitto
sudo systemctl enable redis
sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
sudo yum update
sudo yum install postgresql96 postgresql96-server postgresql96-lib postgresql96*
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
sudo systemctl enable postgresql-9.6
sudo systemctl start postgresql-9.6
sudo curl -L «https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)» -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash -
sudo yum install nodejs yarn -y

sudo reboot

Настройка базы данных PostgreSQL и клиентского кода

Для входа в утилиту работы с PostgreSQL через командную строку введите команду: sudo -u postgres psql

В приглашении на ввод для настройки базы данных выполните следующие запросы, которые используются компонентами «LoRaWAN.Server I/Q». Рекомендуется изменить имена пользователей и пароли. Также не забудьте использовать новые значения при обновлении файлов конфигурации loraserver.toml и lora-app-server.toml. Поскольку оба эти приложения используют одну и ту же таблицу для отслеживания обновлений базы данных, они должны иметь отдельные базы данных.

– создать пользователей и пароли
– (внимание, важно использовать одинарные кавычки и точку с запятой в конце!)

create role loraserver_as with login password 'dbpassword';
create role loraserver_ns with login password 'dbpassword';


– создать базы данных для серверов
create database loraserver_as with owner loraserver_as;
create database loraserver_ns with owner loraserver_ns;


– перейти в базу данных App Server
\c loraserver_as

– включить расширение pq_trgm
– (это необходимо для улучшения функции поиска)
create extension pg_trgm; (создать расширение pg_trgm)

– выход из psql
\q

Установка LoRaWAN.Server I/Q



Примечание: если вы намереваетесь запускать GW Bridge только на самих шлюзах, вы можете пропустить этот шаг.

Скопируйте полученные при покупке установочные файлы программы на сервер.

Дайте разрешение на запуск бинарных файлов командой:
sudo chmod +x lora-gateway-bridge
sudo chmod +x loraserver
sudo chmod +x lora-app-server
sudo chmod +x MQTTClientLoRa\bin\MQTTClientLoRa


Если полученные файлы имеют расширения *.deb, то установка сводится к следующим действиям. Дальнейшие инструкции выполнять только для файлов MQTTClientLoRa (см. Установка Data Parser LoRa).
sudo chmod +x GWbridgeXXX_amd64.deb
sudo chmod +x loraserverXXX_amd64.deb
sudo chmod +x appserverXXX_amd64.deb
unzip MQTTClientLoRa-XXX.zip
sudo chmod +x MQTTClientLoRa\bin\MQTTClientLoRa
sudo dpkg -i GWbridgeXXX_amd64.deb
sudo dpkg -i loraserverXXX_amd64.deb
sudo dpkg -i appserverXXX_amd64.deb


Установите пакеты, переместив исполняемые файлы в директорию /usr/bin:

sudo mv lora-gateway-bridge /usr/bin/lora-gateway-bridge
sudo mv loraserver /usr/bin/loraserver
sudo mv lora-app-server /usr/bin/lora-app-server


Создайте директории для файлов конфигурации:
sudo mkdir /etc/lora-gateway-bridge
sudo mkdir /etc/loraserver
sudo mkdir /etc/lora-app-server


Перенесите файлы настроек в созданные директории командой:

sudo mv lora-gateway-bridge.toml /etc/lora-gateway-bridge/lora-gateway-bridge.toml
sudo mv lora-server.toml /etc/lora-gateway-bridge/loraserver.toml
sudo mv lora-app-server.toml /etc/lora-gateway-bridge/lora-app-server.toml



Перенесите файлы автозапуска в системную директорию командой:

sudo mv lora-gateway-bridge.service /etc/systemd/system/lora-gateway-bridge.service
sudo mv lora-server.service /etc/systemd/system/loraserver.service
sudo mv lora-app-server.service /etc/systemd/system/lora-app-server.service
sudo mv mqttclient.service /etc/systemd/system/mqttclient.service

Активируйте автозапуск файлов сервера:

sudo systemctl daemon-reload
sudo systemctl enable lora-gateway-bridge.service
sudo systemctl enable lora-server.service
sudo systemctl enable lora-app-server.service
sudo systemctl enable mqttclient.service


Запустите сервисы LoRaWAN сервера:

sudo systemctl start lora-gateway-bridge.service
sudo systemctl start lora-server.service
sudo systemctl start lora-app-server.service
sudo systemctl start mqttclient.service


Настройка сетевого сервера
Файл настройки сетевого сервера находится в директории /etc/loraserver/loraserver.toml и должен быть обновлен. Это необходимо для соответствия параметров базы данных и конфигурации частотного плана. Ниже приведены два примера для частотных планов EU868 и RU868.
Для получения дополнительной информации обо всех параметрах конфигурации сетевого сервера LoRa смотри раздел Настройка сетевого сервера.


После обновления конфигурации вам необходимо перезапустить сервис lora-server.service и убедиться, что ошибок нет:
sudo systemctl restart loraserver


Вывести записи журнала логирования сетевого сервера:
sudo journalctl -f -n 100 -u loraserver

Пример конфигурации EU868


[general]
log_level=4

[postgresql]
dsn=«postgres:/loraserver_ns:dbpassword@localhost/loraserver_ns?sslmode=disable»

[network_server]
net_id=«010203»

[network_server.band]
name=«EU_863_870»

network_server.network_settings.extra_channels
frequency=867100000
min_dr=0
max_dr=5

network_server.network_settings.extra_channels
frequency=867300000
min_dr=0
max_dr=5

network_server.network_settings.extra_channels
frequency=867500000
min_dr=0
max_dr=5

network_server.network_settings.extra_channels
frequency=867700000
min_dr=0
max_dr=5

network_server.network_settings.extra_channels
frequency=867900000
min_dr=0
max_dr=5

Пример конфигурации RU868


[general]
log_level=4

[postgresql]
dsn=«postgres:/loraserver_ns:dbpassword@localhost/loraserver_ns?sslmode=disable»

[network_server]
net_id=«010203»

[network_server.band]
name=«RU_864_870»

network_server.network_settings.extra_channels
frequency=864500000
min_dr=0
max_dr=5

network_server.network_settings.extra_channels
frequency=864700000
min_dr=0
max_dr=5

network_server.network_settings.extra_channels
frequency=864900000
min_dr=0
max_dr=5

network_server.network_settings.extra_channels
frequency=865100000
min_dr=0
max_dr=5

network_server.network_settings.extra_channels
frequency=865300000
min_dr=0
max_dr=5


Настройка сервера приложений
Файл настройки находится в /etc/lora-app-server/lora-app-server.toml и должен быть обновлен, чтобы соответствовать конфигурации базы данных. Ниже приведен пример конфигурации, соответствующей базе данных, созданной на одном из предыдущих шагов.
Дополнительные сведения о параметрах конфигурации сервера приложений LoRa, смотри в разделе Настройка App Server.


[general]

log_level=4
[postgresql]

dsn=«postgres:/loraserver_as:dbpassword@localhost/loraserver_as?sslmode=disable»

[application_server.external_api]

jwt_secret=«verysecret»



Где «verysecret» - уникальный 32 байтный ключ в hex для доступа к API сервера.


Команда для вывода записей лог журнала:
sudo journalctl -f -n 100 -u lora-app-server

При необходимости: установите GW Bridge на шлюз


Рекомендуется запускать GW Bridge на каждом шлюзе, чтобы обеспечить безопасное соединение между вашими шлюзами и вашим сервером.

Поскольку существует большое количество разных типов шлюзов, пожалуйста, обратитесь к инструкциям для установки GW Bridge на шлюз.

Настройка вашего первого устройства
Для настройки вашего первого устройства на сервере, пожалуйста, обратитесь к руководству Настройка устройства на сервере.