fix idp on started

This commit is contained in:
lendry
2026-06-24 16:53:06 +03:00
parent d16eccb4c2
commit e60d55f6bd
15 changed files with 709 additions and 52 deletions

View File

@@ -10,7 +10,7 @@
set -euo pipefail
SCRIPT_VERSION="2.2.1"
SCRIPT_VERSION="2.2.2"
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$ROOT_DIR"
@@ -228,7 +228,9 @@ lendry_host_nginx_configured() {
}
stop_docker_nginx() {
if docker_cmd ps -q -f name=lendry-id-nginx 2>/dev/null | grep -q .; then
local cid
cid="$(docker_cmd ps -q -f name=lendry-id-nginx 2>/dev/null || true)"
if [[ -n "$cid" ]]; then
log "Останавливаем контейнер lendry-id-nginx (используется системный Nginx)..."
docker_cmd compose --env-file .env --profile proxy stop nginx 2>/dev/null || true
docker_cmd rm -f lendry-id-nginx 2>/dev/null || true
@@ -325,6 +327,14 @@ compose_uses_proxy_profile() {
return 0
}
# Заполняет глобальный массив COMPOSE_STACK_CMD для docker compose
build_compose_stack_cmd() {
COMPOSE_STACK_CMD=(compose --env-file .env)
if compose_uses_proxy_profile; then
COMPOSE_STACK_CMD+=(--profile proxy)
fi
}
install_packages_apt() {
run_root apt-get update -qq
run_root apt-get install -y -qq ca-certificates curl git openssl gnupg lsb-release jq
@@ -968,11 +978,15 @@ recreate_host_port_services() {
[[ "$(env_get INSTALL_MODE local)" == "local" ]] && return 0
log "Пересоздание сервисов с пробросом портов на 127.0.0.1..."
local compose_cmd=(compose --env-file .env)
if compose_uses_proxy_profile; then
compose_cmd+=(--profile proxy)
fi
docker_cmd "${compose_cmd[@]}" up -d --force-recreate "${HOST_EDGE_SERVICES[@]}"
build_compose_stack_cmd
docker_cmd "${COMPOSE_STACK_CMD[@]}" up -d --force-recreate "${HOST_EDGE_SERVICES[@]}"
}
docker_publishes_port() {
local container="$1"
local host_port="$2"
docker_cmd port "$container" 2>/dev/null | grep -q "127.0.0.1:${host_port}" || \
docker_cmd port "$container" 2>/dev/null | grep -q ":${host_port}->"
}
ensure_host_upstreams() {
@@ -1470,8 +1484,11 @@ write_all_nginx_configs() {
[[ -n "${DOMAIN_MINIO_CONSOLE:-}" ]] && write_nginx_site_minio "$DOMAIN_MINIO_CONSOLE" minio-console minio-console "$ssl_type"
if [[ "$NGINX_MODE" == "host" ]]; then
run_root nginx -t
run_root systemctl reload nginx
if run_root nginx -t; then
run_root systemctl reload nginx || warn "Не удалось перезагрузить Nginx (systemctl reload nginx)"
else
warn "Конфигурация Nginx содержит ошибки — проверьте сертификаты в ${LOCAL_CERTS_DIR}"
fi
else
ok "Конфиги Nginx: ${LOCAL_CONF_DIR}"
fi
@@ -1613,13 +1630,10 @@ deploy_stack() {
prepare_compose_stack
verify_postgres_auth
local compose_cmd=(compose --env-file .env)
if compose_uses_proxy_profile; then
compose_cmd+=(--profile proxy)
fi
build_compose_stack_cmd
log "Сборка и запуск контейнеров (1020 минут при первом запуске)..."
docker_cmd "${compose_cmd[@]}" up -d --build
docker_cmd "${COMPOSE_STACK_CMD[@]}" up -d --build
recreate_host_port_services
ensure_host_upstreams
@@ -1696,9 +1710,14 @@ refresh_host_nginx_configs() {
local ssl_type
ssl_type="$(env_get SSL_TYPE none)"
case "$ssl_type" in
none) write_nginx_http_only ;;
selfsigned) write_all_nginx_configs "selfsigned" ;;
letsencrypt) write_all_nginx_configs "letsencrypt" ;;
none) write_nginx_http_only || warn "Не удалось записать HTTP-конфиги Nginx (нужен sudo?)" ;;
selfsigned)
generate_all_self_signed_certs
write_all_nginx_configs "selfsigned" || warn "Не удалось обновить Nginx (нужен sudo?)"
;;
letsencrypt)
write_all_nginx_configs "letsencrypt" || warn "Не удалось обновить Nginx (нужен sudo?)"
;;
esac
}
@@ -1817,23 +1836,25 @@ action_renew_ssl() {
action_fix_host_proxy() {
[[ -f .env ]] || fail "Файл .env не найден — сначала выполните ./install.sh --install"
load_env
NGINX_MODE="host"
env_set NGINX_MODE "host"
NGINX_MODE="host"
NON_INTERACTIVE=1
log "Исправление прокси: системный Nginx + проброс портов на 127.0.0.1..."
stop_docker_nginx
prepare_compose_stack
refresh_host_nginx_configs
log "Исправление прокси (host Nginx + порты 127.0.0.1)..."
local compose_cmd=(compose --env-file .env)
docker_cmd "${compose_cmd[@]}" up -d --force-recreate "${HOST_EDGE_SERVICES[@]}"
log "Шаг 1/4: остановка Docker Nginx..."
stop_docker_nginx
log "Шаг 2/4: удаление override (мог блокировать порты)..."
rm -f "$COMPOSE_OVERRIDE"
log "Шаг 3/4: пересоздание api-gateway, frontend, docs, media-ws..."
build_compose_stack_cmd
docker_cmd "${COMPOSE_STACK_CMD[@]}" up -d --force-recreate "${HOST_EDGE_SERVICES[@]}"
ensure_host_upstreams
if system_nginx_is_active; then
run_root nginx -t
run_root systemctl reload nginx
fi
log "Шаг 4/4: конфиги системного Nginx..."
refresh_host_nginx_configs
ok "Прокси исправлен — проверьте: curl -I http://127.0.0.1:3002"
show_status
@@ -1843,11 +1864,8 @@ action_restart() {
load_env
prepare_compose_stack
refresh_host_nginx_configs
local compose_cmd=(compose --env-file .env)
if compose_uses_proxy_profile; then
compose_cmd+=(--profile proxy)
fi
docker_cmd "${compose_cmd[@]}" up -d --build
build_compose_stack_cmd
docker_cmd "${COMPOSE_STACK_CMD[@]}" up -d --build
recreate_host_port_services
ensure_host_upstreams
ok "Контейнеры перезапущены"