Files
proxmox/verify-tunnel-config.sh

106 lines
3.8 KiB
Bash
Raw Normal View History

#!/bin/bash
# Verify tunnel configuration and test all endpoints
echo "═══════════════════════════════════════════════════════════"
echo " Verify Tunnel Configuration"
echo "═══════════════════════════════════════════════════════════"
echo ""
# Expected hostnames
EXPECTED_HOSTNAMES=(
"explorer.d-bis.org"
"rpc-http-pub.d-bis.org"
"rpc-http-prv.d-bis.org"
"dbis-admin.d-bis.org"
"dbis-api.d-bis.org"
"dbis-api-2.d-bis.org"
"mim4u.org"
"www.mim4u.org"
"rpc-ws-pub.d-bis.org"
"rpc-ws-prv.d-bis.org"
)
echo "✅ Configuration Verified in Cloudflare Dashboard:"
echo ""
echo "All 10 routes configured:"
for i in "${!EXPECTED_HOSTNAMES[@]}"; do
num=$((i+1))
echo " $num. ${EXPECTED_HOSTNAMES[$i]} → http://192.168.11.21:80"
done
echo ""
# Check for differences
echo "⚠️ Note: Domain Configuration Differences"
echo ""
echo " In DNS Zone File:"
echo " - mim4u.org.d-bis.org (subdomain)"
echo " - www.mim4u.org.d-bis.org (subdomain)"
echo ""
echo " In Tunnel Config:"
echo " - mim4u.org (root domain)"
echo " - www.mim4u.org (root domain)"
echo ""
echo " This is correct if mim4u.org is a separate domain!"
echo ""
# Test endpoints
echo "═══════════════════════════════════════════════════════════"
echo " Testing Endpoints"
echo "═══════════════════════════════════════════════════════════"
echo ""
SUCCESS=0
FAILED=0
for hostname in "${EXPECTED_HOSTNAMES[@]}"; do
# Skip WebSocket endpoints for HTTP test
if [[ "$hostname" == *"ws-"* ]]; then
echo " ⏭️ $hostname (WebSocket - skipping HTTP test)"
continue
fi
echo -n " Testing $hostname... "
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 "https://$hostname" 2>/dev/null || echo "000")
if [ "$HTTP_CODE" = "000" ]; then
echo "❌ FAILED (timeout/no connection)"
FAILED=$((FAILED+1))
elif [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 400 ]; then
echo "✅ OK (HTTP $HTTP_CODE)"
SUCCESS=$((SUCCESS+1))
elif [ "$HTTP_CODE" -ge 400 ] && [ "$HTTP_CODE" -lt 500 ]; then
echo "⚠️ HTTP $HTTP_CODE (service may be down)"
FAILED=$((FAILED+1))
else
echo "❌ HTTP $HTTP_CODE"
FAILED=$((FAILED+1))
fi
done
echo ""
echo "═══════════════════════════════════════════════════════════"
echo " Test Results"
echo "═══════════════════════════════════════════════════════════"
echo ""
echo " ✅ Successful: $SUCCESS"
echo " ❌ Failed: $FAILED"
echo ""
if [ $FAILED -eq 0 ]; then
echo "🎉 All endpoints are accessible!"
else
echo "⚠️ Some endpoints failed. Possible reasons:"
echo " 1. Tunnel connector not running (VMID 102)"
echo " 2. Nginx not accessible at 192.168.11.21:80"
echo " 3. Services not configured in Nginx"
echo " 4. DNS propagation delay"
echo ""
echo "Next steps:"
echo " 1. Check tunnel status in Cloudflare Dashboard"
echo " 2. Verify container is running: ssh root@192.168.11.12 'pct status 102'"
echo " 3. Check tunnel service: ssh root@192.168.11.12 'pct exec 102 -- systemctl status cloudflared'"
fi
echo ""