Перейти к содержанию

Развертывание Сервиса с помощью Docker#

Данный раздел описывает установку и использование Docker Compose для развертывания Сервиса.

Процесс настройки и установки необходимо выполнять под учетной записью суперпользователя (с root правами).

Docker и Docker Compose не входят в дистрибутив Сервиса.

Ниже приведены команды для CentOS 7.

Установка Docker и Docker Compose#

Используйте официальную инструкцию для установки Docker Engine и Docker Compose для ОС CentOS. Актуальная на момент написания документа инструкция по установке представлена ниже.

Установите дополнительные зависимости:

yum install -y yum-utils

Добавьте репозиторий Docker:

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Установите последнюю версию Docker:

yum install docker-ce docker-ce-cli containerd.io

Проверьте корректность установки:

docker -v

Скачайте Docker Compose:

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Установите права доступа (разрешить выполнение):

chmod +x /usr/local/bin/docker-compose

Запустите Docker:

systemctl start docker
systemctl enable docker

Проверьте статус Docker:

systemctl status docker

Авторизация в registry#

Для запуска компонентов необходимо получить их образы из dockerhub.visionlabs.ru (VisionLabs registry). Перед этим необходима авторизация.

docker login dockerhub.visionlabs.ru --username <username> --password <password>

Введите логин <username> и пароль <password>.

Получить их можно, обратившись к специалистам компании VisionLabs.

Подготовка и распаковка дистрибутива#

Дистрибутив представляет собой архив вида "luna_point_1.9.0".

Архив содержит все компоненты, необходимые для установки и эксплуатации Сервиса.

Архив не включает зависимости, которые входят в стандартную поставку репозитория CentOS и могут быть загружены из открытых источников.

Перед процессом установки поместите файлы дистрибутива в директорию на сервере. Например, в директорию /root. В данной директории не должно быть других файлов дистрибутива кроме целевых, используемых для установки конечного продукта.

Выполните следующие действия.

Переключитесь в режим суперпользователя root:

sudo su

Создайте директорию для распаковки дистрибутива:

mkdir -p /var/lib/point

Переместите дистрибутив в созданную директорию:

mv /root/luna_point_1.9.0 /var/lib/point

Установите архиватор unzip, если он не установлен:

yum install unzip

Перейдите в директорию с дистрибутивом:

cd /var/lib/point

Распакуйте файлы:

unzip luna_point_1.9.0.zip

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

ln -s luna_point_1.9.0 current

Настройка Сервиса#

Необходимо настроить Selinux и Firewall, чтобы они не блокировали работу Сервиса.

Настройка Selinux и Firewall в данном руководстве не описывается.

В архиве "luna_point_1.9.0" есть пример развертывания Docker в директории /example-docker (файлы .env и docker-compose.yml).

Настройка Сервиса выполняется в конфигурационном файле .env. Внесите необходимые настройки, представленные в Таблице 2.

Таблица 2. Параметры конфигурации

Параметр Описание
Параметры конфигурации БД LUNA POINT
DATA=./ Точка монтирования данных контейнеров. Указывать необязательно
DOCKER_url= По умолчанию: dockerhub.visionlabs.ru/luna-point
CLEMENTINE_USERNAME= Название БД
По умолчанию: lunapoint
CLEMENTINE_PASSWORD= Пароль БД
По умолчанию: lunapoint
Теги
Теги Clementine:
CLEMENTINE_AUTH_VER= CLEMENTINE_AUTH_VER=v2.0.0;
CLEMENTINE_API_VER= CLEMENTINE_API_VER=v2.1.1
LUNA_POINT_UI_VER= LUNA_POINT_UI_VER=v1.21.1;
LUNA_POINT_API_VER= LUNA_POINT_API_VER=v2.0.2;
Теги сторонних компонентов:
VL_NOTIFIER_VER= VL_NOTIFIER_VER=2.0.0;
Параметры конфигурации CLEMENTINE UI
POINT_UI_HOST= Адрес сервера LUNA POINT UI
По умолчанию: luna_point_ui
POINT_UI_PORT= Порт, на котором будет запущен компонент
По умолчанию: 8080
Параметры конфигурации CLEMENTINE API
CLEMENTINE_API_HOST= Адрес сервера LUNA CLEMENTINE API
По умолчанию: clementine_api
CLEMENTINE_API_PORT= Порт, на котором будет запущен компонент
По умолчанию: 9010
Параметры конфигурации CLEMENTINE AUTH
CLEMENTINE_AUTH_HOST= Адрес сервера CLEMENTINE AUTH
По умолчанию: clementine_auth
CLEMENTINE_AUTH_PORT= Порт, на котором будет запущен компонент
По умолчанию: 9000
CLEMENTINE_AUTH_DOMAIN= Домен приложения, используется для генерации ссылок в email. В зависимости от конфигурации сетевого окружения это может быть именной домен, например, point.local или IP адрес компонента, доступный в сети. Параметр не является критически важным и необходим только в случае использования адреса электронной почты для регистрации новых пользователей и сброса паролей
По умолчанию: 127.0.0.1
CLEMENTINE_AUTH_PROTOCOL= Протокол, для работы в web-среде Зависит от текущих настроек инфраструктуры и требований по безопасности
Возможные значения:
- HTTP — протокол без шифрования;
- HTTPS — протокол с SSL-шифрованием
По умолчанию: HTTP
CLEMENTINE_AUTH_DSN= Подключение компонента CLEMENTINE AUTH к БД
По умолчанию: postgresql://clementine:clementine@clementine_db/clementine_auth
Параметры конфигурации LUNA POINT API
LUNA_POINT_API_HOST= Адрес сервера LUNA POINT API
По умолчанию: luna_point_api
LUNA_POINT_API_PORT= Порт, на котором будет запущен компонент
По умолчанию: 8000
LUNA_POINT_API_DSN= Подключение компонента LUNA POINT API к БД
По умолчанию: =postgresql://lunapoint:lunapoint@db/lunapoint
MACROSCOP_URL= Адрес сервера VMS Macroscop
MACROSCOP_LOGIN= Логин для входа в VMS Macroscop по указанному в MACROSCOP_URL адресу
По умолчанию: root
MACROSCOP_PASSWORD= Пароль для входа в VMS Macroscop по указанному в MACROSCOP_URL адресу
VIDEOINTELLECT_URL= Адрес сервера VMS VideoIntellect
VIDEOINTELLECT_LOGIN= Логин для входа в VMS VideoIntellect по указанному в VIDEOINTELLECT_URL адресу
По умолчанию: admin
VIDEOINTELLECT_PASSWORD= Пароль для входа в VMS VideoIntellect по указанному в VIDEOINTELLECT_URL адресу
По умолчанию: admin
Параметры конфигурации LUNA PLATFORM
LUNA_API_HOST= Хост LP. IP адрес сервера, на котором развернута LP5
По умолчанию: 127.0.0.1
LUNA_API_PORT= Порт компонента API LP5
По умолчанию: 5000
LUNA_LICENSES_HOST= Хост LUNA LICENSES
По умолчанию: 127.0.0.1
LUNA_LICENSES_PORT= Порт компонента LUNA LICENSES.
По умолчанию: 5120
LUNA_ACCOUNT_EMAIL= Адрес электронной почты для доступа к учетной записи
По умолчанию: root@visionlabs.ai
LUNA_ACCOUNT_PASSWORD= Пароль для доступа к учетной записи
По умолчанию: root
Конфигурация LUNA Streams
LUNA_STREAMS_HOST= Адрес сервера LUNA Streams
По умолчанию: 127.0.0.1
LUNA_STREAMS_PORT= Порт LUNA Streams
По умолчанию: 5160
Параметры конфигурации VL NOTIFIER и отправки уведомлений
VLNOTIFIER_HOST= Адрес сервера компонента уведомлений
По умолчанию: vlnotifier
VLNOTIFIER_PORT= Порт компонента уведомлений
По умолчанию: 9200
VLNOTIFIER_SUBJECT Текст в заголовке, отправляемого письма с уведомлением
По умолчанию: Clementine VL Notifier
Параметры конфигурации SMTP
LOG_LEVEL= Уровень логирования. Доступные значения:
0 — запись только ошибок;
1 — запись ошибок и информационных сообщений;
2 — запись ошибок, информационных сообщений и отладочной информации
По умолчанию: 1
TELEGRAM_BOT_TOKEN= Токен бота Telegram, куда будут присылаться уведомления
SMTP_SERVER= Адрес сервера SMTP
SMTP_PORT= Порт сервера SMTP. Доступные значения:
25 — без шифрования;
465SSL;
587TLS
SMTP_SENDER= Email отправителя для отправки уведомлений пользователям. Например, robot@point.local
SMTP_LOGIN= Логин для подключения к SMTP серверу
SMTP_PASSWORD= Пароль для подключения к SMTP серверу

Параметры конфигурации почтового сервера SMTP не являются критически важными и необходимы только в случае использования адреса электронной почты для регистрации новых пользователей и сброса паролей.

Параметры конфигурации SMTP также используются для компонента уведомлений.

Ошибки загрузки данных записываются в системный лог посредством подсистемы логирования с тремя уровнями логирования.

Внутренние ошибки записываются в системный лог посредством подсистемы логирования:

  • с уровнем важности "ошибка" в случае, если дальнейшее выполнение программы невозможно;
  • с уровнем важности "предупреждение", если программа сохраняет работоспособность.

Настройка веб-интерфейса#

Настройка веб-интерфейса Сервиса выполняется в директории example-docker/config/ui/ в конфигурационном файле config.json:

{
  "auth": {
    "allowPasswordChange": {
      "ui": true,
      "email": true
    }
  },
  "similarityThresholds": {
    "low": 0.75,
    "medium": 0.95
  },
  "maxImageSize": "2G"
}

Таблица 3. Параметры конфигурации веб-интерфейса

Параметр Описание
allowPasswordChange Настройка типа регистрации в Сервисе.
Всех пользователей в интерфейсе Сервиса создает администратор. При этом новому пользователю приходит ссылка на адрес электронной почты для продолжения регистрации (подробнее см. "VISIONLABS LUNA POINT. Руководство пользователя").
Также возможно создание нового пользователя с явным указанием пароля в Сервисе. Для этого необходимо настроить возможность задавать пароли в веб-интерфейсе Сервиса.
По умолчанию: “ui”: true, “email”: true
similarityThresholds Настройка цветового обозначения порогов схожести:
- значение степени схожести ниже "low" будут отмечены красным цветом;
- значение степени схожести между "low" и "medium" — желтым цветом;
- значение степени схожести выше "medium" — зеленым цветом.
По умолчанию: low: 0.75, medium": 0.95
maxImageSize Максимальный размер изображения.
При изменении этого параметра должен устанавливаться CLIENT_MAX_BODY_SIZE для контейнера point-ui в docker-compose.yml.
По умолчанию: 2G

Настройка логотипа в интерфейсе#

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

1․ Перейдите в папку media.

2․ Перенесите файлы с изображениями логотипа в формате .svg в папку.

3․ Назовите файл "logo.svg" для светлой темы и "dark-logo.svg" для тёмной.

3․ В файле config.json пропишите пути для файлов (Рисунок 2):

"logoUrl": "/static/media/logo.svg",
"darkLogoUrl": "/static/media/dark-logo.svg"
Пути для файлов лого в config.json
Пути для файлов лого в config.json

Настройка тревожной кнопки в "Панели оператора"#

При появлении события с видеоаналитикой (подробнее см. "LUNA POINT. Руководство пользователя", раздел "Панель оператора") пользователь может отправить уведомление в сервис для активации группы реагирования, нажав кнопку "Тревога".

Для работы с "Гольфстрим" и "Laurent 2" интерфейс LUNA POINT должен быть развернут с https.

Интеграция с Гольфстрим

Чтобы в интерфейсе появилась кнопка для отправки сигнала в охранную систему "Гольфстрим", добавьте в конфигурационный файл config.json в директории example-docker/config/ui/ настройки и заполните поля:

"gulfstream": {ы
    "url": "",
    "token": "",
    "object_id": "",
    "object_name": "",
    "addres": "",
    "lat": "",
    "lng": "",
    "inn": "",
    "partner_name": "",
    "alarm_type": ""
  }

Интеграция с модулем Laurent 2

Чтобы в интерфейсе появилась кнопка для отправки сигнала в модуль "Laurent 2", добавьте в конфигурационный файл config.json в директории example-docker/config/ui/ настройки и заполните поля:

"laurent2": {
    "ip": "",
    "password": "",
    "events": [
      {
        "event_type": "",
        "relay": 1
      },
      {
        "event_type": "",
        "relay": 2
      },
      {
        "event_type": "",
        "relay": 3
      },
      {
        "event_type": "",
        "relay": 4
      }
    ]
  }

Каждое событие видеоаналитики отправляется на отдельный порт платы, relay. В значении event_type укажите тип события видеоаналитики в соответствии с названиями в API LP5. При нажатии тревожной кнопки на плату Laurent 2 поступает сигнал и модуль сообщает о поданном сигнале тревоги.

Настройка интеграции с VMS#

Настройте одну из интеграций:

  • с VMS Macroscop;
  • с VMS VideoIntellect.

В настройках конфигурации LUNA POINT укажите адрес сервера по протоколу http или https в параметре MACROSCOP_URL для VMS Macroscop или в параметре VIDEOINTELLECT_URL — для VMS VideoIntellect. В интерфейсе LUNA POINT задайте внутреннее “Название luna” для видеопотоков систем видеонаблюдения в разделе “VMS”. Укажите “Название luna” при создании потоков, чтобы просматривать видеопотоки в «Панели оператора» и в разделе «Видеостена».

Запуск Сервиса#

Перейдите в директорию Docker:

cd /var/lib/point/current/example-docker

Для запуска Сервиса введите команду:

./start_point.sh

Проверьте статус всех запущенных Docker-контейнеров:

docker-compose ps

Добавление аккаунта администратора#

После того, как Сервис запустится, создайте новую учетную запись и следуйте указаниям:

docker-compose exec clementine_auth python3 cli.py createaccount

Укажите логин (адрес электронной почты) и пароль учетной записи, установите роль пользователя.

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

Запустите создание новой авторизации для аккаунта и следуйте указаниям:

docker-compose exec clementine_auth python3 cli.py createauth

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

docker-compose exec clementine_auth python3 cli.py setaccountrole