83 lines
3.5 KiB
Shell
83 lines
3.5 KiB
Shell
# Скопировать в .env. Файл в .gitignore: ключи в репозиторий не едут.
|
||
BIND_HOST=127.0.0.1
|
||
POSTGRES_PORT=5432
|
||
# Development profile defaults to lct. Before production/offline deployment,
|
||
# generate a unique URL-safe value: python -c "import secrets; print(secrets.token_urlsafe(32))"
|
||
POSTGRES_PASSWORD=
|
||
BACKEND_PORT=8000
|
||
# Per-backend PostgreSQL connection pool (cluster default budget: 60 total).
|
||
DB_POOL_SIZE=20
|
||
DB_POOL_MAX_OVERFLOW=10
|
||
# Stable node identity; set a distinct value for each explicit backend node.
|
||
BACKEND_NODE_ID=backend-01
|
||
FRONTEND_PORT=5173
|
||
TLS_PORT=5443
|
||
TLS_CERT_DIR=./.local/tls
|
||
SIP_PORT=5060
|
||
SIPS_PORT=5061
|
||
SIP_WS_PORT=8088
|
||
RTP_PORT_START=10000
|
||
RTP_PORT_END=10099
|
||
SIP_TLS_DIR=./.local/sip-tls
|
||
# Если пусто, Asterisk создаст стойкие случайные пароли в volume sipdata.
|
||
SIP_6001_PASSWORD=
|
||
SIP_6002_PASSWORD=
|
||
SIP_6003_PASSWORD=
|
||
SIP_6101_PASSWORD=
|
||
SIP_6102_PASSWORD=
|
||
# IP/DNS сервера, который WebRTC-клиенты видят в локальной сети. При запуске
|
||
# только на той же машине оставьте 127.0.0.1; RTP-порты должны отображаться 1:1.
|
||
SIP_EXTERNAL_MEDIA_ADDRESS=127.0.0.1
|
||
DATABASE_URL=postgresql+asyncpg://lct:lct@localhost:5432/lct
|
||
|
||
# Два локальных OpenAI-совместимых сервера (например, llama-server).
|
||
# Адреса должны быть loopback: OFFLINE=true не допускает внешний API.
|
||
LLM_PROVIDER=local
|
||
LLM_BASE_URL=http://127.0.0.1:18080/v1
|
||
# Адреса тех же процессов из backend-контейнера Docker Desktop (macOS/Windows).
|
||
DOCKER_LLM_BASE_URL=http://host.docker.internal:18080/v1
|
||
LLM_API_KEY=
|
||
LLM_MODEL_CALLER=Qwen3-1.7B
|
||
LLM_CONTROL_BASE_URL=http://127.0.0.1:18081/v1
|
||
DOCKER_LLM_CONTROL_BASE_URL=http://host.docker.internal:18081/v1
|
||
LLM_MODEL_CONTROL=Vikhr-1B
|
||
GRAMMAR_LLM_ENABLED=true
|
||
DIALOGUE_MODEL_MODE=dialogue
|
||
JUDGE_TEMPERATURE=0
|
||
|
||
# Голосовой контур
|
||
MODELS_DIR=models
|
||
STT_MODEL=whisper-small
|
||
WHISPER_MODEL_PATH=models/whisper-small
|
||
WHISPER_SERVER_URL=http://127.0.0.1:18082
|
||
VOICE_ENABLED=false
|
||
RECORD_CALLS=true
|
||
RECORDINGS_DIR=recordings
|
||
BACKUP_INTERVAL_SECONDS=86400
|
||
BACKUP_RETRY_SECONDS=300
|
||
BACKUP_KEEP=14
|
||
ENDPOINTING_MS=600
|
||
OFFLINE=true
|
||
SECURE_COOKIES=false
|
||
# Необязательно для Compose: если пусто, стойкий случайный ключ создаётся в
|
||
# volume securitydata. На управляемом стенде можно задать свой 48+ байтный ключ.
|
||
# Compose generates this in its persistent securitydata volume if left blank.
|
||
# If managed explicitly, use at least 32 random characters.
|
||
SESSION_SECRET=
|
||
|
||
# Необязательный AD/LDAP: требует LDAPS или StartTLS и проверку сертификата.
|
||
# Для включения задайте ldap(s)://url, base DN, bind-учётку и явные группы.
|
||
# Ключи LDAP_ROLE_GROUPS — DN групп, значения: admin/instructor/trainee.
|
||
# LDAP_SERVICE_GROUPS связывает DN групп курсантов с названием службы ДДС.
|
||
LDAP_ENABLED=false
|
||
LDAP_URL=
|
||
LDAP_BASE_DN=
|
||
LDAP_BIND_DN=
|
||
LDAP_BIND_PASSWORD=
|
||
LDAP_USER_FILTER=(objectClass=person)
|
||
LDAP_LOGIN_ATTRIBUTE=sAMAccountName
|
||
LDAP_ROLE_GROUPS={}
|
||
LDAP_SERVICE_GROUPS={}
|
||
# Путь к доверенному внутреннему CA внутри контейнера или локального backend.
|
||
LDAP_CA_CERTS_FILE=
|
||
LDAP_CONNECT_TIMEOUT_SECONDS=5
|