Files
glchat/deploy/caddy/external-proxy.conf.tpl
grendervill a835903938 fix(install,e2e): установка на VPS владельца — четыре дефекта шаблонов и хелперов
Установка на VPS (Debian 13, 1 vCPU/2 ГБ) с внешним прокси на том же хосте
вскрыла дефекты, которые не проявлялись на стенде:

- compose: с --no-turn порты TURN всё равно публиковались, и стек не стартовал
  («failed to bind host port 0.0.0.0:3478/udp» — порт держит чужой coturn).
  Теперь строки портов TURN подставляет установщик (GLCHAT_TURN_PORTS).
- LiveKit: добавлен отдельный адрес публикации медиапортов
  (--livekit-media-bind-addr / GLCHAT_LIVEKIT_MEDIA_BIND): сигналинг остаётся
  внутренним для прокси, а 7881/tcp и 7882/udp доступны клиентам из интернета.
- external-proxy.conf: адреса апстримов берутся из фактической привязки
  (--app-bind-addr/--livekit-bind-addr), а не жёсткого 127.0.0.1.
- при --no-files-subdomain шаблоны внешнего прокси и встроенного Caddy писали
  два блока с одним адресом сайта (Caddy отвергает такой конфиг и в embedded
  режиме установка ломалась целиком): блок пользовательского контента теперь
  появляется только при отдельном домене (GLCHAT_FILES_BLOCK).
- e2e: postWithRetry/repeat429 читают retry_after_ms из конверта ошибки
  ({"error":{...}}) — без этого хелперы сдавались раньше, чем сервер разрешал
  повтор, и регистрация пробных аккаунтов на свежем инстансе падала.
- e2e: voice.spec.ts ищет комнату «Голос» точным именем: пока сайдбар
  дорисовывает сервер, видны комнаты предыдущего («Голос A»/«Голос B»).
2026-09-27 17:40:58 +03:00

62 lines
1.8 KiB
Smarty
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Сгенерировано deploy/install.sh — не редактируйте вручную.
# Режим: внешний reverse proxy (--external-proxy). Собственный Caddy не запускается:
# блок ниже нужно вставить в конфиг вашего прокси (например, Caddyfile) и перезагрузить его.
# Приложение и LiveKit слушают ${APP_BIND}:${APP_PORT} и ${LIVEKIT_BIND}:${LIVEKIT_WS_PORT}
# (по умолчанию 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 ${APP_BIND}:${APP_PORT} {
transport http {
read_timeout 1h
write_timeout 1h
}
}
}
# LiveKit сигналинг (WebSocket).
@rtc path /rtc*
handle @rtc {
reverse_proxy ${LIVEKIT_BIND}:${LIVEKIT_WS_PORT} {
transport http {
read_timeout 1h
write_timeout 1h
}
}
}
# API и статика клиента.
handle {
reverse_proxy ${APP_BIND}:${APP_PORT}
}
}
${GLCHAT_FILES_BLOCK}
# --- glchat: конец блока --------------------------------------------------