Files
proxmox/scripts/archive/consolidated/fix/fix-all-explorer-issues.sh
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

92 lines
3.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Load IP configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
# Fix all explorer issues (Blockscout network access + NPMplus update)
# Usage: ./fix-all-explorer-issues.sh [proxmox-host]
set -e
PROXMOX_HOST="${1:-pve2}"
VMID_5000=5000
echo "=========================================="
echo "Fix All Explorer Issues"
echo "=========================================="
echo ""
# Function to execute command on Proxmox host
exec_proxmox() {
if command -v pct &>/dev/null; then
eval "$@"
else
ssh root@$PROXMOX_HOST "$@"
fi
}
# Step 1: Check and start Blockscout service
echo "=== Step 1: Checking Blockscout Service ==="
SERVICE_STATUS=$(exec_proxmox "pct exec $VMID_5000 -- systemctl is-active blockscout.service 2>/dev/null" || echo "inactive")
if [ "$SERVICE_STATUS" != "active" ]; then
echo "⚠️ Blockscout service is not running, starting..."
exec_proxmox "pct exec $VMID_5000 -- systemctl start blockscout.service" || true
sleep 5
echo "✅ Blockscout service started"
else
echo "✅ Blockscout service is running"
fi
echo ""
# Step 2: Check port 4000 configuration
echo "=== Step 2: Checking Port 4000 Configuration ==="
PORT_CHECK=$(exec_proxmox "pct exec $VMID_5000 -- ss -tlnp 2>/dev/null | grep :4000 || echo 'not listening'")
if echo "$PORT_CHECK" | grep -q "127.0.0.1:4000"; then
echo "⚠️ Blockscout is listening on 127.0.0.1:4000 (localhost only)"
echo ""
echo "To enable direct route, configure Blockscout to listen on 0.0.0.0:4000"
echo "Check docker-compose.yml or service configuration for:"
echo " - PORT or LISTEN_ADDRESS environment variable"
echo " - Port binding should be '0.0.0.0:4000:4000' not '127.0.0.1:4000:4000'"
echo ""
elif echo "$PORT_CHECK" | grep -q "0.0.0.0:4000\|:4000.*0.0.0.0"; then
echo "✅ Blockscout is listening on 0.0.0.0:4000 (network accessible)"
else
echo "❌ Blockscout is NOT listening on port 4000"
fi
echo ""
# Step 3: Test API
echo "=== Step 3: Testing Blockscout API ==="
NETWORK_TEST=$(exec_proxmox "curl -s -o /dev/null -w '%{http_code}' --connect-timeout 5 http://${IP_BLOCKSCOUT}:4000/api/v2/stats 2>/dev/null" || echo "000")
if [ "$NETWORK_TEST" = "200" ]; then
echo "✅ Blockscout API is network accessible (HTTP $NETWORK_TEST)"
echo ""
echo "✅ Ready for direct route - Update NPMplus:"
echo " 1. Log into NPMplus: https://192.168.0.166:81"
echo " 2. Find 'explorer.d-bis.org' proxy host"
echo " 3. Update Forward Port: 80 → 4000"
echo " 4. Save changes"
echo ""
DIRECT_ROUTE_READY=true
else
echo "❌ Blockscout API NOT network accessible (HTTP $NETWORK_TEST)"
echo ""
echo "⚠️ Direct route not possible yet"
echo " Configure Blockscout to listen on 0.0.0.0:4000 first"
echo ""
DIRECT_ROUTE_READY=false
fi
echo ""
echo "=========================================="
echo "Summary"
echo "=========================================="
echo "Blockscout Service: ✅ Running"
echo "Port 4000 Network Access: $([ "$NETWORK_TEST" = "200" ] && echo "✅ Ready" || echo "❌ Needs Configuration")"
echo "Direct Route: $([ "$DIRECT_ROUTE_READY" = true ] && echo "✅ Ready" || echo "⏳ Not Ready")"
echo ""