96 lines
7.5 KiB
Bash
96 lines
7.5 KiB
Bash
# TeleWave — пример переменных окружения.
|
||
# Скопируй в .env и заполни значения. Ключи вида Section__Key биндятся в IOptions<T> 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
|
||
# TTL stream-токена (cookie tw_stream), минуты. Короткий срок ограничивает окно доступа после
|
||
# блокировки/логаута; фронт перевыпускает cookie, пока идёт просмотр. По умолчанию 30.
|
||
# Storage__StreamTokenMinutes=30
|
||
|
||
# ── Планировщик эфира ──────────────────────────────────────────────────────
|
||
# На сколько дней вперёд держать расписание; сколько часов прошлого хранить; период тика.
|
||
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 (0 — авто/все ядра).
|
||
Media__TranscodeThreads=3
|
||
# Сколько файлов транскодировать одновременно (1 — по умолчанию, как раньше).
|
||
# Тюнинг под ядра: обычно TranscodeThreads × MaxParallelTranscodes ≈ число ядер.
|
||
# 4 vCPU: Threads=3, Parallel=1 (или Threads=2, Parallel=2)
|
||
# 8 vCPU: Threads=4, Parallel=2 ← лучший throughput на пачках серий
|
||
# (или Threads=6, Parallel=1 — если важнее скорость одного файла)
|
||
# Память: один 1080p-транскод ~0.5 ГБ; Parallel=2 требует ~1 ГБ + база API.
|
||
Media__MaxParallelTranscodes=1
|
||
# Период опроса каталога inbox/ сканером, секунды.
|
||
Media__InboxScanSeconds=15
|
||
# Нормализация громкости при обработке (EBU R128 loudnorm) — все ролики одинаковой громкости.
|
||
Media__NormalizeLoudness=true
|
||
# Целевая громкость, LUFS (−16 типично для стриминга; тише — уменьшить).
|
||
Media__LoudnessTargetLufs=-16
|
||
# Таймауты вызовов ffprobe/ffmpeg, секунды (0 — без таймаута): не дают зависшему процессу вечно
|
||
# держать слот параллелизма/тик планировщика. Поднять TranscodeTimeoutSeconds для очень длинных файлов.
|
||
# Media__ProbeTimeoutSeconds=120
|
||
# Media__TranscodeTimeoutSeconds=1800
|
||
|
||
# ── ТВ-заставки «Сейчас/Далее» (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
|