Files
proxmox/scripts/configure-cloudflare-explorer-manual.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

143 lines
4.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# Manual Cloudflare configuration instructions for Blockscout Explorer
# This script provides instructions and can help check existing configuration
set -euo pipefail
EXPLORER_DOMAIN="explorer.d-bis.org"
EXPLORER_IP="192.168.11.140"
EXPLORER_PORT="80"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
log_section() { echo -e "${CYAN}════════════════════════════════════════${NC}"; }
log_section
log_info "Cloudflare Configuration for Blockscout Explorer"
log_section
echo ""
log_info "Domain: $EXPLORER_DOMAIN"
log_info "Target: http://$EXPLORER_IP:$EXPLORER_PORT"
echo ""
# Try to get tunnel information
PROXMOX_HOST="${PROXMOX_HOST:-192.168.11.10}"
log_section
log_info "Step 1: Get Tunnel ID"
log_section
log_info "Checking tunnel configuration on VMID 102..."
TUNNEL_INFO=$(ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" "pct exec 102 -- cloudflared tunnel list 2>&1" | head -10 || echo "")
if [ -n "$TUNNEL_INFO" ]; then
echo "$TUNNEL_INFO"
TUNNEL_ID=$(echo "$TUNNEL_INFO" | grep -oP '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}' | head -1 || echo "")
if [ -n "$TUNNEL_ID" ]; then
log_success "Found tunnel ID: $TUNNEL_ID"
TUNNEL_TARGET="${TUNNEL_ID}.cfargotunnel.com"
else
log_warn "Could not extract tunnel ID from output"
TUNNEL_TARGET="<tunnel-id>.cfargotunnel.com"
fi
else
log_warn "Could not get tunnel information"
log_info "You can find your tunnel ID in Cloudflare Zero Trust Dashboard:"
log_info " https://one.dash.cloudflare.com/ → Zero Trust → Networks → Tunnels"
TUNNEL_TARGET="<tunnel-id>.cfargotunnel.com"
fi
echo ""
log_section
log_info "Step 2: Configure DNS Record"
log_section
log_info "Go to Cloudflare DNS Dashboard:"
log_info " https://dash.cloudflare.com/ → Select domain 'd-bis.org' → DNS → Records"
echo ""
log_info "Create CNAME record:"
echo ""
echo " Type: CNAME"
echo " Name: explorer"
echo " Target: $TUNNEL_TARGET"
echo " Proxy status: 🟠 Proxied (orange cloud) - REQUIRED"
echo " TTL: Auto"
echo ""
log_warn "IMPORTANT: Proxy must be enabled (orange cloud) for tunnel to work!"
echo ""
log_section
log_info "Step 3: Configure Tunnel Route"
log_section
log_info "Go to Cloudflare Zero Trust Dashboard:"
log_info " https://one.dash.cloudflare.com/"
log_info " Navigate to: Zero Trust → Networks → Tunnels"
echo ""
log_info "Select your tunnel, then click 'Configure' → 'Public Hostnames'"
log_info "Add a new hostname:"
echo ""
echo " Subdomain: explorer"
echo " Domain: d-bis.org"
echo " Service: http://$EXPLORER_IP:$EXPLORER_PORT"
echo " Type: HTTP"
echo ""
log_info "Click 'Save hostname'"
echo ""
log_section
log_info "Step 4: Verify Configuration"
log_section
log_info "After configuration, test with:"
echo ""
echo " # Wait 1-5 minutes for DNS propagation"
echo " dig $EXPLORER_DOMAIN"
echo " curl https://$EXPLORER_DOMAIN/health"
echo ""
log_section
log_info "Current Status Check"
log_section
log_info "Checking if DNS record exists..."
DNS_CHECK=$(dig +short "$EXPLORER_DOMAIN" 2>&1 | head -3 || echo "")
if [ -n "$DNS_CHECK" ] && [ "$DNS_CHECK" != ";; connection timed out; no servers could be reached" ]; then
log_success "DNS record exists: $DNS_CHECK"
else
log_warn "DNS record not found or not yet propagated"
fi
log_info "Testing HTTPS endpoint..."
HTTP_TEST=$(curl -I -s --max-time 10 "https://$EXPLORER_DOMAIN" 2>&1 | head -5 || echo "")
if echo "$HTTP_TEST" | grep -q "HTTP/2 200\|HTTP/1.1 200"; then
log_success "HTTPS endpoint is working!"
elif echo "$HTTP_TEST" | grep -q "HTTP/2 522"; then
log_warn "HTTP 522 (Connection Timeout) - Tunnel may not be configured yet"
elif echo "$HTTP_TEST" | grep -q "HTTP/2 404"; then
log_warn "HTTP 404 - DNS configured but tunnel route may be missing"
else
log_warn "Endpoint not accessible: $HTTP_TEST"
fi
echo ""
log_success "Configuration instructions complete!"
echo ""
log_info "Summary:"
log_info " 1. DNS: CNAME explorer → $TUNNEL_TARGET (🟠 Proxied)"
log_info " 2. Tunnel: explorer.d-bis.org → http://$EXPLORER_IP:$EXPLORER_PORT"
log_info " 3. Test: curl https://$EXPLORER_DOMAIN/health"
echo ""