Docker Compose with 24+ services: - PostgreSQL (PostGIS), Valkey, MinIO, Qdrant - Vault (PKI/TLS), Nginx (Reverse Proxy) - Backend Core API, Consent Service, Billing Service - RAG Service, Embedding Service - Gitea, Woodpecker CI/CD - Night Scheduler, Health Aggregator - Jitsi (Web/XMPP/JVB/Jicofo), Mailpit Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
92 lines
2.5 KiB
Bash
92 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# =========================================================
|
|
# BreakPilot — Health Check for All Projects
|
|
# =========================================================
|
|
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
check_service() {
|
|
local name=$1
|
|
local url=$2
|
|
local timeout=${3:-5}
|
|
|
|
if curl -sf --max-time $timeout "$url" > /dev/null 2>&1; then
|
|
echo -e " ${GREEN}✓${NC} $name"
|
|
return 0
|
|
else
|
|
echo -e " ${RED}✗${NC} $name ($url)"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
echo "========================================="
|
|
echo " BreakPilot Health Check"
|
|
echo "========================================="
|
|
|
|
TOTAL=0
|
|
OK=0
|
|
|
|
echo ""
|
|
echo "CORE Infrastructure:"
|
|
for svc in \
|
|
"Health Aggregator|http://127.0.0.1:8099/health" \
|
|
"PostgreSQL|http://127.0.0.1:8099/health" \
|
|
"Backend Core|http://127.0.0.1:8000/health|10" \
|
|
"Embedding Service|http://127.0.0.1:8087/health|10" \
|
|
"RAG Service|http://127.0.0.1:8097/health|10" \
|
|
"Consent Service|http://127.0.0.1:8081/health|5" \
|
|
"Gitea|http://127.0.0.1:3003/api/healthz" \
|
|
"Mailpit|http://127.0.0.1:8025/" \
|
|
; do
|
|
IFS='|' read -r name url timeout <<< "$svc"
|
|
TOTAL=$((TOTAL + 1))
|
|
if check_service "$name" "$url" "$timeout"; then
|
|
OK=$((OK + 1))
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "LEHRER Platform:"
|
|
for svc in \
|
|
"Studio v2|https://127.0.0.1/|5" \
|
|
"Admin Lehrer|https://127.0.0.1:3002/|5" \
|
|
"Backend Lehrer|https://127.0.0.1:8001/health|10" \
|
|
"Klausur Service|https://127.0.0.1:8086/health|10" \
|
|
"Voice Service|https://127.0.0.1:8091/health|5" \
|
|
"Website|https://127.0.0.1:3000/|5" \
|
|
; do
|
|
IFS='|' read -r name url timeout <<< "$svc"
|
|
TOTAL=$((TOTAL + 1))
|
|
if check_service "$name" "$url" "$timeout"; then
|
|
OK=$((OK + 1))
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "COMPLIANCE Platform:"
|
|
for svc in \
|
|
"Admin Compliance|https://127.0.0.1:3007/|5" \
|
|
"Backend Compliance|https://127.0.0.1:8002/health|10" \
|
|
"AI Compliance SDK|https://127.0.0.1:8093/health|10" \
|
|
"Developer Portal|https://127.0.0.1:3006/|5" \
|
|
; do
|
|
IFS='|' read -r name url timeout <<< "$svc"
|
|
TOTAL=$((TOTAL + 1))
|
|
if check_service "$name" "$url" "$timeout"; then
|
|
OK=$((OK + 1))
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "========================================="
|
|
echo -e " Result: ${OK}/${TOTAL} services healthy"
|
|
if [ $OK -eq $TOTAL ]; then
|
|
echo -e " ${GREEN}All services are up!${NC}"
|
|
else
|
|
echo -e " ${RED}$((TOTAL - OK)) services are down${NC}"
|
|
fi
|
|
echo "========================================="
|