Развертывание Сервиса с помощью 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.4.0".
Архив содержит все компоненты, необходимые для установки и эксплуатации Сервиса.
Архив не включает зависимости, которые входят в стандартную поставку репозитория CentOS и могут быть загружены из открытых источников.
Перед процессом установки поместите файлы дистрибутива в директорию на сервере. Например, в директорию /root
. В данной директории не должно быть других файлов дистрибутива кроме целевых, используемых для установки конечного продукта.
Выполните следующие действия.
Переключитесь в режим суперпользователя root
:
sudo su
Создайте директорию для распаковки дистрибутива:
mkdir -p /var/lib/point
Переместите дистрибутив в созданную директорию:
mv /root/luna_point_1.4.0 /var/lib/point
Установите архиватор unzip, если он не установлен:
yum install unzip
Перейдите в директорию с дистрибутивом:
cd /var/lib/point
Распакуйте файлы:
unzip luna_point_1.4.0.zip
Создайте символьную ссылку. Ссылка указывает, что именно текущая версия дистрибутива используется для запуска:
ln -s luna_point_1.4.0 current
Настройка Сервиса#
Необходимо настроить Selinux и Firewall, чтобы они не блокировали работу Сервиса.
Настройка Selinux и Firewall в данном руководстве не описывается.
В архиве "luna_point_1.4.0" есть пример развертывания Docker в директории /example-docker
(файлы .env
и docker-compose.yml
).
Настройка Сервиса выполняется в конфигурационном файле .env:
### GLOBAL ###
# Where to preserve persistent data
DATA=./
DOCKER_URL=dockerhub.visionlabs.ru/luna-point
# username for databases
LUNA_POINT_DB_USERNAME=lunapoint
# Password for services
LUNA_POINT_DB_PASSWORD=lunapoint
# services tags
CLEMENTINE_AUTH_VER=v1.1.12
CLEMENTINE_API_VER=v1.9.0
VL_NOTIFIER_VER=0.1.16
LUNA_POINT_API_VER=v1.0.5
LUNA_POINT_UI_VER=1.14.2
# 3rd party services tags
POSTGRESQL_VER=12
### Configs ###
# clementine-api
CLEMENTINE_API_HOST=clementine_api
CLEMENTINE_API_PORT=9010
# clementine-auth
CLEMENTINE_AUTH_HOST=clementine_auth
CLEMENTINE_AUTH_PORT=9000
CLEMENTINE_AUTH_DOMAIN=127.0.0.1
CLEMENTINE_AUTH_PROTOCOL=HTTP
CLEMENTINE_AUTH_DSN=postgresql://lunapoint:lunapoint@db/clementine_auth
# luna-point-api
LUNA_POINT_API_HOST=luna_point_api
LUNA_POINT_API_PORT=8000
LUNA_POINT_API_DSN=postgresql://lunapoint:lunapoint@db/lunapoint
# luna-point-ui
LUNA_POINT_UI_HOST=luna_point_ui
LUNA_POINT_UI_PORT=8080
# luna
LUNA_API_HOST=127.0.0.1
LUNA_API_PORT=5000
LUNA_LICENSES_HOST=127.0.0.1
LUNA_LICENSES_PORT=5120
LUNA_ACCOUNT_ID=a0000000-0000-4000-a000-000000000000
# luna-streams
LUNA_STREAMS_HOST=127.0.0.1
LUNA_STREAMS_PORT=5160
# vl-notifier API
VLNOTIFIER_HOST=vlnotifier
VLNOTIFIER_PORT=9200
VLNOTIFIER_SUBJECT="Clementine VL Notifier"
# OTHER
LOG_LEVEL=1
TELEGRAM_BOT_TOKEN=
SMTP_SERVER=
SMTP_PORT=
SMTP_SENDER=
SMTP_LOGIN=
SMTP_PASSWORD=
В конфигурационный файл .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=v1.1.12 ; |
CLEMENTINE_API_VER= |
CLEMENTINE_API_VER=v1.9.0 |
LUNA_POINT_UI_VER= |
LUNA_POINT_UI_VER=v1.14.2 ; |
LUNA_POINT_API_VER= |
LUNA_POINT_API_VER=v1.0.5 ; |
Теги сторонних компонентов: | |
VL_NOTIFIER_VER= |
VL_NOTIFIER_VER=0.1.15 ; |
POSTGRESQL_VER= |
POSTGRESQL_VER=12 |
Параметры конфигурации CLEMENTINE UI | |
POINT_UI_HOST= |
Адрес сервера LUNA POINT UI |
По умолчанию: luna_point_ui |
|
POINT_UI_PORT= |
Порт, на котором будет запущен компонент |
По умолчанию: 8080 |
|
Параметры конфигурации CLEMENTINE API | |
POINT_API_HOST= |
Адрес сервера LUNA POINT API |
По умолчанию: luna_point_api |
|
POINT_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 PLATFORM 5 | |
LUNA_API_HOST= |
Хост LP5. 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_ID= |
Идентификатор аккаунта пользователя в LP5 1 |
По умолчанию: a0000000-0000-4000-a000-000000000000 |
|
Конфигурация 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 |
|
Параметры конфигурации модуля учета рабочего времени | |
VLTIMETRACKER_HOST= |
Адрес сервера компонента учета рабочего времени |
По умолчанию: 127.0.0.1 |
|
VLTIMETRACKER_PORT= |
Порт компонента учета рабочего времени |
По умолчанию: 8003 |
|
Параметры конфигурации VL Access | |
VLACCESS_HOST= |
Адрес сервера VL Access |
По умолчанию: 127.0.0.1 |
|
VLACCESS_PORT= |
Порт VL Access |
По умолчанию: 9091 |
|
Параметры конфигурации SMTP | |
LOG_LEVEL= |
Уровень логирования. Доступные значения: |
0 — запись только ошибок; |
|
1 — запись ошибок и информационных сообщений; |
|
2 — запись ошибок, информационных сообщений и отладочной информации |
|
По умолчанию: 1 |
|
TELEGRAM_BOT_TOKEN= |
Токен бота Telegram, куда будут присылаться уведомления |
SMTP_SERVER= |
Адрес сервера SMTP |
SMTP_PORT= |
Порт сервера SMTP. Доступные значения: |
25 — без шифрования; |
|
465 — SSL ; |
|
587 — TLS |
|
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"

Настройка тревожной кнопки в "Панели оператора"#
В LUNA POINT доступна интеграция с сервисом "Гольфстрим". При появлении события с видеоаналитикой (подробнее см. "LUNA POINT. Руководство пользователя", раздел "Панель оператора") пользователь может отправить уведомление в сервис для активации группы реагирования, нажав кнопку "Тревога". Чтобы в интерфейсе появилась кнопка, добавьте в конфигурационный файл config.json
в директории example-docker/config/ui/
настройки и заполните все поля:
"gulfstream": {
"url": "",
"token": "",
"object_id": "",
"object_name": "",
"addres": "",
"lat": "",
"lng": "",
"inn": "",
"partner_name": "",
"alarm_type": ""
}
Для работы с Гольфстрим интерфейс LUNA POINT должен быть развернут с https.
Запуск Сервиса#
Перейдите в директорию 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
-
Является примером идентификатора, а не реальным параметром. Необходимо подставить ID из LP5. ↩