From f423f512f8ca27df0d34a970dd8822da370b220f Mon Sep 17 00:00:00 2001 From: lendry Date: Wed, 1 Jul 2026 18:15:10 +0300 Subject: [PATCH] fix and update --- install.sh | 70 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index f063b87..f24c618 100644 --- a/install.sh +++ b/install.sh @@ -10,7 +10,7 @@ set -euo pipefail -SCRIPT_VERSION="2.6.0" +SCRIPT_VERSION="2.6.1" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$ROOT_DIR" @@ -451,6 +451,58 @@ recreate_docker_nginx() { wait_for_service "nginx" 60 } +# После пересборки стека (п.11 migrate-rebuild): поднять Nginx, если он не запущен. +ensure_nginx_after_stack_rebuild() { + load_env + prepare_compose_stack + build_compose_stack_cmd + + [[ -n "$(env_get DOMAIN_API "")" ]] || return 0 + [[ "$(env_get INSTALL_MODE local)" == "local" ]] && return 0 + + if [[ "$(env_get NGINX_MODE docker)" == "docker" ]]; then + log "Запуск и синхронизация Docker Nginx (lendry-id-nginx)..." + ensure_nginx_gateway_watch_script + patch_legacy_nginx_proxy_pass || true + + if compose_uses_proxy_profile; then + if docker_nginx_container_running; then + recreate_docker_nginx + else + compose_build_and_up nginx + wait_for_service "nginx" 60 + fi + elif docker_nginx_ports_available; then + warn "compose_uses_proxy_profile=false — принудительный запуск nginx..." + compose_build_and_up nginx + wait_for_service "nginx" 60 + else + warn "Порты ${NGINX_HTTP_PORT:-80}/${NGINX_HTTPS_PORT:-443} заняты — Docker Nginx не запущен" + warn "Выполните: ./install.sh --fix-all" + return 1 + fi + + sync_nginx_after_api_gateway_restart || true + sync_nginx_after_edge_restart || true + reload_docker_nginx || true + + if ! docker_nginx_container_running; then + fail "Контейнер lendry-id-nginx не запущен. Выполните: ./install.sh --fix-all" + fi + ok "Docker Nginx (lendry-id-nginx) запущен" + return 0 + fi + + log "Синхронизация системного Nginx (NGINX_MODE=host)..." + refresh_host_nginx_configs || true + recreate_host_port_services || true + ensure_host_upstreams || true + if system_nginx_is_active || lendry_host_nginx_configured; then + run_root nginx -t >/dev/null 2>&1 && run_root systemctl reload nginx 2>/dev/null || true + fi + ok "Системный Nginx синхронизирован" +} + ensure_nginx_gateway_watch_script() { local watch_script="${ROOT_DIR}/infra/nginx/99-idp-gateway-watch.sh" [[ -f "$watch_script" ]] || return 0 @@ -1522,7 +1574,9 @@ action_migrate_rebuild() { run_prisma_migrations log "Шаг 3/4: Пересборка backend и frontend..." - compose_build_and_up ldap-auth sso-core + compose_build_and_up ldap-auth + wait_for_service ldap-auth 90 + compose_build_and_up sso-core wait_for_service sso-core 120 compose_build_and_up api-gateway wait_for_service api-gateway 90 @@ -1531,13 +1585,15 @@ action_migrate_rebuild() { wait_for_service frontend 90 wait_for_service docs 60 - log "Шаг 4/4: Nginx и проверка..." - refresh_host_nginx_configs || true - sync_nginx_after_api_gateway_restart || true - sync_nginx_after_edge_restart || true - reload_docker_nginx || true + log "Шаг 4/4: Nginx, прокси и проверка..." + ensure_nginx_after_stack_rebuild || warn "Nginx не поднялся — выполните ./install.sh --fix-all" + post_deploy_proxy_verify 0 || true diagnose_common_issues || true + if compose_uses_proxy_profile && ! docker_nginx_container_running; then + fail "Сайт недоступен: lendry-id-nginx не запущен. Выполните: ./install.sh --fix-all" + fi + ok "Миграция и пересборка завершены" echo "" echo " После git pull используйте этот пункт или: ./install.sh --migrate-rebuild --yes"