64 lines
1.4 KiB
Bash
64 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Health check script for IIT Welders application
|
|
# This script checks if the application is running and responding
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
HEALTH_URL="http://localhost:3000"
|
|
TIMEOUT=10
|
|
MAX_RETRIES=3
|
|
|
|
# Function to check health
|
|
check_health() {
|
|
local url=$1
|
|
local timeout=$2
|
|
|
|
if curl -f -s --max-time $timeout "$url" > /dev/null 2>&1; then
|
|
echo "✅ Health check passed: $url"
|
|
return 0
|
|
else
|
|
echo "❌ Health check failed: $url"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Function to check if port is listening
|
|
check_port() {
|
|
local port=$1
|
|
|
|
if netstat -tuln | grep -q ":$port "; then
|
|
echo "✅ Port $port is listening"
|
|
return 0
|
|
else
|
|
echo "❌ Port $port is not listening"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Main health check
|
|
echo "🔍 Starting health check for IIT Welders..."
|
|
|
|
# Check if port is listening
|
|
if ! check_port 3000; then
|
|
echo "❌ Application is not running on port 3000"
|
|
exit 1
|
|
fi
|
|
|
|
# Check application health
|
|
retry_count=0
|
|
while [ $retry_count -lt $MAX_RETRIES ]; do
|
|
if check_health "$HEALTH_URL" $TIMEOUT; then
|
|
echo "✅ Application is healthy and responding"
|
|
exit 0
|
|
fi
|
|
|
|
retry_count=$((retry_count + 1))
|
|
echo "⏳ Retry $retry_count/$MAX_RETRIES in 5 seconds..."
|
|
sleep 5
|
|
done
|
|
|
|
echo "❌ Health check failed after $MAX_RETRIES retries"
|
|
exit 1
|