Развёртывание продуктового экземпляра программы «Голосовой ИИ-тренажёр».
По умолчанию работа Голосового ИИ-тренажёра реализована в виде облачного сервиса. Развёртывание системы в контуре клиента не предполагается и выполняется только по отдельному соглашению.
Прод-контур поднимается одним файлом docker-compose.prod.yml. В его состав входят:
серверное приложение, СУБД (PostgreSQL), лендинг и вспомогательный стек (наблюдаемость/логи,
административные сервисы). Образы приложения и лендинга — заранее собранные, берутся из реестра
образов и на месте не собираются. Конфигурация и секреты подаются через файл окружения
(.env) в каталоге запуска — Docker Compose сам подставляет значения из него
в шаблон compose-файла.
| Компонент | Требование |
|---|---|
| ОС | Linux-сервер с Docker Engine + Docker Compose v2 |
| Реестр образов | Доступ для загрузки образов приложения и лендинга |
| Внешняя сеть Docker | Предварительно созданная внешняя сеть |
| Каталог данных | Постоянное хранилище для томов (БД, загрузки, логи и пр.) |
| Reverse-proxy | Внешний |
| Доступы к внешним сервисам | Реквизиты подключения к интеграциям (см. п. 3) |
Нужны compose-файлы и сопутствующие каталоги конфигурации.
docker network create http-entry Значение ENV — например, prod:
sudo mkdir -p /storage/aicallstudio/prod/{pgdata,uploads,logs,loki,grafana,nocodb,wikijs} docker pull <образ-приложения>:<tag>
docker pull <образ-лендинга>:<tag>
Создать файл .env в корне проекта (рядом с docker-compose.prod.yml) —
Compose подхватит его автоматически. Перечень переменных и их шаблон приведены
в .env.example; при разворачивании их следует заполнить реальными значениями.
Состав конфигурации логически делится на следующие группы:
chmod 600 .env) и не помещать файл в систему контроля версий.
Запуск выполняется штатным docker compose — файл окружения читается автоматически.
# поднять весь контур
docker compose -f docker-compose.prod.yml up -d Либо поэтапно — сначала СУБД, затем приложение (стартует после готовности БД), затем остальные сервисы:
docker compose -f docker-compose.prod.yml up -d <сервис-БД>
docker compose -f docker-compose.prod.yml up -d <сервис-приложения>
docker compose -f docker-compose.prod.yml up -d <остальные-сервисы>
Если файл окружения расположен отдельно — указать его явно:
--env-file /path/to/prod.env.
healthy.
Выполняется однократно на свежей базе данных:
docker exec -it <контейнер-приложения> node dist/seed-admin.js # все сервисы должны быть в состоянии running/healthy
docker compose -f docker-compose.prod.yml ps
# логи серверного приложения
docker compose -f docker-compose.prod.yml logs --tail=100 <сервис-приложения>
Изменить тег образа приложения в файле окружения → загрузить образ (docker pull) →
пере-поднять сервис приложения. Миграции применятся при рестарте автоматически.
Вернуть предыдущий тег образа и пере-поднять сервис.
docker compose -f docker-compose.prod.yml down Данные в постоянном хранилище при этом сохраняются.