logoVoxagent

Конфигурация

Переменные окружения и настройка сервисов

Вся конфигурация в одном .env файле рядом с docker-compose.yml. Копируем пример и заполняем поля под своё развёртывание:

cp .env.example .env

Эталонный .env.example опубликован в публичном репо quickstart рядом с compose-файлом.

Секции

Файл сгруппирован по сервисам. Каждый сервис читает только свой префикс — например, всё для asp-net бэкенда это BACKEND_*, для python-воркера это WORKER_* и т.п. Общие значения (хост Postgres, брокеры Kafka, пароль Redis) определены один раз в базовых секциях в начале файла и подставляются через ${VAR} в секциях сервисов ниже.

СекцияПрефиксЧто настраивает
Host ports*_EXTERNAL_PORTХост-порты, на которых docker выставляет сервисы. Меняй если конфликтует.
Service URLs*_INTERNAL_URL, *_PUBLIC_URLВнутренние DNS-имена vs URL, видимые из браузера.
PostgresPOSTGRES_*Креды БД. Один инстанс Postgres хостит несколько БД.
RedisREDIS_*Общий пароль. Сервисы используют разные logical DB.
KafkaKAFKA_*SASL-креды + bootstrap servers.
MinIOMINIO_*S3-совместимое хранилище для записей и счетов.
KeycloakKEYCLOAK_*Admin-пользователь, SMTP, OAuth, подтверждение email.
LiveKitLIVEKIT_*API-ключи, SIP-транк, WebRTC NAT-конфиг.
BackendBACKEND_*Настройки .NET API, ключи LLM, Stripe-планы.
WorkerWORKER_*Python voice agent — ключи LLM/STT/TTS провайдеров.
FrontendFRONTEND_CLIENT_*, FRONTEND_WIDGET_*Runtime-конфиг для Angular-бандлов.
LagoGETLAGO_*Биллинговый движок: БД, Redis, Stripe, webhook URL.
WebhooksWEBHOOKS_*Приёмник входящих вебхуков (Lago, LiveKit).
Logging (opt-in)LOGGING_*Креды Fluent Bit / Benthos / Elasticsearch.

Критичные настройки

Часть значений обязательно заполнить перед первым запуском — дефолты не подойдут:

ПеременнаяЗачем
API-ключи для LLM / STT / TTS-провайдеров, которые вы включаетеДоступ к моделям для агентов (конкретные имена переменных зависят от вендора — смотрите .env.example)
GETLAGO_MIGRATE_STRIPE_SECRET_KEYБиллинг (если включён Stripe)
KEYCLOAK_SMTP_*Доставка email при регистрации / сбросе пароля
LIVEKIT_API_KEY / LIVEKIT_API_SECRETПодпись WebRTC — сгенерируйте случайные 32-char секреты
GETLAGO_RSA_PRIVATE_KEYBase64-кодированный RSA для подписи Lago-вебхуков
Encryption keys (*_ENCRYPTION_*, SECRET_KEY_BASE)В проде заменить дефолты на случайные строки

В .env.example лежат рабочие placeholder'ы для локальной разработки, но каждый секрет должен быть заменён для прода.

Профили

Часть сервисов — opt-in и не стартует без профиля:

# Стек логирования (Elasticsearch + Kibana + Fluent Bit + Benthos)
docker compose --profile logging up -d

# Аналитика (ClickHouse)
docker compose --profile analytics up -d

Масштабирование отдельных сервисов

Чтобы запустить более одного инстанса session-bound сервиса (worker, livekit, bridge) — используйте реплики Docker Swarm или замените Compose на настоящий оркестратор (Kubernetes, Nomad, ECS). Все сервисы stateless, кроме backbone (Postgres, Redis, Kafka, MinIO, Keycloak).

Как подобрать размер под ожидаемую нагрузку — см. Требования.

Содержание