Приложение A. Переменные .env
Единый .env читают все сервисы. Источник — .env.onprem.example из дистрибутива.
Секреты и MASTER_KEY в git не коммитятся.
Развёртывание
| Переменная | Назначение | Пример / по умолчанию | Обяз. |
|---|---|---|---|
DEPLOYMENT | Режим поставки | onprem | да |
CABINET_DOMAIN | Домен кабинета (A-запись на сервер) | robot.example.ru | да |
ACME_EMAIL | E-mail для Let's Encrypt | admin@example.ru | да |
COOKIE_SECURE | Cookie только по HTTPS (за Caddy — 1) | 1 | да |
TENANT_SLUG | Идентификатор арендатора (onprem — один) | default | да |
Ключи шифрования и секреты
| Переменная | Назначение | Генерация | Обяз. |
|---|---|---|---|
MASTER_KEY | Мастер-ключ envelope-шифрования секретов | python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" | да |
INTERNAL_TOKEN | Секрет бот↔Asterisk (/call-meta) | openssl rand -hex 32 | да |
SESSION_SECRET | Секрет сессий кабинета | openssl rand -hex 32 | да |
MASTER_KEY
Хранить отдельно от сервера и бэкапа. При утере доступ к зашифрованным секретам теряется безвозвратно.
Хранилище конфигурации
| Переменная | Назначение | По умолчанию |
|---|---|---|
CONFIG_DB_DIR | Каталог config.db вне дерева деплоя | /var/lib/voice-secretary/config-db |
DATABASE_URL | Путь к config.db (SQLite) | sqlite:////app/config-db/config.db |
CONFIG_DB_ENABLED | Общая конфиг-БД для каб инета и бота | 1 |
Речевые сервисы (Yandex)
| Переменная | Назначение | По умолчанию |
|---|---|---|
YANDEX_API_KEY | API-ключ сервисного аккаунта (не IAM-токен) | — |
YANDEX_FOLDER_ID | Folder id | — |
YANDEX_TTS_VOICE | Голос синтеза | jane |
YANDEX_TTS_SPEED | Скорость синтеза | 1.15 |
YANDEX_LLM_MODEL | Модель LLM | yandexgpt/latest |
Телефония
| Переменная | Назначение | По умолчанию |
|---|---|---|
TRANSPORT | Транспорт медиа | audiosocket |
SIP_DID_NUMBER | DID-номер (справочно; транк — в pjsip.conf) | — |