#!/usr/bin/env bash # Verify all NPMplus domains via HTTPS # Tests for 502 errors and verifies SSL certificates set -euo pipefail # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' log_info() { echo -e "${BLUE}[INFO]${NC} $1"; } log_success() { echo -e "${GREEN}[✓]${NC} $1"; } log_warn() { echo -e "${YELLOW}[⚠]${NC} $1"; } log_error() { echo -e "${RED}[✗]${NC} $1"; } echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔍 NPMplus HTTPS Domain Verification" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # All production domains DOMAINS=( "sankofa.nexus" "www.sankofa.nexus" "phoenix.sankofa.nexus" "www.phoenix.sankofa.nexus" "the-order.sankofa.nexus" "explorer.d-bis.org" "rpc-http-pub.d-bis.org" "rpc-ws-pub.d-bis.org" "rpc-http-prv.d-bis.org" "rpc-ws-prv.d-bis.org" "dbis-admin.d-bis.org" "dbis-api.d-bis.org" "dbis-api-2.d-bis.org" "secure.d-bis.org" "mim4u.org" "www.mim4u.org" "secure.mim4u.org" "training.mim4u.org" "rpc.public-0138.defi-oracle.io" ) success_count=0 error_502_count=0 error_other_count=0 timeout_count=0 for domain in "${DOMAINS[@]}"; do log_info "Testing: $domain" response=$(curl -s -o /dev/null -w "%{http_code}" -I -k --connect-timeout 10 "https://$domain" 2>/dev/null || echo "000") case "$response" in 200|201|202|204) log_success " ✓ HTTP $response (OK)" success_count=$((success_count + 1)) ;; 301|302|307|308) log_success " ✓ HTTP $response (Redirect)" success_count=$((success_count + 1)) ;; 401|403) log_warn " ⚠️ HTTP $response (Auth required - service working)" success_count=$((success_count + 1)) ;; 502) log_error " ✗ HTTP 502 (Bad Gateway - backend not responding)" error_502_count=$((error_502_count + 1)) ;; 503) log_warn " ⚠️ HTTP 503 (Service Unavailable)" error_other_count=$((error_other_count + 1)) ;; 000) log_error " ✗ Connection failed/timeout" timeout_count=$((timeout_count + 1)) ;; *) log_warn " ⚠️ HTTP $response" error_other_count=$((error_other_count + 1)) ;; esac echo "" done # Summary echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" log_info "📊 Summary:" log_success " Working: $success_count/${#DOMAINS[@]}" if [ $error_502_count -gt 0 ]; then log_error " 502 Errors: $error_502_count" fi if [ $error_other_count -gt 0 ]; then log_warn " Other Errors: $error_other_count" fi if [ $timeout_count -gt 0 ]; then log_error " Timeouts: $timeout_count" fi echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" if [ $error_502_count -eq 0 ] && [ $timeout_count -eq 0 ]; then log_success "✅ All domains are accessible via HTTPS!" log_info "No 502 errors detected - backend services are responding" else log_warn "⚠️ Some domains have issues:" if [ $error_502_count -gt 0 ]; then log_info " • $error_502_count domains returning 502 (backend not responding)" fi if [ $timeout_count -gt 0 ]; then log_info " • $timeout_count domains timing out" fi fi echo ""