99e0f72844
- 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: трассировка установщика в контейнере
68 lines
1.8 KiB
Smarty
68 lines
1.8 KiB
Smarty
# Сгенерировано deploy/install.sh — не редактируйте вручную.
|
||
# Режим: внешний reverse proxy (--external-proxy). Собственный Caddy не запускается:
|
||
# блок ниже нужно вставить в конфиг вашего прокси (например, Caddyfile) и перезагрузить его.
|
||
# Приложение и LiveKit слушают только 127.0.0.1.
|
||
{
|
||
email ${ACME_EMAIL}
|
||
}
|
||
|
||
(glchat_security_headers) {
|
||
header {
|
||
Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
||
X-Content-Type-Options "nosniff"
|
||
Referrer-Policy "strict-origin-when-cross-origin"
|
||
X-Frame-Options "DENY"
|
||
-Server
|
||
}
|
||
}
|
||
|
||
# --- glchat: начало блока -------------------------------------------------
|
||
${DOMAIN} {
|
||
encode zstd gzip
|
||
import glchat_security_headers
|
||
log {
|
||
output file /opt/glchat/caddy/logs/access.log {
|
||
roll_size 10mb
|
||
roll_keep 3
|
||
}
|
||
format json
|
||
}
|
||
|
||
# WebSocket Gateway (фаза 1): длинные соединения без таймаутов.
|
||
@gateway path /gateway
|
||
handle @gateway {
|
||
reverse_proxy 127.0.0.1:${APP_PORT} {
|
||
transport http {
|
||
read_timeout 1h
|
||
write_timeout 1h
|
||
}
|
||
}
|
||
}
|
||
|
||
# LiveKit сигналинг (WebSocket).
|
||
@rtc path /rtc*
|
||
handle @rtc {
|
||
reverse_proxy 127.0.0.1:${LIVEKIT_WS_PORT} {
|
||
transport http {
|
||
read_timeout 1h
|
||
write_timeout 1h
|
||
}
|
||
}
|
||
}
|
||
|
||
# API и статика клиента.
|
||
handle {
|
||
reverse_proxy 127.0.0.1:${APP_PORT}
|
||
}
|
||
}
|
||
|
||
# Пользовательский контент — отдельный origin (изоляция cookies/CSP).
|
||
${FILES_DOMAIN} {
|
||
encode zstd gzip
|
||
import glchat_security_headers
|
||
handle {
|
||
reverse_proxy 127.0.0.1:${APP_PORT}
|
||
}
|
||
}
|
||
# --- glchat: конец блока --------------------------------------------------
|