Системные требования
| Параметр | Значение |
|---|---|
| CPU | Quad-core 4 GHz |
| RAM | 16 Gb |
| HDD | 40 Gb |
| OS | Debian-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. Перед запуском приложения необходимо выполнить следующие шаги:
- Загрузка и распаковка архива с файлами для 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, более подробно про переменные окружения можно ознакомится в разделе «Конфигурация и описание переменных».
В зависимости от выбранного варианта запуска необходимо заполнить следующие переменные:
- Запуск со встроенным keycloak — PB_URL;
- Запуск со сторонним keycloak (уже развернутый ранее сервис keycloak, например от Elph) — PB_URL, KEYCLOAK_HOST, KEYCLOAK_PORT;
- Запуск с встроенным keycloak и мониторингом — PB_URL, PEEPER_TOKEN, PEEPER_IP, PEEPER_HOST, DOCKER_GID, HOSTNAME;
- Запуск со сторонним 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. В зависимости от выбранного варианта запуска выполнить следующую команду в папке проекта:
- Запуск со встроенным keycloak
docker compose -f compose.yaml -f compose.keycloak.yaml up -d
- Запуск со сторонним keycloak
docker compose -f compose.yaml up -d
- Запуск с встроенным keycloak и мониторингом
docker compose -f compose.yaml -f compose.keycloak.yaml -f compose.peeper.yaml up -d
- Запуск со сторонним keycloak и мониторингом
docker compose -f compose.yaml -f compose.peeper.yaml up -d
При первом запуске приложение может работать некорректно, т. к. происходит адаптация модели под телефонную книгу. После запуска приложения необходимо подождать 60–90 мин.
Остановка приложения
В зависимости от выбранного варианта запуска выполнить следующую команду в папке проекта:
- Остановка со встроенным keycloak:
docker compose -f compose.yaml -f compose.keycloak.yaml down -d
- Остановка со сторонним keycloak:
docker compose -f compose.yaml down -d
- Остановка с встроенным keycloak и мониторингом:
docker compose -f compose.yaml -f compose.keycloak.yaml -f compose.peeper.yaml down -d
- Остановка со сторонним keycloak и мониторингом:
docker compose -f compose.yaml -f compose.peeper.yaml down -d
Удаление приложения
Для удаления приложения необходимо удалить docker volumes и docker images.
В зависимости от выбранного варианта запуска с помощью следующих команд:
- Удаление со встроенным 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
- Удаление со сторонним 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 и мониторингом
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
- Удаление со сторонним 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‑интерфейсе), прежде чем тестировать звонки.