From 50265c66b877dc644121c57528e7156c08a3b892 Mon Sep 17 00:00:00 2001 From: grendervill Date: Sat, 26 Sep 2026 15:32:59 +0300 Subject: [PATCH] =?UTF-8?q?fix(install):=20=D0=B3=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=8F=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF=D0=BE=20=D0=B0?= =?UTF-8?q?=D0=B4=D1=80=D0=B5=D1=81=D1=83=20=D0=BF=D1=80=D0=B8=D0=B2=D1=8F?= =?UTF-8?q?=D0=B7=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Установщик ждал /readyz на 127.0.0.1:8080, хотя во внешнем режиме и на стенде приложение слушает адрес туннеля (--app-bind-addr): установка всегда сообщала «приложение не ответило за 60 с» и «готовность не подтверждена», хотя инстанс был жив. Логика та же, что в deploy/update.sh, restore.sh и glchat-cli.sh (0.0.0.0/пусто → 127.0.0.1); адрес печатается в сообщении, чтобы причина была видна сразу. --- deploy/install.sh | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/deploy/install.sh b/deploy/install.sh index b19085f..9e73719 100755 --- a/deploy/install.sh +++ b/deploy/install.sh @@ -128,6 +128,17 @@ GLCHAT_UPDATES_DIR="${GLCHAT_UPDATES_DIR:-${TARGET_DIR}/updates}" GLCHAT_INSTALL_LOG="${TARGET_DIR}/install.log" GLCHAT_ENV_FILE="${TARGET_DIR}/.env" +# app_check_url печатает адрес /readyz с учётом привязки приложения: во внешнем +# режиме и на стенде приложение слушает не localhost, а адрес туннеля, поэтому +# проверка 127.0.0.1 всегда падала бы (AGENT.md 10.13). +app_check_url() { + local port="$1" host="${2:-}" + case "$host" in + 0.0.0.0 | "" | "::") host="127.0.0.1" ;; + esac + printf 'http://%s:%s/readyz' "$host" "$port" +} + usage() { cat <<'EOF' install.sh — установка glchat (AGENT.md 10). @@ -1660,16 +1671,17 @@ start_stack() { 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 + local ready_url waited=0 + ready_url="$(app_check_url "$APP_PORT" "$APP_BIND_ADDR")" + until curl -fsS "$ready_url" >/dev/null 2>&1; do waited=$((waited + 2)) if [ "$waited" -ge 60 ]; then - warn "приложение не ответило за 60 с — смотрите: glchat logs app" + warn "приложение не ответило за 60 с ($ready_url) — смотрите: glchat logs app" break fi sleep 2 done - curl -fsS "http://127.0.0.1:${APP_PORT}/readyz" >/dev/null 2>&1 && ok "приложение готово" || warn "готовность не подтверждена" + curl -fsS "$ready_url" >/dev/null 2>&1 && ok "приложение готово ($ready_url)" || warn "готовность не подтверждена ($ready_url)" } bootstrap_admin() {