28 lines
893 B
Bash
28 lines
893 B
Bash
|
|
#!/bin/bash
|
||
|
|
# Healthcheck for kb-query (FastAPI search API -> kb-postgres + Ollama @ SOLARIA)
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
|
||
|
|
# The port is bound to the LAN interface only, so localhost won't answer.
|
||
|
|
# Read the bind IP from .env (same file compose uses for the port mapping).
|
||
|
|
if [ -f "$SCRIPT_DIR/.env" ]; then
|
||
|
|
# shellcheck disable=SC1091
|
||
|
|
source "$SCRIPT_DIR/.env"
|
||
|
|
fi
|
||
|
|
BIND_IP="${LAN_BIND_IP:-127.0.0.1}"
|
||
|
|
|
||
|
|
# Container must be running
|
||
|
|
if ! docker ps --filter "name=kb-query" --filter "status=running" | grep -qw "kb-query"; then
|
||
|
|
echo "[FAIL] kb-query container is not running"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Health endpoint must answer with the ok marker
|
||
|
|
if ! curl -sf "http://${BIND_IP}:8230/healthz" | grep -q '"status":"ok"\|"status": "ok"'; then
|
||
|
|
echo "[FAIL] kb-query is not responding on ${BIND_IP}:8230"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "[OK] kb-query is healthy"
|
||
|
|
exit 0
|