ok... ok... I'll add it to git...
This commit is contained in:
Executable
+103
@@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
# Service Health Check Script
|
||||
# Checks status of all critical services
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== tower-of-joy Health Check ==="
|
||||
echo "$(date)"
|
||||
echo ""
|
||||
|
||||
# Define service check function
|
||||
check_service() {
|
||||
local name=$1
|
||||
local port=$2
|
||||
local container=$3
|
||||
|
||||
# Check container running
|
||||
if docker ps --format '{{.Names}}' | grep -q "^${container}$"; then
|
||||
# Check port responding
|
||||
if curl -f -s -o /dev/null -w "%{http_code}" "http://localhost:${port}" > /dev/null 2>&1 || \
|
||||
curl -f -s -o /dev/null "http://localhost:${port}" > /dev/null 2>&1; then
|
||||
echo "✅ ${name} (port ${port})"
|
||||
else
|
||||
echo "⚠️ ${name} - container running but port ${port} not responding"
|
||||
fi
|
||||
else
|
||||
echo "❌ ${name} - container not running"
|
||||
fi
|
||||
}
|
||||
|
||||
# Check infrastructure services
|
||||
echo "[Infrastructure Services]"
|
||||
check_service "Portainer" "8080" "portainer"
|
||||
check_service "Nginx Proxy Manager" "8000" "nginx-proxy-manager"
|
||||
check_service "Ollama" "11434" "ollama"
|
||||
echo ""
|
||||
|
||||
# Check networking
|
||||
echo "[Networking]"
|
||||
check_service "Headscale" "8085" "headscale"
|
||||
if command -v tailscale &> /dev/null; then
|
||||
if tailscale status &> /dev/null; then
|
||||
echo "✅ Tailscale connected"
|
||||
else
|
||||
echo "⚠️ Tailscale installed but not connected"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Tailscale not installed"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Check monitoring
|
||||
echo "[Monitoring]"
|
||||
check_service "Uptime Kuma" "3001" "uptime-kuma"
|
||||
check_service "Netdata" "19999" "netdata"
|
||||
check_service "Heimdall" "8888" "heimdall"
|
||||
echo ""
|
||||
|
||||
# Check application services (if deployed)
|
||||
echo "[Applications]"
|
||||
check_service "Jellyfin" "8096" "jellyfin"
|
||||
check_service "Nextcloud" "8082" "nextcloud"
|
||||
check_service "Samba" "445" "samba"
|
||||
echo ""
|
||||
|
||||
# Check storage
|
||||
echo "[Storage]"
|
||||
ssd_usage=$(df -h /home/jpmschweitzer/docker-data 2>/dev/null | awk 'NR==2 {print $5}' | sed 's/%//')
|
||||
hdd_usage=$(df -h /mnt/media 2>/dev/null | awk 'NR==2 {print $5}' | sed 's/%//')
|
||||
|
||||
if [ -n "$ssd_usage" ]; then
|
||||
if [ "$ssd_usage" -lt 80 ]; then
|
||||
echo "✅ SSD: ${ssd_usage}% used"
|
||||
elif [ "$ssd_usage" -lt 90 ]; then
|
||||
echo "⚠️ SSD: ${ssd_usage}% used (getting full)"
|
||||
else
|
||||
echo "❌ SSD: ${ssd_usage}% used (critically full!)"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ SSD: Unable to check"
|
||||
fi
|
||||
|
||||
if [ -n "$hdd_usage" ]; then
|
||||
if [ "$hdd_usage" -lt 80 ]; then
|
||||
echo "✅ HDD: ${hdd_usage}% used"
|
||||
elif [ "$hdd_usage" -lt 90 ]; then
|
||||
echo "⚠️ HDD: ${hdd_usage}% used (getting full)"
|
||||
else
|
||||
echo "❌ HDD: ${hdd_usage}% used (critically full!)"
|
||||
fi
|
||||
else
|
||||
echo "❌ HDD: Not mounted at /mnt/media"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Check Docker
|
||||
echo "[Docker Status]"
|
||||
running=$(docker ps -q | wc -l)
|
||||
total=$(docker ps -aq | wc -l)
|
||||
echo "Containers: ${running} running / ${total} total"
|
||||
echo ""
|
||||
|
||||
echo "=== Health Check Complete ==="
|
||||
Reference in New Issue
Block a user