Files
homelab-monitoring/scripts/check-services.sh
2026-01-07 17:47:00 +08:00

30 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Check critical service HTTP endpoints
set -euo pipefail
SEND_NTFY="/usr/local/bin/send-ntfy.sh"
# Check Home Assistant (using correct hostname)
HA_CHECK=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 http://HomeAssistant:8123 2>/dev/null || echo "FAILED")
if [ "$HA_CHECK" = "200" ]; then
logger -t service-monitor "Home Assistant: OK (HTTP 200)"
elif [ "$HA_CHECK" = "FAILED" ]; then
$SEND_NTFY critical "Home Assistant Down" "🔴 CRITICAL: Home Assistant is not responding at http://HomeAssistant:8123" "skull,error,globe_with_meridians"
else
$SEND_NTFY warning "Home Assistant Issue" "🟡 WARNING: Home Assistant returned HTTP $HA_CHECK (expected 200)" "warning,globe_with_meridians"
fi
# Check CloudReve from inside its container (more reliable)
CLOUDREVE_CHECK=$(pct exec 209 -- curl -s -o /dev/null -w "%{http_code}" http://localhost:5212 --max-time 5 2>/dev/null || echo "FAILED")
if [ "$CLOUDREVE_CHECK" = "200" ]; then
logger -t service-monitor "CloudReve: OK (HTTP 200)"
elif [ "$CLOUDREVE_CHECK" = "FAILED" ]; then
$SEND_NTFY critical "CloudReve Down" "🔴 CRITICAL: CloudReve (CT 209) is not responding on port 5212" "skull,error,globe_with_meridians"
else
$SEND_NTFY warning "CloudReve Issue" "🟡 WARNING: CloudReve returned HTTP $CLOUDREVE_CHECK (expected 200)" "warning,globe_with_meridians"
fi
logger -t service-monitor "Service health check completed"