Инструкция по установке Взлет СП, используя docker-образ

Необходимо установить Docker Compose: https://docs.docker.com/compose/

Создайте на диске папку vzljotsp. Все последующие дейсвия выполняются из этой папки. Создайте файл docker-compose.yml, возможные варианы содержания этого файла ниже.

Установка Взлет СП. Сервер базы данных уже установлен

services:
  vsp:
    image: hub.vzljot.ru/vzljotsp:latest
    ports:
      - "5511:5511"   # порт службы приложений
      - "5512:5512"   # порт службы обработки данных
      - "5513:5513"   # порт службы опроса
      - "5515:5515"   # порт для входящих соединений OPC UA клиентов
      - "2060:2060"   # порт для входящих соединений адаптеров связи
      - "2061:2061"   # порт для входящих соединений Lora
      - "8080:80"     # порт Web-интерфейса
      - "5005:5005"   # порт Wcf для службы расширений
      - "5006:5006"   # порт Http для службы расширений
    volumes:
      - ./data/var:/var/VzljotSp        # папка с данными
      - ./data/etc:/etc/VzljotSp        # папка с настройками
    environment:
      TZ: "Europe/Moscow"               # часовой пояс

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

docker compose up -d

После первого запуска контейнера его необходимо настроить, для этого введите команду:

docker compose exec vsp setup

Далее нужно перезапустить контейнер командой:

docker compose restart vsp

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

docker compose logs vsp

Установка Взлет СП и сервера базы данных Postgres

services:
  vsp:
    image: hub.vzljot.ru/vzljotsp:latest
    depends_on:
      - "db"
    ports:
      - "5511:5511"   # порт службы приложений
      - "5512:5512"   # порт службы обработки данных
      - "5513:5513"   # порт службы опроса
      - "5515:5515"   # порт для входящих соединений OPC UA клиентов
      - "2060:2060"   # порт для входящих соединений адаптеров связи
      - "2061:2061"   # порт для входящих соединений Lora
      - "8080:80"     # порт Web-интерфейса
      - "5005:5005"   # порт Wcf для службы расширений
      - "5006:5006"   # порт Http для службы расширений
    volumes:  
      - ./data/var:/var/VzljotSp   # папка с данными
      - ./data/etc:/etc/VzljotSp   # папка с настройками
    environment: 
      TZ: "Europe/Moscow"          # часовой пояс
      VZLJOTSP_DATASOURCE_PROVIDER: "Postgres"    # провайдер
      VZLJOTSP_DATASOURCE_SERVER: "db"            # сервер базы данных
      VZLJOTSP_DATASOURCE_USER: "postgres"           # имя пользователя
      VZLJOTSP_DATASOURCE_PASSWORD: "postgres_password" # пароль
      VZLJOTSP_DATASOURCE_DATABASE: "VzljotSp"          # база данных
      #VZLJOTSP_DATASOURCE_PORT: "5432"                 # порт (по умолчанию: 5432)
      #VZLJOTSP_DATASOURCE_USESSL: "false"              # используется ли шифрование (по умолчанию: false)
      #VZLJOTSP_DATASOURCE_SCHEME: "public"             # схема (по умолчанию: public)
  db:
    image: postgres:16
    volumes:
      - ./data/postgresdata:/var/lib/postgresql/data
    environment:
      TZ: "Europe/Moscow"
      POSTGRES_PASSWORD: postgres_password

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

docker compose up -d

Установка Взлет СП и сервера базы данных MS SQL server

services:
  vsp:
    image: hub.vzljot.ru/vzljotsp:latest
    depends_on:
      - "db"
    ports:
      - "5511:5511"    # порт службы приложений
      - "5512:5512"    # порт службы обработки данных
      - "5513:5513"    # порт службы опроса
      - "5515:5515"    # порт для входящих соединений OPC UA клиентов
      - "2060:2060"    # порт для входящих соединений адаптеров связи
      - "2061:2061"    # порт для входящих соединений Lora
      - "8080:80"      # порт Web-интерфейса
      - "5005:5005"    # порт Wcf для службы расширений
      - "5006:5006"    # порт Http для службы расширений
    volumes:
      - ./data/var:/var/VzljotSp      # папка с данными
      - ./data/etc:/etc/VzljotSp      # папка с настройками
    environment:
      TZ: "Europe/Moscow"                             # часовой пояс
      VZLJOTSP_DATASOURCE_SERVER: "db"                # сервер базы данных
      VZLJOTSP_DATASOURCE_USER: "sa"                  # имя пользователя
      VZLJOTSP_DATASOURCE_PROVIDER: "MSSqlServer"     # провайдер
      VZLJOTSP_DATASOURCE_PASSWORD: "Mssql_password~" # пароль
      VZLJOTSP_DATASOURCE_DATABASE: "VzljotSp"        # база данных
  db:
    image: "mcr.microsoft.com/mssql/server"
    user: root
    environment:
      TZ: "Europe/Moscow"
      MSSQL_SA_PASSWORD: Mssql_password~
      ACCEPT_EULA: "y"
    volumes:
      - ./data/sqldata:/var/opt/mssql/data

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

docker compose up -d

Установка Взлет СП и сервера базы данных Firebird

Использование сервера базы данных Firebird не рекомендуется.

services:
  vsp:
    image: hub.vzljot.ru/vzljotsp:latest
    depends_on:
      - "db"
    ports:
      - "5511:5511"       # порт службы приложений
      - "5512:5512"       # порт службы обработки данных
      - "5513:5513"       # порт службы опроса
      - "5515:5515"       # порт для входящих соединений OPC UA клиентов
      - "2060:2060"       # порт для входящих соединений адаптеров связи
      - "2061:2061"       # порт для входящих соединений Lora
      - "8080:80"         # порт Web-интерфейса
      - "5005:5005"       # порт Wcf для службы расширений
      - "5006:5006"       # порт Http для службы расширений
    volumes:
      - ./data/var:/var/VzljotSp   # папка с данными
      - ./data/etc:/etc/VzljotSp   # папка с настройками
    environment:  
      TZ: "Europe/Moscow"                                         # часовой пояс
      VZLJOTSP_DATASOURCE_PROVIDER: "Firebird"                    # провайдер
      VZLJOTSP_DATASOURCE_SERVER: "db"                            # сервер базы данных
      VZLJOTSP_DATASOURCE_USER: "SYSDBA"                          # имя пользователя
      VZLJOTSP_DATASOURCE_PASSWORD: "firebird_password"           # пароль
      VZLJOTSP_DATASOURCE_DATABASE: "/firebird/data/VzljotSp.fbd" # база данных
  db:
    image: jacobalberty/firebird:3.0
    volumes:
      - ./data/firebird:/firebird
    environment:
      TZ: "Europe/Moscow"
      ISC_PASSWORD: "firebird_password"

Дополнительные настройки environment:

services:
  vsp:
    ...
    environment:
    ...
    VZLJOTSP_ACTIVATECODE: "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX"  # код активации
    VZLJOTSP_SYSTEMNODE_NAME: "Взлет СП"       # наменование экземпляра сервера
    VZLJOTSP_LOGLEVEL: "Error"                 # уровень протоколирования
      # Error - ошибки
      # Warning - предупреждения
      # Information - сообщения
      # Debug - отладочная информация
      # Trace - подробная отладочная информация
    VZLJOTSP_MAKEBACKUP: "true"                # создавать ли резервную копию базы данных при обновлении 
                                               # (true|false)
    VZLJOTSP_INTERNALFLAGS: ""                 # дополнительные флаги
    VZLJOTSP_OPCSERVICE_CLIENTHOST: "<host>"   # opc.tcp://<host>:5515/VzljotSp/Opc
    VZLJOTSP_OPCSERVICE_CLIENTPORT: "5515"     # opc.tcp://<host>:5515/VzljotSp/Opc
    VZLJOTSP_SERIALPORTS: "/dev/ttyS4;/dev/ttyS5" # Если системе не удалось автоматически определить доступные порты, то можно указать их.

COM-порт

Добавить СOM-порты можно только если хост-компьютер работает под управлением Linux. Определяем доступные COM-порты командой:

sudo dmesg | grep tty
[    0.062845] printk: console [tty0] enabled
[    1.254177] 00:01: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A

Определили, что доступен COM-порт ttyS1. Добавим этот COM-порт в контейнер:

services:
  vsp:
    ...
    devices:
      - "/dev/ttyS1:/dev/ttyS1"

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

docker compose up -d

Обновление приложения

Для того, чтобы обновить приложение до последней версии выполните команды:

docker compose pull
docker compose up -d

Установка конкретной версии приложения

В примерах устанавливается последняя версия Взлет СП. Если необходимо установить определенную версию Взлет СП, то замените тег latest на номер необходимой версии (4.0.x.x).

services:
  vsp:
    image: hub.vzljot.ru/vzljotsp:4.0.x.x

Если необходимо установить последнюю версию с форума, то замените тег latest на forum.

services:
  vsp:
    image: hub.vzljot.ru/vzljotsp:forum

Использование аппаратного ключа защиты для лицензии

Взлет СП в ОС Linux может работать только с аппаратными ключами Guardant Sign. На самом ключе должно быть написано "Guardan Sign". Если у вас на ключе написано "Guardant S2", то это аппаратный ключ Guardant Stealth II. Такой ключ не будет работать в ОС Linux!

Для работы с ключами в ОС Linux необходимо добавить правило для штатного средства обработки HotPlugging. На большинстве современных дистрибутивов, таким средством является udev (https://ru.wikipedia.org/wiki/Udev).

Загрузите архив udev-rules.tar.gz командой:

wget https://sp-soft.vzljot.ru/files/vzljotsp/udev-rules.tar.gz

Распакуйте файлы командой:

tar -xvf udev-rules.tar.gz

Выполните установку правил командой:

./install.sh

После успешной установки правил нужно отсоединить электронный ключ от USB-порта и подсоединить повторно. В системе должно появиться устройство /dev/grdhid0, именно его и нужно пробрасывать в docker-контейнер:

services:
  vsp:
    ...
    devices:
      ...
      - "/dev/grdhid0:/dev/grdhid0"