104 lines
2.5 KiB
Bash
Executable File
104 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Verify deployment is working correctly
|
|
|
|
set -e
|
|
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${GREEN}=== Deployment Verification ===${NC}"
|
|
echo ""
|
|
|
|
ERRORS=0
|
|
|
|
# Check services
|
|
echo "Checking services..."
|
|
for service in explorer-indexer explorer-api explorer-frontend nginx postgresql; do
|
|
if systemctl is-active --quiet $service; then
|
|
echo -e "${GREEN}✓${NC} $service is running"
|
|
else
|
|
echo -e "${RED}✗${NC} $service is not running"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
done
|
|
|
|
# Check API
|
|
echo ""
|
|
echo "Checking API..."
|
|
if curl -s http://localhost:8080/health | grep -q "healthy"; then
|
|
echo -e "${GREEN}✓${NC} API is healthy"
|
|
else
|
|
echo -e "${RED}✗${NC} API health check failed"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
# Check Frontend
|
|
echo ""
|
|
echo "Checking Frontend..."
|
|
if curl -s http://localhost:3000 | grep -q "Explorer"; then
|
|
echo -e "${GREEN}✓${NC} Frontend is responding"
|
|
else
|
|
echo -e "${RED}✗${NC} Frontend check failed"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
# Check Nginx
|
|
echo ""
|
|
echo "Checking Nginx..."
|
|
if curl -s http://localhost/api/health | grep -q "healthy"; then
|
|
echo -e "${GREEN}✓${NC} Nginx proxy is working"
|
|
else
|
|
echo -e "${RED}✗${NC} Nginx proxy check failed"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
# Check Database
|
|
echo ""
|
|
echo "Checking Database..."
|
|
if sudo -u postgres psql -d explorer -c "SELECT 1;" > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✓${NC} Database is accessible"
|
|
else
|
|
echo -e "${RED}✗${NC} Database check failed"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
# Check Elasticsearch
|
|
echo ""
|
|
echo "Checking Elasticsearch..."
|
|
if curl -s http://localhost:9200 | grep -q "cluster_name"; then
|
|
echo -e "${GREEN}✓${NC} Elasticsearch is running"
|
|
else
|
|
echo -e "${YELLOW}⚠${NC} Elasticsearch check failed (may not be critical)"
|
|
fi
|
|
|
|
# Check Redis
|
|
echo ""
|
|
echo "Checking Redis..."
|
|
if redis-cli ping 2>/dev/null | grep -q "PONG"; then
|
|
echo -e "${GREEN}✓${NC} Redis is running"
|
|
else
|
|
echo -e "${YELLOW}⚠${NC} Redis check failed (may not be critical)"
|
|
fi
|
|
|
|
# Check Cloudflare Tunnel (if installed)
|
|
echo ""
|
|
echo "Checking Cloudflare Tunnel..."
|
|
if systemctl is-active --quiet cloudflared 2>/dev/null; then
|
|
echo -e "${GREEN}✓${NC} Cloudflare Tunnel is running"
|
|
else
|
|
echo -e "${YELLOW}⚠${NC} Cloudflare Tunnel not running (optional)"
|
|
fi
|
|
|
|
# Summary
|
|
echo ""
|
|
if [ $ERRORS -eq 0 ]; then
|
|
echo -e "${GREEN}✓ All critical checks passed!${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}✗ $ERRORS critical check(s) failed${NC}"
|
|
exit 1
|
|
fi
|
|
|