Commit Graph

4 Commits

Author SHA1 Message Date
grendervill 1359821799 feat(deploy): адрес привязки для прокси по туннелю и загрузка сертификата TURN с внешнего узла
- compose: app и LiveKit публикуются на GLCHAT_APP_BIND/GLCHAT_LIVEKIT_BIND
  (по умолчанию 127.0.0.1, для схемы «VPS-прокси + домашний сервер» — адрес в WireGuard)
- install.sh: --app-bind-addr/--livekit-bind-addr, --turn-cert-remote* для
  загрузки сертификата по SSH, glchat-cert-refresh умеет тянуть его с внешнего узла
2026-09-19 20:28:29 +03:00
grendervill c5392349cd feat(turn): TURN/TLS с сертификатом, порты релея и автообновление сертификата
- install.sh: --turn-domain/--turn-cert/--turn-key, проверка наличия сертификата,
  копирование в /opt/glchat/certs, UFW открывает диапазон релея
- livekit.yaml.tpl: relay_range_start/end, cert_file/key_file
- compose: сертификаты монтируются в LiveKit read-only
- systemd timer glchat-cert-refresh: ежедневно копирует обновлённый сертификат
  из внешнего ACME-хранилища и перезапускает LiveKit при изменении
- smoke.sh: TURN-порты обязательны при включённом TURN + проверка CN сертификата
2026-09-19 20:22:57 +03:00
grendervill 741bb89bd3 fix(deploy): интерполяция compose без предупреждений о незаданных переменных
- пути томов и профиль Caddy задаются как GLCHAT_DATA_DIR/GLCHAT_CADDY_PROFILE
  (внутренний DATA_DIR=/app/data остаётся в environment сервиса app)
- значения записываются в .env, поэтому docker compose config проходит без
  предупреждений "variable is not set"
2026-09-19 19:35:38 +03:00
grendervill 99e0f72844 fix(deploy): надёжный рендер шаблонов и устойчивый цикл подстановки
- render_template: значения передаются через окружение (envsubst), а не
  подставляются в variadic-аргументы — многострочные значения больше не
  ломают разбор, неполный список не уводит bash в бесконечный цикл
- export "$pair": bash сам разбирает KEY=value (было export "${pair}")
- шаблоны переведены на ${VAR}-синтаксис, добавлен compose.test.yaml.tpl
  для тестового режима установщика (--skip-tls без публикации портов)
- dry-run не требует root и работает вне Linux (проверка ОС пропускается)
- install.sh: учитываются --livekit-*-порты и --turn-*-порты в livekit.yaml,
  исправлено экранирование апострофа в итоговой сводке
- scripts/debug-install.sh: трассировка установщика в контейнере
2026-09-19 19:26:26 +03:00