fix: restore production OpenClaw runtime health
This commit is contained in:
@@ -61,7 +61,7 @@ JWT_ISSUER=nexus
|
||||
JWT_AUDIENCE=nexus-web
|
||||
BOOTSTRAP_OWNER_EMAIL=vmbao62@hotmail.de
|
||||
BOOTSTRAP_OWNER_PASSWORD=${ENV_BOOTSTRAP_OWNER_PASSWORD:-}
|
||||
OPENCLAW_BASE_URL=http://host.docker.internal:18789
|
||||
OPENCLAW_BASE_URL=http://openclaw-gateway:18789
|
||||
OPENCLAW_REQUIRED_VERSION=2026.7.1
|
||||
OPENCLAW_GATEWAY_TOKEN=${ENV_OPENCLAW_TOKEN:-}
|
||||
OPENCLAW_GATEWAY_PASSWORD=
|
||||
@@ -141,11 +141,17 @@ for container in nexus-api-1 nexus-web-1; do
|
||||
done
|
||||
|
||||
echo "Checking live health"
|
||||
health_is_healthy() {
|
||||
health_body="$(curl -fsS --max-time 10 "$BASE_URL/health")" || return 1
|
||||
printf '%s' "$health_body" |
|
||||
grep -Eq '^[[:space:]]*\{[[:space:]]*"status"[[:space:]]*:[[:space:]]*"Healthy"'
|
||||
}
|
||||
|
||||
retry=0
|
||||
while [ "$retry" -lt 6 ]; do
|
||||
retry=$((retry + 1))
|
||||
if curl -fsS --max-time 10 "$BASE_URL/health" >/dev/null; then
|
||||
echo "Health check passed"
|
||||
if health_is_healthy; then
|
||||
echo "Health check passed with Healthy runtime and database state"
|
||||
break
|
||||
fi
|
||||
if [ "$retry" -eq 6 ]; then
|
||||
@@ -170,6 +176,16 @@ check() {
|
||||
fi
|
||||
}
|
||||
|
||||
check_health() {
|
||||
if health_is_healthy; then
|
||||
printf '%-28s HTTP 200 (Healthy)\n' "Health"
|
||||
pass=$((pass + 1))
|
||||
else
|
||||
printf '%-28s not healthy\n' "Health"
|
||||
fail=$((fail + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
check_post() {
|
||||
path="$1"
|
||||
expected="$2"
|
||||
@@ -184,7 +200,7 @@ check_post() {
|
||||
}
|
||||
|
||||
check "/dashboard" "200" "Dashboard"
|
||||
check "/health" "200" "Health"
|
||||
check_health
|
||||
check "/api/v1/operations/snapshot" "401" "Operations auth"
|
||||
check_post "/api/v1/chat" "401" "Chat auth"
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ jobs:
|
||||
JWT_AUDIENCE=nexus-web
|
||||
BOOTSTRAP_OWNER_EMAIL=vmbao62@hotmail.de
|
||||
BOOTSTRAP_OWNER_PASSWORD=${ENV_BOOTSTRAP_OWNER_PASSWORD:-}
|
||||
OPENCLAW_BASE_URL=http://host.docker.internal:18789
|
||||
OPENCLAW_BASE_URL=http://openclaw-gateway:18789
|
||||
OPENCLAW_GATEWAY_TOKEN=${ENV_OPENCLAW_TOKEN}
|
||||
OPENCLAW_GATEWAY_PASSWORD=
|
||||
EOF
|
||||
@@ -188,9 +188,10 @@ jobs:
|
||||
WAIT=1
|
||||
while [ $RETRY -lt $MAX ]; do
|
||||
RETRY=$((RETRY + 1))
|
||||
if curl -sf --max-time 10 https://nexus.noveria.net/health; then
|
||||
HEALTH_BODY=$(curl -sf --max-time 10 https://nexus.noveria.net/health || true)
|
||||
if printf '%s' "$HEALTH_BODY" | grep -Eq '^[[:space:]]*\{[[:space:]]*"status"[[:space:]]*:[[:space:]]*"Healthy"'; then
|
||||
echo ""
|
||||
echo "✅ Health check passed (attempt $RETRY/$MAX)"
|
||||
echo "✅ Health check passed with Healthy runtime and database state (attempt $RETRY/$MAX)"
|
||||
exit 0
|
||||
fi
|
||||
echo "⏳ Attempt $RETRY/$MAX failed, waiting ${WAIT}s..."
|
||||
@@ -225,8 +226,21 @@ jobs:
|
||||
fi
|
||||
}
|
||||
|
||||
check_health() {
|
||||
local body
|
||||
body=$(curl -sf --max-time 10 "${BASE}/health" || true)
|
||||
printf " %-25s" "Health API:"
|
||||
if printf '%s' "$body" | grep -Eq '^[[:space:]]*\{[[:space:]]*"status"[[:space:]]*:[[:space:]]*"Healthy"'; then
|
||||
echo " HTTP 200 Healthy ✅"
|
||||
PASS=$((PASS + 1))
|
||||
else
|
||||
echo " not healthy ❌"
|
||||
FAIL=$((FAIL + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
check "/dashboard" "Dashboard" 200
|
||||
check "/health" "Health API" 200
|
||||
check_health
|
||||
check "/api/v1/operations/snapshot" "Operations API (auth)" 401
|
||||
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user