.env.example: cover new deploy params, sane default profiles

Добавлены плейсхолдеры для всех переменных, введённых хардненингом деплоя
(NGINX_SERVER_NAMES/NGINX_CERT_NAME, LIVEKIT_USE_EXTERNAL_IP/LIVEKIT_NODE_IP,
TURN_EXTERNAL_IP) — generic-значения (example.com/127.0.0.1/false), реальные
домены/IP боевой инсталляции задаются в .env вручную и install.sh их не
перезапишет.

COMPOSE_PROFILES по умолчанию — media,monitoring (только для ручного
`docker compose up` без install.sh): убирает ресурсоёмкие transcribe/llm
из дефолтного набора, install.sh продолжает выставлять профили по
выбранному пресету инсталлятора независимо от этого дефолта.

Добавлены MEDIA_URL/VITE_API_URL/VITE_LIVEKIT_URL/NEXT_PUBLIC_LIVEKIT_URL —
присутствуют в .env боевого сервера, но не читаются текущим кодом
(задокументировано как есть, для полноты покрытия реальных ключей).
This commit is contained in:
2026-07-25 21:58:12 +03:00
parent 693db6e774
commit 93e98f445b

View File

@@ -25,6 +25,9 @@ FRONTEND_URL=http://localhost:5173
AUTH_COOKIE_SECURE=false
# --- LiveKit (dev placeholders, replace in real .env) ---
# Без дефолтов в docker-compose.yml (${VAR:?}) — пустое/отсутствующее
# значение остановит `docker compose up` с явной ошибкой, а не тихо
# подставит небезопасный дефолт.
LIVEKIT_API_KEY=devkey
LIVEKIT_API_SECRET=change-me-livekit-secret
LIVEKIT_URL=ws://localhost:7880
@@ -34,6 +37,27 @@ LIVEKIT_PUBLIC_URL=ws://localhost:7880
# --- Coturn (dev placeholders) ---
TURN_REALM=vidconf.local
TURN_STATIC_AUTH_SECRET=change-me-turn-secret
# Внешний IP/домен сервера — coturn (network_mode: host) не может определить
# его сам. 127.0.0.1 годится только для локальной разработки (без внешних
# участников конференции); в проде — реальный внешний IP/домен.
# Рендерится в deploy/coturn/turnserver.conf из turnserver.conf.template
# скриптом deploy/render-templates.sh (вызывается install.sh).
TURN_EXTERNAL_IP=127.0.0.1
# --- Nginx: TLS (443) + список доменов — deploy/nginx/nginx.conf.template ---
# Домены, которые обслуживает nginx (через пробел, все — в server_name).
NGINX_SERVER_NAMES=example.com www.example.com
# Каталог сертификата в /etc/letsencrypt/live/ — обычно primary-домен
# certbot-лайнеджа (SAN может покрывать и остальные домены из списка выше).
NGINX_CERT_NAME=example.com
# --- LiveKit: ICE/публичный адрес (deploy/livekit/livekit.yaml.template) ---
# use_external_ip=false + node_ip=127.0.0.1 — режим для локальной разработки
# (подробности — в самом шаблоне). В проде: true + реальный внешний IP/домен.
# Рендерится в deploy/livekit/livekit.yaml скриптом deploy/render-templates.sh
# (вызывается install.sh).
LIVEKIT_USE_EXTERNAL_IP=false
LIVEKIT_NODE_IP=127.0.0.1
# --- Транскрибация (профиль compose `transcribe`: egress + worker-transcriber) ---
# Общий путь тома `recordings` (egress пишет .ogg-треки, worker-transcriber
@@ -61,10 +85,16 @@ SMTP_TIMEOUT_S=30
# установке/обновлении — руками менять не нужно.
VIDCONF_VERSION=0.0.1
# --- Профили compose — install.sh выставляет по выбранному
# --- Профили compose. Дефолт ниже (`media,monitoring`) — только для ручного
# `docker compose up` БЕЗ install.sh: медиа (LiveKit+coturn) + мониторинг,
# без ресурсоёмких transcribe/llm (whisper, worker-transcriber, egress,
# llama.cpp) — сервисы остаются в docker-compose.yml, просто не в дефолтном
# наборе профилей. install.sh ПЕРЕЗАПИСЫВАЕТ это значение по выбранному
# пресету инсталлятора (1/2 — media; 3 — +transcribe,llm; 4 — те же,
# WHISPER_MODEL/LLM_MODEL_* другого уровня; 5 — +transcribe-gpu,llm-gpu). ---
COMPOSE_PROFILES=media
# WHISPER_MODEL/LLM_MODEL_* другого уровня; 5 — +transcribe-gpu,llm-gpu;
# monitoring install.sh нигде не включает — поднимайте отдельно, см.
# docs/deploy/monitoring.md). ---
COMPOSE_PROFILES=media,monitoring
# --- Настройки модулей инстанса под пресет ---
# install.sh пишет их по выбранному пресету, backend
@@ -103,3 +133,13 @@ LLM_TOKENIZER_URL=https://huggingface.co/Qwen/Qwen3.5-4B/resolve/main/tokenizer.
# --- Мониторинг (профиль compose `monitoring`) ---
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=change-me-grafana
# --- Присутствуют в .env боевого сервера, но НЕ читаются текущим кодом
# (backend/frontend) — ни backend/core/config.py, ни frontend/src не
# ссылаются на них (проверено grep'ом при харденинге репозитория). Оставлены
# здесь только для полноты покрытия реальных ключей сервера; вычистить или
# начать использовать — по итогам Сессии 2 (bug hunt). ---
MEDIA_URL=http://localhost/media/
VITE_API_URL=http://localhost
VITE_LIVEKIT_URL=ws://localhost:7880
NEXT_PUBLIC_LIVEKIT_URL=ws://localhost:7880