Переносит рабочие правки продакшен-сервера в репозиторий воспроизводимо: - nginx: HTTPS-блок на 443 (TLS1.2/1.3, http->https redirect, ACME webroot, X-Forwarded-Proto) добавлен в nginx.conf.template. Список доменов и имя каталога сертификата — параметры (NGINX_SERVER_NAMES, NGINX_CERT_NAME), не хардкод. Рендерится штатным entrypoint'ом образа nginx (envsubst-on-templates). - Самоподписанный dev-сертификат генерируется на старте контейнера (docker-entrypoint-certs.sh), если реальный Let's Encrypt не смонтирован — иначе `docker compose up` без профиля ломался бы локально без реальных сертификатов. - healthcheck nginx переключён на /healthz (без TLS-редиректа), иначе http://127.0.0.1:80/ после добавления 443-редиректа всегда unhealthy. - coturn/turnserver.conf и livekit/livekit.yaml переведены в *.template — оба образа не читают env для статических полей (static-auth-secret, use_external_ip/node_ip, webhook.api_key), поэтому реальные файлы генерируются перед стартом стека скриптом deploy/render-templates.sh (вызывается install.sh). Секреты/IP — только в .env, не в git. - docker-compose.yml: LIVEKIT_API_KEY/SECRET везде (backend, livekit, egress) через ${VAR:?} без небезопасных дефолтов; порт 443 + монтирование /etc/letsencrypt (ro) и certbot-webroot у nginx; build-args VITE_LIVEKIT_URL/NEXT_PUBLIC_LIVEKIT_URL для frontend (сейчас не используются кодом, оставлены про запас).
48 lines
2.5 KiB
Plaintext
48 lines
2.5 KiB
Plaintext
# Конфигурация coturn. Верифицировано по официальной документации
|
||
# (github.com/coturn/coturn/wiki/turnserver, docker/coturn/README.md).
|
||
# Запускается с network_mode: host в docker-compose.yml (рекомендация coturn
|
||
# для широких диапазонов UDP relay-портов).
|
||
#
|
||
# coturn подставляет $(VAR) при старте ТОЛЬКО когда вызывается через
|
||
# CLI-флаги entrypoint'а образа — при передаче файла конфигурации (как
|
||
# здесь, `-c /etc/coturn/turnserver.conf`) подстановка не работает. Поэтому
|
||
# реальные static-auth-secret/realm/external-ip рендерятся из этого шаблона
|
||
# в turnserver.conf скриптом deploy/render-templates.sh (envsubst) ПЕРЕД
|
||
# `docker compose up`. Не редактируйте turnserver.conf напрямую — правки
|
||
# затрутся при следующем рендере.
|
||
|
||
listening-port=3478
|
||
# Установить 5349 в проде для TURN over TLS, если будут смонтированы
|
||
# реальные TLS-сертификаты (см. закомментированные cert/pkey ниже).
|
||
tls-listening-port=5349
|
||
|
||
# Диапазон relay-портов для TURN-аллокаций.
|
||
min-port=49160
|
||
max-port=49200
|
||
|
||
# --- Long-term credential mechanism через shared secret (TURN REST API) ---
|
||
use-auth-secret
|
||
static-auth-secret=${TURN_STATIC_AUTH_SECRET}
|
||
realm=${TURN_REALM}
|
||
|
||
# Обязателен для WebRTC-клиентов (добавляет STUN FINGERPRINT атрибут).
|
||
fingerprint
|
||
|
||
# Без CLI/telnet admin-интерфейса в этой поставке.
|
||
no-cli
|
||
|
||
# Раскомментировать и смонтировать реальные сертификаты, чтобы включить
|
||
# TURN over TLS на 443:
|
||
# cert=/etc/coturn/certs/cert.pem
|
||
# pkey=/etc/coturn/certs/key.pem
|
||
|
||
log-file=stdout
|
||
simple-log
|
||
|
||
# Внешний IP сервера — обязателен для клиентов вне docker-сети
|
||
# (network_mode: host здесь не даёт coturn определить публичный IP
|
||
# автоматически). Для локальной разработки (без внешних участников)
|
||
# достаточно 127.0.0.1 (значение по умолчанию в .env.example); в проде —
|
||
# реальный внешний IP/домен сервера.
|
||
external-ip=${TURN_EXTERNAL_IP}
|