123 lines
3.2 KiB
Bash
Executable File
123 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Health Check Script for House of Prayer Music Database
|
|
# Verifies all services are running correctly
|
|
|
|
echo "================================"
|
|
echo "HOUSE OF PRAYER - HEALTH CHECK"
|
|
echo "================================"
|
|
echo ""
|
|
|
|
# Color codes
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Counters
|
|
PASSED=0
|
|
FAILED=0
|
|
WARNINGS=0
|
|
|
|
# Function to check service
|
|
check_service() {
|
|
local name=$1
|
|
local check_cmd=$2
|
|
local test_cmd=$3
|
|
|
|
echo -n "Checking $name... "
|
|
|
|
if eval "$check_cmd" > /dev/null 2>&1; then
|
|
if [ -n "$test_cmd" ]; then
|
|
if eval "$test_cmd" > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✓ PASS${NC}"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${YELLOW}⚠ RUNNING but test failed${NC}"
|
|
((WARNINGS++))
|
|
fi
|
|
else
|
|
echo -e "${GREEN}✓ PASS${NC}"
|
|
((PASSED++))
|
|
fi
|
|
else
|
|
echo -e "${RED}✗ FAIL${NC}"
|
|
((FAILED++))
|
|
fi
|
|
}
|
|
|
|
# Check Frontend (Vite Dev Server)
|
|
check_service "Frontend (port 5100)" \
|
|
"lsof -i:5100 -sTCP:LISTEN" \
|
|
"curl -s -o /dev/null -w '%{http_code}' http://localhost:5100/ | grep -q 200"
|
|
|
|
# Check Backend (Node API)
|
|
check_service "Backend (port 8080)" \
|
|
"lsof -i:8080 -sTCP:LISTEN" \
|
|
"curl -s -o /dev/null -w '%{http_code}' http://localhost:8080/api/songs | grep -q 200"
|
|
|
|
# Check Nginx
|
|
check_service "Nginx (port 443)" \
|
|
"sudo lsof -i:443 -sTCP:LISTEN" \
|
|
""
|
|
|
|
# Check PostgreSQL
|
|
check_service "PostgreSQL" \
|
|
"sudo systemctl is-active postgresql" \
|
|
""
|
|
|
|
# Check Vite Host Configuration
|
|
echo -n "Checking Vite host config... "
|
|
if curl -s -H "Host: houseofprayer.ddns.net" -o /dev/null -w "%{http_code}" http://localhost:5100/ | grep -q 200; then
|
|
echo -e "${GREEN}✓ PASS (domain accepted)${NC}"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${RED}✗ FAIL (domain blocked)${NC}"
|
|
echo " → Check frontend/vite.config.js allowedHosts"
|
|
((FAILED++))
|
|
fi
|
|
|
|
# Check DNS Resolution
|
|
echo -n "Checking DNS resolution... "
|
|
if nslookup houseofprayer.ddns.net | grep -q "170.254.17.146"; then
|
|
echo -e "${GREEN}✓ PASS${NC}"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${YELLOW}⚠ WARNING (DNS may not resolve correctly)${NC}"
|
|
((WARNINGS++))
|
|
fi
|
|
|
|
# Check External HTTPS Access
|
|
echo -n "Checking public HTTPS access... "
|
|
if curl -s -o /dev/null -w "%{http_code}" https://houseofprayer.ddns.net | grep -q 200; then
|
|
echo -e "${GREEN}✓ PASS${NC}"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${RED}✗ FAIL${NC}"
|
|
((FAILED++))
|
|
fi
|
|
|
|
# Summary
|
|
echo ""
|
|
echo "================================"
|
|
echo "SUMMARY"
|
|
echo "================================"
|
|
echo -e "${GREEN}Passed:${NC} $PASSED"
|
|
echo -e "${YELLOW}Warnings:${NC} $WARNINGS"
|
|
echo -e "${RED}Failed:${NC} $FAILED"
|
|
echo ""
|
|
|
|
if [ $FAILED -eq 0 ]; then
|
|
echo -e "${GREEN}✓ All critical services operational!${NC}"
|
|
echo ""
|
|
echo "Site accessible at: https://houseofprayer.ddns.net"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}✗ Some services are down. Check logs for details.${NC}"
|
|
echo ""
|
|
echo "Quick fixes:"
|
|
echo " - Frontend: cd frontend && npm run dev &"
|
|
echo " - Backend: cd backend && node server.js &"
|
|
echo " - Nginx: sudo systemctl restart nginx"
|
|
exit 1
|
|
fi
|