# TeleWave — пример переменных окружения. # Скопируй в .env и заполни значения. Ключи вида Section__Key биндятся в IOptions ASP.NET Core. # ВСЕ значения-секреты ниже обязательно заменить перед запуском (особенно *_PASSWORD, *SigningKey). # ── PostgreSQL (внешний сервер, не в compose) ───────────────────────────── # База и пользователь создаются заранее на самом сервере БД (см. README — раздел "Развёртывание"). ConnectionStrings__Default=Host=10.10.1.134;Port=5432;Database=telewave;Username=telewave;Password=change-me-strong-db-password # ── JWT ─────────────────────────────────────────────────────────────────── Jwt__Issuer=TeleWave Jwt__Audience=TeleWave Jwt__SigningKey=change-me-min-32-chars-random-secret Jwt__AccessTokenMinutes=15 Jwt__RefreshTokenDays=30 # ── Сид администратора (создаётся при первом старте, если не существует) ─── # Логин в систему — по username. Email в системе не используется. AdminSeed__Username=admin AdminSeed__Password=change-me-strong-admin-password # ── Rate limiting ──────────────────────────────────────────────────────── # Лимит запросов/мин на auth-эндпоинты (login/register/refresh). По умолчанию 20. # RateLimiting__AuthPermitLimit=20 # ── Хранилище медиа ──────────────────────────────────────────────────────── # RootPath — путь ВНУТРИ контейнера; на хосте это bind-mount тома (см. docs/server-storage-setup.md # и volumes в docker-compose.yml). Не меняй RootPath без синхронного изменения тома. Storage__RootPath=/media Storage__SegmentSeconds=2 # Сколько сегментов держать в скользящем окне live-плейлиста. Storage__LiveWindowSegments=10 Storage__KeepOriginals=false # Порог свободного места, ниже которого загрузка отклоняется (10 ГБ). Storage__MinFreeSpaceBytes=10737418240 # ── Планировщик эфира ────────────────────────────────────────────────────── # На сколько дней вперёд держать расписание; сколько часов прошлого хранить; период тика. Scheduler__HorizonDays=3 Scheduler__RetentionHours=24 Scheduler__TickMinutes=30 # ── Обработка медиа (ffmpeg) ─────────────────────────────────────────────── Media__FfmpegPath=/usr/bin/ffmpeg Media__FfprobePath=/usr/bin/ffprobe # Максимальный размер загружаемого файла (20 ГБ). Media__MaxUploadBytes=21474836480 # Потоки ffmpeg — оставляем ядро API/раздаче (сервер 4 vCPU). Media__TranscodeThreads=3 # Период опроса каталога inbox/ сканером, секунды. Media__InboxScanSeconds=15 # Нормализация громкости при обработке (EBU R128 loudnorm) — все ролики одинаковой громкости. Media__NormalizeLoudness=true # Целевая громкость, LUFS (−16 типично для стриминга; тише — уменьшить). Media__LoudnessTargetLufs=-16 # ── ТВ-заставки «Сейчас/Далее» (bumpers) ─────────────────────────────────── # Общие для всех каналов параметры рендера. Оформление и правила (цвета, подписи, длительность, # интервал, только-между-разными) настраиваются на каждом канале в админке. # Bumpers__Width=1280 # Bumpers__Height=720 # Bumpers__FontFileSans=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf # Bumpers__FontFileSerif=/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf # Меняй при правке ЛОГИКИ рендера, чтобы пересобрать уже отрендеренные заставки. # Bumpers__TemplateVersion=1 # ── Метаданные шоу/серий (TMDb / OMDb) ───────────────────────────────────── # Ключи бесплатные: TMDb — themoviedb.org (Settings → API, v3 key), OMDb — omdbapi.com. # Без ключа источник просто не показывается в админке (ручной режим работает всегда). Metadata__Language=ru-RU Metadata__Tmdb__ApiKey= Metadata__Omdb__ApiKey= # ── ASP.NET Core ────────────────────────────────────────────────────────── ASPNETCORE_ENVIRONMENT=Production ASPNETCORE_HTTP_PORTS=8080 # ── Доверенные прокси (X-Forwarded-For/Proto) ────────────────────────────── # TLS терминируется вне compose внешним прокси/шлюзом. По умолчанию доверяется только loopback. # Если прокси стоит не на loopback, перечисли его через запятую. # ForwardedHeaders__KnownProxies=203.0.113.10 # ForwardedHeaders__KnownNetworks=172.18.0.0/16