Руководство по установке Взыскатора

Развертывание

Цели и функции системы

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

Требования к аппаратной части

Для развертывания Взыскатора требуется инфраструктурные мощности:

  • СУБД PostgreSQL: 2 CPU 4 GB MEM 100 GB HDD
  • S3 (Minio): 2CPU 4 GB MEM 250 GB HDD

При этом можно запустить на одной ВМ с суммарной мощностью 4 CPU 4 GB MEM 300 GB HDD

Характеристика ВМ для Взыскатора: 12 CPU 12 GB MEM 100 GB HDD

Требование к программной части

  • Docker - не ниже 20.10.16 (рекомендуемое 24.0.2+ (compose встроен))
  • docker-compose (отдельный) - не ниже 1.29.2 (рекомендуемое 2.19.0+)
  • ОС - Linux
  • Наличие лицензии КриптоПро CSP 5.0

Подготовительные работы

Все ВМ, на которых планируется запуск Взыскатора должны иметь доступ до приватного Docker-реестра harbor.rnds.pro. В поставляемом архиве содержится вспомогательный скрипт для авторизации:

./docker-login.sh

Установка

Поставка платформы Взыскатор состоит из набора сервисов, необходимых для его запуска:

  • agg_lite - является базовым сервисом выполняющим роль основного приложения Взыскатор и включающий себя сервисы, необходимы для функционирования системы
  • agg_lite_signer - сервис, выполняющий роль подписания запросов КЭП для взаимодействия с ФССП
  • agg_lite_postgres - база данных PostgreSQL
  • agg_lite_redis - база данных Redis
  • agg_lite_s3 - s3 хранилище Minio

Внимание ! Сервисы agg_lite_postgres (PostgreSQL), agg_lite_redis (Redis) и agg_lite_minio (Minio s3 object storage) являются дополнением к поставке и не рекомендуется для постоянного использования! Весь риск и последствия использования тестовых баз данных PostgreSQL и Redis, а также s3 Minio лежат на заказчике.

Базовой директорией размещения конфигурационных файлов сервиса зафиксирована директория в файловой системе:

/storage/configs/agg_lite

У текущего пользователя системы должны быть права на использование этой директории.

Следующий скрипт копирует все конфигурационные файлы из текущей директории в базовую директорию конфигурационных файлов:

./install.sh

Соответственно, перед установкой Взыскатора необходимо провести его настройку.

Настройка

Все поставляемые сервисы запускаются в разных проектах docker-compose и могут быть гибко настроены, исходя из желания заказчика

Настройка инфраструктуры

PostgreSQL

Директория agg_postgres содержит в себе конфигурационные файлы для запуска СУБД PostgreSQL в Docker через docker-compose:

  • .env.postgres - файл с переменными окружения для Docker-контейнера PostgreSQL.
  • docker-compose.yml - файл с настройками запускаемого контейнера

Используемые переменные окружения

Переменная Описание Пример значения
COMPOSE_PROJECT_NAME Название проекта docker-compose agg_postgres
PG_IMAGE Название Docker образа с PostgreSQL harbor.rnds.pro/dockerhub/library/postgres
PG_TAG Версия PostgreSQL 14
PG_DATA_PATH Путь к томам PostgreSQL /storage/infra/agg_postgres/data
DATABASE_USER Суперпользователь БД postgres
DATABASE_PASS Пароль суперпользователя БД Vj8bR4QQI7pQuhhQ
DATABASE_PORT Внешний порт контейнера с БД 5433
Redis

Директория agg_redis содержит в себе конфигурационные файлы для запуска БД Redis в Docker через docker-compose:

  • .env.redis - файл с переменными окружения для Docker-контейнера Redis
  • docker-compose.yml - файл с настройками запускаемого контейнера

Используемые пременные окружения

Переменная Описание Пример значения
COMPOSE_PROJECT_NAME Название проекта docker-compose agg_redis
REDIS_IMAGE Название Docker образ с Redis harbor.rnds.pro/dockerhub/library/redis
REDIS_TAG Версия Redis 6.0
REDIS_DATA_PATH Путь к томам Redis /storage/infra/agg_redis/data
REDIS_PORT Внешний порт контейнера Redis 6379
Minio

Директория agg_minio содержит в себе конфигурационные файлы для запуска Minio s3 в Docker через docker-compose:

  • .env.minio - файл с переменными окружения для Docker-контейнера Minio
  • docker-compose.yml - файл с настройками запускамых контейнеров Minio

Используемые переменные окружения

Переменная Описание Пример значения
COMPOSE_PROJECT_NAME Название проекта docker-compose agg_minio
MINIO_IMAGE Название Docker образ с Minio harbor.rnds.pro/dockerhub/minio/minio
MINIO_TAG Версия Minio latest
MINIO_DATA_PATH Путь к томам Redis /storage/infra/agg_minio/data
MINIO_ROOT_USER Главный пользователь miniadmin
MINIO_ROOT_PASSWORD Пароль главного пользователя password
MINIO_API_PORT Внешний порт для API Minio 9000
MINIO_CONSOLE_PORT Внешний порт для веб-панели админиистрирования Minio 9090

Настройка ПО

Настройка приложения происходит в файле .env.lite, в котором расписаны используемые переменные окружения. Переменные разделены на несколько блоков, для удобства дальнейшей настройки, а также прокомментированны.

Блок "Docker Compose"

Содержит в себе информацию о запускаемом образе и версии приложения.

Описание переменных окружения | Переменная | Описание | Пример значения | | ———- | | | | COMPOSE_PROJECT_NAME | Название проекта docker-compose | agg_lite | | AGG_LITE_IMAGE | Используемый Docker-образ сервиса | harbor.rnds.pro/aggredator/lite-vzyskator | | AGG_LITE_TAG | Запускаемая версия приложния | 1.0.31 |

Блок "Database"

Содержит в себе настройки подключения сервисов к базам данных в СУБД Postgres

Описание переменных окружения

Переменная Описание Пример значения
EPGU_API_DATABASE_URL Строка подключения к бд для epgu-api postgres://postgres:Vj8bR4QQI7pQuhhQ@db.local:5433/aggredator-service-epgu-api
FILATOR_DATABASE_URL Строка подключения к бд для filator postgres://postgres:Vj8bR4QQI7pQuhhQ@db.local:5433/aggredator-service-filator
APIGW_DATABASE_URL Строка для подключения к бд для apigw postgres://postgres:Vj8bR4QQI7pQuhhQ@db.local:5433/aggredator-service-apigw

Для коннекта к бд используется db.local, который прописан в /etc/hosts контейнера. IP можно изменить, отредактирововав файл .env в корневой директории с конфигурационными файлами, либо добавив переменную окружения DATABASE_IP в .env.lite вручную:

DATABASE_IP="172.22.1.11" # IP адрес БД

Также в строке подключения можно явно указать IP-адрес/домен для БД:

EPGU_API_DATABASE_HOST="postgres://postgres:Vj8bR4QQI7pQuhhQ@172.22.1.11:5433/aggredator-service-epgu-api"
Блок "Filator"

Filator - это временное файловое хранилище с HTTP-интерфейсом. Предназначено для передачи файлов между сервисами в процессе работы. Устаревшие файлы удаляются через некоторое время. Подробное описание сервиса на вики

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

FILATOR_STORAGE_CONFIGURATIONS='[
{
    "name": "s3",
    "type": "s3",
    "readonly": false,
    "use_dynamic_buckets": false,
    "endpoint": "http://172.22.1.11:9000",
    "access_key": "access_key",
    "secret_key": "secret_key",
    "bucket": "filator",
    "prefix": "filator",
    "open_timeout": 15,
    "read_timeout": 15,
    "ssl_verify_peer": false,
    "retry_limit": 0,
    "region": "region"
}]'
Блок "Vzyskator"

Содержит в себе настройку взаимодействия epgu-api с сервисом подписания запросов Signer

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

EPGU_API_CLIENTS_SIGNERS_CONFIGURATION='[
{
    "name": "test",
    "type": "jigner",
    "url": "http://signer:qwerty123123@signer.local:8505/?cert=test",
    "timeout": "15"
}]'
Блок "ApiGW"

Настройи сервиса apigw и его административной панели.

Описание переменных окружения

Переменная Описание Пример значения
APIGW_ADMIN_USER Имя главного пользователя в административной авнели admin
APIGW_ADMIN_PASS Пароль главного пользователя FHOzE4MzB2pJ171t
APIGW_WEB_PORT Порт, по которму будет доступна административная панель 8080
APIGW_REDIS_URL Строка подключения к БД Redis redis://redis.local:6379/0
Блок "Logging"

Настройка уровня логирования и места хранения логов приложения

Описание переменных окружения

Переменная Описание Пример значения
AGG_LOG_PATH Директория расположения файлов логов приложения на хостовой машине /storage/logs/agg_lite
EPGU_API_LOG_LEVEL Уровень логирования epgu-api info или debug
APIGW_LOG_LEVEL Уровинь логировнаия apigw info или debug
FILATOR_LOG_LEVEL Уровень логирования filator info или debug

Запуск

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

cd /storage/configs/agg_lite
./run.sh

Запуск с использованием тестовых БД и S3 Minio необходимо передать параметр test:

cd /storage/configs/agg_lite
./run.sh test

Запуск вручную какого-либо сервиса:

cd /storage/configs/agg_lite/agg_service_name
./prepare docker compose up -d

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

http://instance_ip:8081

и пройти авторизацию, используя заданные в .env.lite значения