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: трассировка установщика в контейнере
This commit is contained in:
2026-09-19 19:26:26 +03:00
parent 2bf7101f2d
commit 99e0f72844
13 changed files with 355 additions and 116 deletions
+6 -6
View File
@@ -1,10 +1,10 @@
# Сгенерировано deploy/install.sh — не редактируйте вручную.
# Ограничения против флуда и перебора (AGENT.md 9.7). Один IP: не более {{CONNLIMIT}} соединений
# к 80/443 и не более {{CONN_RATE}} новых соединений в секунду.
# Ограничения против флуда и перебора (AGENT.md 9.7). Один IP: не более ${CONNLIMIT} соединений
# к 80/443 и не более ${CONN_RATE} новых соединений в секунду.
table inet glchat {
set web_ports {
type inet_service
elements = { {{WEB_PORTS}} }
elements = { ${WEB_PORTS} }
}
chain input_guard {
@@ -14,12 +14,12 @@ table inet glchat {
ct state established,related accept
# Ограничение одновременных соединений с одного источника.
tcp dport @web_ports ct state new meter glchat_connlimit size 65535 { ip saddr limit over {{CONNLIMIT}} } drop
tcp dport @web_ports ct state new meter glchat_connlimit size 65535 { ip saddr limit over ${CONNLIMIT} } drop
# Ограничение скорости появления новых соединений.
tcp dport @web_ports ct state new meter glchat_rate size 65535 { ip saddr limit rate over {{CONN_RATE}}/second } drop
tcp dport @web_ports ct state new meter glchat_rate size 65535 { ip saddr limit rate over ${CONN_RATE}/second } drop
# Защита от SYN-флуда.
tcp flags & (fin|syn|rst|ack) == syn limit rate over {{SYN_RATE}}/second drop
tcp flags & (fin|syn|rst|ack) == syn limit rate over ${SYN_RATE}/second drop
}
}