Системные требования

ПараметрЗначение
CPUQuad-core 4 GHz
RAM16 Gb
HDD40 Gb
OSDebian-like GNU/Linux

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

Установлены следующие пакеты:

  • docker-ce
  • docker-ce-cli
  • containerd.io
  • docker-buildx-plugin 
  • docker-compose-plugin

Для виртуальных машин требуется включить сквозную передачу инструкций процессора (CPU Passthrough) с поддержкой AVX и sse4.2

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

Приложение запускается в контейнерах docker c помощью docker compose. Перед запуском приложения необходимо выполнить следующие шаги:

  1. Загрузка и распаковка архива с файлами для docker-compose:
mkdir ASR && cd ASR
curl -SsO https://s3.eltex-co.ru/shared/clerk/stable/2.7.0/ASR.tar.gz
tar -xzf ASR.tar.gz && rm ASR.tar.gz

2. Создание секретов:

Настройка паролей осуществляется с помощью механизма docker compose secrets. Для создания секретов необходимо создать каталог secrets и записать пароли в файлы:

mkdir secrets && cd secrets
touch keycloak_admin_password.txt keycloak_db_password.txt mongo_root_password.txt
/nano/vim/mcedit * && cd ..

Каждый файл должен содержать пароль в одной строке без переноса строки в конце.

Файлы с секретами нужны только при старте проекта (docker compose ... up -d). После старта их можно удалить или зашифровать.

При использовании стороннего keycloak, в keycloak_admin_password.txt должен быть записан пароль от аккаунта администратора этого keycloak.

3. Преднастройка приложения:

Перед запуском приложения необходимо заполнить переменные окружения в файле .env, более подробно про переменные окружения можно ознакомится в разделе «Конфигурация и описание переменных».

В зависимости от выбранного варианта запуска необходимо заполнить следующие переменные:

  1. Запуск со встроенным keycloak — PB_URL;
  2. Запуск со сторонним keycloak (уже развернутый ранее сервис keycloak, например от Elph) — PB_URL, KEYCLOAK_HOST, KEYCLOAK_PORT;
  3. Запуск с встроенным keycloak и мониторингом — PB_URL, PEEPER_TOKEN, PEEPER_IP, PEEPER_HOST, DOCKER_GID, HOSTNAME;
  4. Запуск со сторонним keycloak и мониторингом — PB_URL, KEYCLOAK_HOST, KEYCLOAK_PORT, PEEPER_TOKEN, PEEPER_IP, PEEPER_HOST, DOCKER_GID, HOSTNAME.

Более подробно про варианты запуска можно ознакомится в разделе «Архитектура приложения».

Узнать значение для DOCKER_GID можно с помощью команды:

getent group docker | cut -d: -f3

Запуск приложения

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

1. Осуществить логин в докер регистри:

docker login hub-ims.eltex-co.ru

2. В зависимости от выбранного варианта запуска выполнить следующую команду в папке проекта:

  1. Запуск со встроенным keycloak 
    docker compose -f compose.yaml -f compose.keycloak.yaml up -d
  2. Запуск со сторонним keycloak 
    docker compose -f compose.yaml up -d
  3. Запуск с встроенным keycloak и мониторингом 
    docker compose -f compose.yaml -f compose.keycloak.yaml -f compose.peeper.yaml up -d
  4. Запуск со сторонним keycloak и мониторингом 
    docker compose -f compose.yaml -f compose.peeper.yaml up -d


При первом запуске приложение может работать некорректно, т. к. происходит адаптация модели под телефонную книгу. После запуска приложения необходимо подождать 60–90 мин.

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

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

  1. Остановка со встроенным keycloak:
    docker compose -f compose.yaml -f compose.keycloak.yaml down -d
  2. Остановка со сторонним keycloak:
    docker compose -f compose.yaml down -d
  3. Остановка с встроенным keycloak и мониторингом: 
    docker compose -f compose.yaml -f compose.keycloak.yaml -f compose.peeper.yaml down -d
  4. Остановка со сторонним keycloak и мониторингом:
    docker compose -f compose.yaml -f compose.peeper.yaml down -d

Удаление приложения

Для удаления приложения необходимо удалить docker volumes и docker images.

В зависимости от выбранного варианта запуска с помощью следующих команд:

  1. Удаление со встроенным keycloak: 
    docker volume rm asr_clerk-asr-model
    docker volume rm asr_clerk-buf-dir
    docker volume rm asr_clerk-keycloak-pg
    docker volume rm asr_clerk-logs
    docker volume rm asr_clerk-mongo-data
    docker volume rm asr_clerk-pb-data
    docker volume rm asr_clerk-pcm-data
    
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/prod-focal/clerk:2.7.0.53
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/mongo:4.4.22
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-smart-ivr/external/mongodb_exporter-wrapper:0.51.0
    docker image rm hub-ims.eltex-co.ru/ecss/ecss-asr-ui/prod-bionic-3.14/frontend:2.7.0
    docker image rm hub-ims.eltex-co.ru/ecss/ecss-asr-ui/prod-bionic-3.14/websockets:2.7.0
    docker image rm hub-ims.eltex-co.ru/ecss-ext/asr-server/prod-focal/vosk:2.7.0.5
    docker image rm hub-ims.eltex-co.ru/ecss-ext/asr-server/prod-focal/asr-server:2.7.0.5
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/curl:8.20.0
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/keycloak:22.0.1
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-smart-ivr/external/nginx:alpine
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/postgres:15
  2. Удаление со сторонним keycloak: 
    docker volume rm asr_clerk-asr-model
    docker volume rm asr_clerk-buf-dir
    docker volume rm asr_clerk-logs
    docker volume rm asr_clerk-mongo-data
    docker volume rm asr_clerk-pb-data
    docker volume rm asr_clerk-pcm-data
    
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/prod-focal/clerk:2.7.0.53
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/mongo:4.4.22
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-smart-ivr/external/mongodb_exporter-wrapper:0.51.0
    docker image rm hub-ims.eltex-co.ru/ecss/ecss-asr-ui/prod-bionic-3.14/frontend:2.7.0
    docker image rm hub-ims.eltex-co.ru/ecss/ecss-asr-ui/prod-bionic-3.14/websockets:2.7.0
    docker image rm hub-ims.eltex-co.ru/ecss-ext/asr-server/prod-focal/vosk:2.7.0.5
    docker image rm hub-ims.eltex-co.ru/ecss-ext/asr-server/prod-focal/asr-server:2.7.0.5
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/curl:8.20.0Удаление с встроенным keycloak и мониторингом 
  3. docker volume rm asr_clerk-asr-model
    docker volume rm asr_clerk-buf-dir
    docker volume rm asr_clerk-keycloak-pg
    docker volume rm asr_clerk-logs
    docker volume rm asr_clerk-mongo-data
    docker volume rm asr_clerk-pb-data
    docker volume rm asr_clerk-pcm-data
    docker volume rm peeper-agent-data
    docker volume rm peeper-vector-data
    
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/prod-focal/clerk:2.7.0.53
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/mongo:4.4.22
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-smart-ivr/external/mongodb_exporter-wrapper:0.51.0
    docker image rm hub-ims.eltex-co.ru/ecss/ecss-asr-ui/prod-bionic-3.14/frontend:2.7.0
    docker image rm hub-ims.eltex-co.ru/ecss/ecss-asr-ui/prod-bionic-3.14/websockets:2.7.0
    docker image rm hub-ims.eltex-co.ru/ecss-ext/asr-server/prod-focal/vosk:2.7.0.5
    docker image rm hub-ims.eltex-co.ru/ecss-ext/asr-server/prod-focal/asr-server:2.7.0.5
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/curl:8.20.0
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/keycloak:22.0.1
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-smart-ivr/external/nginx:alpine
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/postgres:15 
    docker image rm hub.eltex-co.ru/peeper/peeper-agent:1.1       
    docker image rm hub.eltex-co.rupeeper/peeper-provisioner:1.1 
    docker image rm hub.eltex-co.ru/peeper/peeper-telegraf:1.1    
    docker image rm hub.eltex-co.ru/peeper/peeper-vector:1.1       
    
    
  4. Удаление со сторонним keycloak и мониторингом: 
    docker volume rm asr_clerk-asr-model
    docker volume rm asr_clerk-buf-dir
    docker volume rm asr_clerk-logs
    docker volume rm asr_clerk-mongo-data
    docker volume rm asr_clerk-pb-data
    docker volume rm asr_clerk-pcm-data
    docker volume rm peeper-agent-data
    docker volume rm peeper-vector-data
     
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/prod-focal/clerk:2.7.0.53
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/mongo:4.4.22
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-smart-ivr/external/mongodb_exporter-wrapper:0.51.0
    docker image rm hub-ims.eltex-co.ru/ecss/ecss-asr-ui/prod-bionic-3.14/frontend:2.7.0
    docker image rm hub-ims.eltex-co.ru/ecss/ecss-asr-ui/prod-bionic-3.14/websockets:2.7.0
    docker image rm hub-ims.eltex-co.ru/ecss-ext/asr-server/prod-focal/vosk:2.7.0.5
    docker image rm hub-ims.eltex-co.ru/ecss-ext/asr-server/prod-focal/asr-server:2.7.0.5
    docker image rm hub-ims.eltex-co.ru/ecss-ext/ecss-clerk/external/curl:8.20.0
    docker image rm hub.eltex-co.ru/peeper/peeper-agent:1.1       
    docker image rm hub.eltex-co.rupeeper/peeper-provisioner:1.1 
    docker image rm hub.eltex-co.ru/peeper/peeper-telegraf:1.1    
    docker image rm hub.eltex-co.ru/peeper/peeper-vector:1.1    
    
    

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

Приложение настраивается с помощью переменных окружения в файле .env. Более подробно можно ознакомиться в разделе «Конфигурация и описание переменных»

Если вы вносите изменения в файл .env (например, меняете адреса сервисов, порты, параметры авторизации, пути к файлам или уровни логирования), необходимо перезапустить все контейнеры, чтобы новые переменные подхватились приложениями. Для этого выполните в каталоге проекта:

docker compose -f compose.yaml -f compose.keycloak.yaml down && docker compose -f compose.yaml -f compose.peeper.yaml up -d

Эта команда полностью остановит работающие контейнера, затем запустит с обновлённым окружением. Некоторые изменения (например, только логирование) могут не требовать полной остановки, но для гарантии корректной работы рекомендуется выполнять полный перезапуск.
После перезапуска дождитесь загрузки телефонной книги и компиляции модели (статус «готово» в web‑интерфейсе), прежде чем тестировать звонки.

  • Нет меток