94 lines
2.5 KiB
Bash
94 lines
2.5 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Startup Verification Script for Church Music Database
|
||
|
|
# Verifies all services are running after a reboot/restart
|
||
|
|
|
||
|
|
echo "========================================="
|
||
|
|
echo "Church Music Database - Startup Check"
|
||
|
|
echo "========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Color codes
|
||
|
|
GREEN='\033[0;32m'
|
||
|
|
RED='\033[0;31m'
|
||
|
|
YELLOW='\033[1;33m'
|
||
|
|
NC='\033[0m' # No Color
|
||
|
|
|
||
|
|
check_service() {
|
||
|
|
service_name=$1
|
||
|
|
if systemctl is-active --quiet "$service_name"; then
|
||
|
|
echo -e "${GREEN}✓${NC} $service_name is running"
|
||
|
|
return 0
|
||
|
|
else
|
||
|
|
echo -e "${RED}✗${NC} $service_name is NOT running"
|
||
|
|
return 1
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
check_port() {
|
||
|
|
port=$1
|
||
|
|
service=$2
|
||
|
|
if ss -tlnp | grep -q ":$port "; then
|
||
|
|
echo -e "${GREEN}✓${NC} Port $port ($service) is listening"
|
||
|
|
return 0
|
||
|
|
else
|
||
|
|
echo -e "${RED}✗${NC} Port $port ($service) is NOT listening"
|
||
|
|
return 1
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
echo "Checking System Services..."
|
||
|
|
echo "----------------------------"
|
||
|
|
check_service postgresql
|
||
|
|
check_service church-music-backend
|
||
|
|
check_service church-music-frontend
|
||
|
|
check_service nginx
|
||
|
|
check_service certbot.timer
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
echo "Checking Network Ports..."
|
||
|
|
echo "-------------------------"
|
||
|
|
check_port 5432 "PostgreSQL"
|
||
|
|
check_port 8080 "Backend API"
|
||
|
|
check_port 5100 "Frontend"
|
||
|
|
check_port 80 "HTTP"
|
||
|
|
check_port 443 "HTTPS"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
echo "Checking Web Access..."
|
||
|
|
echo "----------------------"
|
||
|
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost | grep -q "200\|301\|302"; then
|
||
|
|
echo -e "${GREEN}✓${NC} Local HTTP access working"
|
||
|
|
else
|
||
|
|
echo -e "${RED}✗${NC} Local HTTP access failed"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if curl -sk -o /dev/null -w "%{http_code}" https://localhost | grep -q "200"; then
|
||
|
|
echo -e "${GREEN}✓${NC} Local HTTPS access working"
|
||
|
|
else
|
||
|
|
echo -e "${RED}✗${NC} Local HTTPS access failed"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check DNS resolution
|
||
|
|
echo ""
|
||
|
|
echo "Checking DNS & Public Access..."
|
||
|
|
echo "--------------------------------"
|
||
|
|
PUBLIC_IP=$(curl -s -4 ifconfig.me 2>/dev/null)
|
||
|
|
DNS_IP=$(dig +short houseofprayer.ddns.net @8.8.8.8 2>/dev/null | head -1)
|
||
|
|
|
||
|
|
echo "Public IP: $PUBLIC_IP"
|
||
|
|
echo "DNS Points To: $DNS_IP"
|
||
|
|
|
||
|
|
if [ "$PUBLIC_IP" != "$DNS_IP" ]; then
|
||
|
|
echo -e "${YELLOW}⚠${NC} Warning: DNS does not match public IP"
|
||
|
|
echo " You may need to update your DDNS or router settings"
|
||
|
|
else
|
||
|
|
echo -e "${GREEN}✓${NC} DNS correctly points to public IP"
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
echo "========================================="
|
||
|
|
echo "Startup verification complete!"
|
||
|
|
echo "========================================="
|
||
|
|
echo ""
|
||
|
|
echo "Access your site at: https://houseofprayer.ddns.net"
|