fix and update
This commit is contained in:
41
install.sh
41
install.sh
@@ -3046,7 +3046,11 @@ verify_fedcm_endpoints() {
|
||||
return 0
|
||||
elif [[ "$code" == "000" ]]; then
|
||||
echo -e " ${RED}✘${NC} FedCM web-identity недоступен (${apex_domain}) — ERR_CERT или DNS"
|
||||
echo " Добавьте ${apex_domain} в hosts/DNS и примите сертификат (FedCM всегда запрашивает eTLD+1)."
|
||||
echo " Добавьте ${apex_domain} в hosts/DNS и примите сертификат в браузере на каждом клиенте:"
|
||||
echo " откройте https://${apex_domain}/.well-known/web-identity → «Дополнительно» → принять риск."
|
||||
if [[ "$(env_get SSL_TYPE none)" == "selfsigned" ]]; then
|
||||
echo " Надёжнее: импортируйте ${LOCAL_CERTS_DIR}/shared-intranet/fullchain.pem в «Доверенные корневые центры»."
|
||||
fi
|
||||
return 1
|
||||
elif [[ "$code" == "502" ]]; then
|
||||
echo -e " ${RED}✘${NC} FedCM web-identity → 502 (${apex_domain}) — проверьте nginx/conf.d/${NGINX_PREFIX}-fedcm-apex.conf"
|
||||
@@ -3084,6 +3088,40 @@ validate_ssl_cert_covers_apex() {
|
||||
return 1
|
||||
}
|
||||
|
||||
# Синхронизирует PUBLIC_* из .env в SystemSetting — иначе FedCM login_url остаётся localhost:3002.
|
||||
sync_public_system_settings() {
|
||||
load_env
|
||||
[[ -n "${PUBLIC_API_URL:-}" || -n "${PUBLIC_FRONTEND_URL:-}" ]] || return 0
|
||||
if ! docker_cmd ps --format '{{.Names}}' 2>/dev/null | grep -q '^lendry-id-postgres$'; then
|
||||
warn "Postgres недоступен — PUBLIC_* в БД не обновлены (FedCM login_url может указывать на localhost)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local pg_user pg_pass pg_db sql
|
||||
pg_user="$(env_get POSTGRES_USER lendry)"
|
||||
pg_pass="$(env_get POSTGRES_PASSWORD lendry_password)"
|
||||
pg_db="$(env_get POSTGRES_DB lendry_id)"
|
||||
sql=""
|
||||
|
||||
if [[ -n "${PUBLIC_API_URL:-}" ]]; then
|
||||
sql+="UPDATE \"SystemSetting\" SET value='${PUBLIC_API_URL}', \"updatedAt\"=NOW() WHERE key='PUBLIC_API_URL';"
|
||||
fi
|
||||
if [[ -n "${PUBLIC_FRONTEND_URL:-}" ]]; then
|
||||
sql+="UPDATE \"SystemSetting\" SET value='${PUBLIC_FRONTEND_URL}', \"updatedAt\"=NOW() WHERE key='PUBLIC_FRONTEND_URL';"
|
||||
fi
|
||||
if [[ -n "${DOMAIN_FRONTEND:-}" ]]; then
|
||||
sql+="UPDATE \"SystemSetting\" SET value='${DOMAIN_FRONTEND}', \"updatedAt\"=NOW() WHERE key='PROJECT_DOMAIN';"
|
||||
fi
|
||||
|
||||
[[ -n "$sql" ]] || return 0
|
||||
if docker_cmd exec -e PGPASSWORD="$pg_pass" lendry-id-postgres \
|
||||
psql -U "$pg_user" -d "$pg_db" -v ON_ERROR_STOP=1 -c "$sql" >/dev/null 2>&1; then
|
||||
ok "SystemSetting: PUBLIC_API_URL / PUBLIC_FRONTEND_URL синхронизированы из .env"
|
||||
else
|
||||
warn "Не удалось обновить PUBLIC_* в SystemSetting — проверьте значения в админке → Настройки"
|
||||
fi
|
||||
}
|
||||
|
||||
write_all_nginx_configs() {
|
||||
ensure_nginx_mode_for_config_write
|
||||
local ssl_type="${1:-$(env_get SSL_TYPE none)}"
|
||||
@@ -4018,6 +4056,7 @@ action_fix_all_errors() {
|
||||
check_sso_idp_api_proxy || fail "SSO /idp-api/health недоступен — см. nginx/conf.d/${NGINX_PREFIX}-frontend.conf"
|
||||
check_sso_frontend_root || fail "SSO / → 502 — главная страница недоступна (502 Bad Gateway в браузере)"
|
||||
verify_sso_idp_api_burst || warn "Нестабильный /idp-api/health — при 502 в браузере: docker compose --profile proxy exec nginx nginx -s reload"
|
||||
sync_public_system_settings || true
|
||||
validate_ssl_cert_covers_apex || true
|
||||
verify_fedcm_endpoints || warn "FedCM endpoints недоступны — см. DNS/SSL для eTLD+1 и nginx/conf.d/${NGINX_PREFIX}-fedcm-apex.conf"
|
||||
if ! docker_nginx_container_running; then
|
||||
|
||||
Reference in New Issue
Block a user