Table of Contents

Установка ЛЭРС УЧЁТ в Docker

ЛЭРС УЧЁТ может быть установлен из образов Docker. Образы основаны на операционной системе Linux и публикуются на dockerhub ЛЭРС УЧЁТ.

Важно

ЛЭРС УЧЁТ в docker-контейнере требует наличие интернет-подключения для проверки лицензии. Подробнее смотрите в статье Лицензирование Docker-контейнера

Репозитории

ЛЭРС УЧЁТ распространяется в двух репозиториях:

  • полный образ, включающий сервер и службу опроса lersamr/full;
  • образ только со службой опроса lersamr/pollservice.

Если вы впервые устанавливаете ЛЭРС УЧЁТ, используйте полный образ lersamr/full.

Теги

Образы в репозитории маркируются следующими тегами:

Тег Описание
latest Самая новая общедоступная версия системы
beta Самая новая бета-версия системы
next Ночные сборки готовящейся версии. Ни в коем случае не используйте сборки next для работы! Метки next предназначены только для тестирования специалистами ЛЭРС УЧЁТ!

Подготовка к установке

Перед запуском сервера определите в какую папку сервер сохранит свою конфигурацию и временные файлы. Если вы не укажете папки, после обновления контейнера нужно будет заново настраивать подключение к БД. Папки не обязательно создавать заранее. Это сделает docker при запуске контейнера.

В примерах рассматривается запуск контейнера на хост-компьютере под управлением Linux. Мы будем использовать папку /var/LERS для хранения временных данных и etc/LERS для хранения настроек. Вы можете использовать вместо них любые другие папки на вашем компьютере. Например, если хост-компьютер работает под управлением Windows, это могут быть папки /c/lers/data и /c/lers/config.

В этом случае во всех файлах docker-compose.yml в секции volumes нужно будет заменить путь на хост-компьютере (он указывается первым до двоеточия). Например, строку

- /var/LERS:/var/LERS

нужно будет заменить на

- /c/lers/data:/var/LERS

Установка ЛЭРС УЧЁТ

Примечание

Описанные команды могут выполняться в любой командной среде — Powershell или Bash.

На Linux все команды должны запускаться с правами суперпользователя. Для этого в командной среде введите sudo su.

Мы рекомендуем создать приложение с помощью Docker Compose. Это упростит дальнейшее администрирование и обновление системы.

Эта инструкция предполагает, что сервер баз данных уже установлен и у вас есть реквизиты для подключения к нему. Чтобы создать docker приложение, которое включает сервер БД, воспользуйтесь инструкциями ниже.

Создайте на диске папку lers, а в ней файл docker-compose.yml:

version: "3.9"
services:
  lers:
    image: lersamr/full:latest
    ports:
      - "10000:10000"
    volumes:
      - /var/LERS:/var/LERS
      - /etc/LERS:/etc/LERS

Запустите приложение командой

docker compose up -d

После первого запуска, контейнер войдёт в режим ожидания настройки. Нужно подключиться к созданному контейнеру и настроить подключение к серверу баз данных с помощью встроенного в него установщика. Для этого введите команду

docker compose exec -it lers /install.sh

Программа установки запросит у вас реквизиты для подключения к серверу БД. После окончания процесса установки вы можете ввести в браузере адрес http://localhost:10000, войти в систему. и выполнить активацию.

Установка ЛЭРС УЧЁТ и сервера баз данных

Сервер баз данных можно установить самостоятельно. Однако, с помощью Docker Compose можно создать приложение, которое будет включать в себя и сервер ЛЭРС УЧЁТ и сервер баз данных. Это сильно упрощает установку, так как достаточно создать один файл docker-compose.yml, и все дальнейшие шаги по настройке будут выполнены автоматически.

Чтобы создать приложение, создайте папку lers и в ней файл docker-compose.yml. Содержимое файла зависит от того, какой сервер баз данных вы собираетесь использовать.

SQL Server

Внимание

В поле MSSQL_SA_PASSWORD указывается пароль суперпользователя для доступа к серверу баз данных SQL Server. В этом примере он устанавливается в My_strong_Password123. Рекомендуется использовать сложный пароль, чтобы обеспечить безопасность системы.

Очень важно ввести такой же пароль в параметре LERS_SERVER_DATABASE__ConnectionString, чтобы сервер ЛЭРС УЧЁТ смог подключиться к БД.

version: "3.9"
services:
  lers:
    image: lersamr/full:latest
    depends_on:
      - "db"
    ports:
      - "10000:10000"
    volumes:
      - /var/LERS:/var/LERS
    environment:
      LERS_SERVER_DATABASE__ConnectionString: "Data Source=db; Initial Catalog=LERS; User ID=sa; Password=My_StrongPassword_123; Integrated Security=false"
  db:
    image: "mcr.microsoft.com/mssql/server"
    environment:
      MSSQL_SA_PASSWORD: My_StrongPassword_123
      ACCEPT_EULA: "y"
    volumes:
      - /var/LERS/sqldata:/var/opt/mssql/data

Резервные копии БД будут сохраняться в папку /var/LERS/sqldata. Начиная с SQL Server 2019, у пользователя, под которым запущен сервер в контейнере, нет прав администратора. Поэтому, перед запуском сервера, нужно создать папку /var/LERS/sqldata и предоставить к ней доступ группе root. Для этого введите команды:

mkdir -p /var/LERS/sqldata
chgrp -R 0 /var/LERS/sqldata
chmod -R g=u /var/LERS/sqldata

Postgres

Внимание

В поле POSTGRES_PASSWORD указывается пароль суперпользователя для доступа к серверу баз данных Postgres. В этом примере он устанавливается в my_postgres_password. Рекомендуется использовать сложный пароль, чтобы обеспечить безопасность системы.

Очень важно ввести такой же пароль в параметре LERS_SERVER_DATABASE__ConnectionString, чтобы сервер ЛЭРС УЧЁТ смог подключиться к БД.

version: "3.9"
services:
  lers:
    image: lersamr/full:latest
    depends_on:
      - "db"
    ports:
      - "10000:10000"
    volumes:
      - /var/LERS:/var/LERS
    environment:
      LERS_SERVER_DATABASE__ConnectionString: "Host=db;Database=LERS;Username=postgres;Password=my_postgres_password"
      LERS_SERVER_DATABASE__Provider: "Postgres"

  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: my_postgres_password
    volumes:
      - /var/LERS/postgresdata:/var/lib/postgresql/data

Запустите систему:

docker compose up -d

Теперь вы можете ввести в браузере адрес http://localhost:10000, войти в систему и выполнить активацию.

Порты для входящих подключений GPRS-модемов

Описанных шагов достаточно в случае если ЛЭРС УЧЁТ будет опрашивать устройства через канал связи Интернет. Для опроса модемов через GPRS потребуется открыть входящие порты. Для этого в docker-compose.yml в описании сервиса lers в разделе ports: добавьте другие порты, на которые будут подключаться модемы. Например, чтобы разрешить использовать для входящих подключений модемов порт 2060, отредактируйте файл docker-compose.yml следующим образом:

version: "3.9"
services:
  lers:
    image: lersamr/full:latest
    volumes:
      - /var/LERS:/var/LERS
      - /etc/LERS:/etc/LERS
    ports:
      - "10000:10000" # Порт для подключения к серверу ЛЭРС УЧЁТ
      - "2060:2060"   # Порт для приёма входящих подключений от GPRS модемов.

После этого создайте GPRS порт опроса, привязанный к порту 2060. Docker будет перенаправлять входящие подключения службе опроса, и GPRS модемы смогут подключиться к системе.

Порты для опроса через CSD (только Linux)

Следующие шаги нужно выполнить если нужно опрашивать приборы через канал связи CSD с помощью диспетчерских модемов.

Система ЛЭРС в контейнере docker может опрашивать приборы через диспетчерские модемы только если хост-компьютер работает под управлением Linux. В Windows использовать COM-порт хост-компьютера не получится.

Сначала нужно найти имя устройства, которое используется для COM-портов на вашем компьютере. Для аппаратных COM-портов в Linux используются имена ttyS0, ttyS1, и так далее. Преобразователи USB-COM могут создавать другие порты. Например, ttySUSB0, или serial0.

Чтобы вывести список аппаратных COM-портов, воспользуйтесь командой dmesg

$ dmesg | grep tty
[    0.190905] printk: console [tty0] enabled
[    0.987599] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    1.009557] 00:04: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A

Видно, что на компьютере присутствует два последовательных порта с именами ttyS0 и ttyS1. Мы будем рассматривать аппаратный COM-порт с наименованием ttyS0.

Теперь нужно предоставить docker-контейнеру доступ к этому устройству. Для этого в docker-compose.yml в описании сервиса lers добавьте секцию devices, в которой укажите к каким COM-портам будет предоставлен доступ:

version: "3.9"
services:
  lers:
    image: lersamr/full:latest
    volumes:
      - /var/LERS:/var/LERS
      - /etc/LERS:/etc/LERS
    devices:
      - "/dev/ttyS0:/dev/ttyS0" # COM-порт, к которому подключен модем.

Сохраните файл и выполните команду

docker compose up -d

Теперь вы можете использовать порт ttyS0 для создания порта опроса. В поле COM-порт введите ttyS0, чтобы создать порт опроса, использующий подключенный к COM-порту компьютера модем.

Обратите внимание, что в выпадающем списке может не быть имени вашего устройства. В этом случае, его нужно будет ввести вручную с клавиатуры.

Обновление

После выпуска новой версии, потребуется вручную обновить образ и приложение. Для этого перейдите в папку lers и введите команду, которая загрузит из репозитория новый образ системы:

docker compose pull

Обновите запущенное приложение:

docker compose up -d

Установка бета-версии

Если вы хотите попробовать установить бета-версию системы, отредактируйте файл docker-compose.yml. В параметре image: lersamr/full:latest замените latest на beta. У вас должно получиться image: lersamr/full:beta. После этого пересоздайте приложение командой

docker compose up -d

Что дальше

После того как вы установили систему, стоит зарегистрировать домен, чтобы вы могли получить доступ к своему серверу не по IP-адресу, а по доменному имени.

Кроме того, рекомендуется установить обратный прокси-сервер и настроить для него SSL сертификат, чтобы работа с сервером выполнялась по защищённому протоколу HTTPS.