fix(install): LiveKit перезапускается при изменении конфига

LiveKit читает livekit.yaml только при старте, а compose не замечает правок в
примонтированном файле — из-за этого вебхуки не включались после обновления.
Установщик сравнивает sha256 конфига с сохранённым и перезапускает сервис.
This commit is contained in:
2026-09-20 18:38:54 +03:00
parent 9e7d023f7e
commit ecd7b3be10
27 changed files with 2637 additions and 37 deletions
+25
View File
@@ -1491,6 +1491,26 @@ build_or_pull_image() {
ok "образ собран: $(docker images --format '{{.Repository}}:{{.Tag}} {{.Size}}' "$APP_IMAGE" | head -1)"
}
# restart_livekit_if_config_changed сравнивает хэш livekit.yaml с сохранённым и
# перезапускает контейнер: иначе новые настройки (например вебхуки) не применятся.
restart_livekit_if_config_changed() {
local config="${TARGET_DIR}/livekit/livekit.yaml"
local marker="${TARGET_DIR}/.livekit-config.sha256"
[ -f "$config" ] || return 0
local hash
hash="$(sha256sum "$config" | awk '{print $1}')"
if [ -f "$marker" ] && [ "$(cat "$marker")" = "$hash" ]; then
return 0
fi
info "конфиг LiveKit изменился — перезапускаем сервис"
if (cd "$TARGET_DIR" && docker compose -f compose.yaml restart livekit >/dev/null 2>&1); then
printf '%s' "$hash" >"$marker"
ok "LiveKit перезапущен с новым конфигом"
else
warn "не удалось перезапустить LiveKit: проверьте вручную (glchat restart livekit)"
fi
}
start_stack() {
if [ "$SKIP_IMAGE" = "1" ]; then
return 0
@@ -1504,6 +1524,11 @@ start_stack() {
[ "$PROXY_MODE" = "embedded" ] && compose_args+=(--profile embedded-proxy)
(cd "$TARGET_DIR" && docker compose "${compose_args[@]}" pull --quiet 2>/dev/null || true)
(cd "$TARGET_DIR" && docker compose "${compose_args[@]}" up -d --remove-orphans) || die "не удалось запустить стек"
# LiveKit читает конфиг только при старте, а compose не видит изменений в
# примонтированном файле: перезапускаем сервис, если конфиг изменился.
restart_livekit_if_config_changed
info "ожидаем готовности приложения"
local waited=0
until curl -fsS "http://127.0.0.1:${APP_PORT}/readyz" >/dev/null 2>&1; do