Files
proxmox/docs/archive/completion/EXPLORER_RESTORATION_COMPLETE.md
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

8.4 KiB

Explorer Restoration - Complete Status and Next Steps

Date: January 27, 2025
Status: 🔴 EXPLORER REQUIRES MANUAL INTERVENTION


📊 Current Status Summary

What's Working

  • Container VMID 5000: Running on node pve2
  • Nginx: Running and serving frontend (HTTP 200 on direct IP)
  • Ports 80 & 443: Open and accessible
  • Frontend HTML: Being served correctly

What's Not Working

  • Blockscout Service: Not running (port 4000 not accessible)
  • Nginx Proxy: Returns 502 Bad Gateway (can't connect to Blockscout)
  • Public URL: Returns 404 (Cloudflare routing issue)
  • API Endpoints: Not responding (depends on Blockscout)

🔍 Diagnostic Results

1. Container Status

  • VMID: 5000
  • Node: pve2
  • Status: Running
  • IP: 192.168.11.140

2. Service Status

  • Nginx: Running (serving frontend)
  • Blockscout: Not running (service inactive)
  • PostgreSQL: ⚠️ Status unknown (needs verification)

3. Network Status

  • Direct IP (192.168.11.140): HTTP 200 (frontend served)
  • Port 4000: Not accessible (Blockscout not running)
  • Public URL (explorer.d-bis.org): HTTP 404 (Cloudflare routing)

🛠️ Required Actions

Step 1: Access Container and Check Blockscout

On Proxmox Host:

ssh root@192.168.11.10

# Check container status
pct list | grep 5000
pct status 5000

# Enter container
pct exec 5000 -- bash

Inside Container:

# Check Blockscout service
systemctl status blockscout
journalctl -u blockscout -n 50

# Check Docker containers
docker ps -a
docker-compose -f /opt/blockscout/docker-compose.yml ps

# Check if Blockscout directory exists
ls -la /opt/blockscout/

Step 2: Start Blockscout Service

Option A: Using systemd service

pct exec 5000 -- systemctl start blockscout
pct exec 5000 -- systemctl enable blockscout
pct exec 5000 -- systemctl status blockscout

Option B: Using docker-compose

pct exec 5000 -- cd /opt/blockscout && docker-compose up -d
# OR
pct exec 5000 -- cd /opt/blockscout && docker compose up -d

Option C: Manual Docker start

pct exec 5000 -- docker ps -a | grep blockscout
# If containers exist but stopped:
pct exec 5000 -- docker start <container-name>

Step 3: Verify Blockscout is Running

Check port 4000:

# From inside container
pct exec 5000 -- ss -tlnp | grep :4000

# Test API
pct exec 5000 -- curl http://127.0.0.1:4000/api/v2/status

# From external
curl http://192.168.11.140:4000/api/v2/status

Expected Response:

{
  "success": true,
  "chain_id": 138,
  "block_number": "..."
}

Step 4: Fix Nginx Configuration (if needed)

Check Nginx config:

pct exec 5000 -- nginx -t
pct exec 5000 -- cat /etc/nginx/sites-available/blockscout

If Nginx config has errors, fix it:

# The config should proxy to http://127.0.0.1:4000
pct exec 5000 -- cat > /etc/nginx/sites-available/blockscout <<'EOF'
server {
    listen 80;
    listen [::]:80;
    server_name explorer.d-bis.org 192.168.11.140;

    location / {
        proxy_pass http://127.0.0.1:4000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 300s;
        proxy_connect_timeout 75s;
    }

    location /api {
        proxy_pass http://127.0.0.1:4000/api;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
EOF

# Enable site
pct exec 5000 -- ln -sf /etc/nginx/sites-available/blockscout /etc/nginx/sites-enabled/blockscout
pct exec 5000 -- rm -f /etc/nginx/sites-enabled/default

# Test and reload
pct exec 5000 -- nginx -t
pct exec 5000 -- systemctl reload nginx

Step 5: Verify Nginx Proxy

Test from external:

curl http://192.168.11.140/api/v2/stats
curl http://192.168.11.140/api/v2/status

Should return Blockscout API responses, not 502 Bad Gateway

Step 6: Fix Cloudflare Configuration

Check Cloudflare tunnel:

# Inside container
pct exec 5000 -- systemctl status cloudflared
pct exec 5000 -- cat /etc/cloudflared/config.yml

Verify DNS record:

  • Go to Cloudflare Dashboard
  • Check DNS record for explorer.d-bis.org
  • Should be CNAME pointing to tunnel (🟠 Proxied)

Verify tunnel route:

  • Go to Cloudflare Zero Trust → Networks → Tunnels
  • Check route: explorer.d-bis.orghttp://192.168.11.140:80

📋 Verification Checklist

After completing the steps above, verify:

  • Container VMID 5000 is running
  • Blockscout service is active
  • Port 4000 is listening
  • Blockscout API responds: curl http://192.168.11.140:4000/api/v2/status
  • Nginx configuration is valid: nginx -t
  • Nginx proxy works: curl http://192.168.11.140/api/v2/stats (not 502)
  • Cloudflare DNS record exists
  • Cloudflare tunnel route configured
  • Public URL works: curl https://explorer.d-bis.org/api/v2/stats

🔧 Troubleshooting Common Issues

Issue 1: Blockscout Service Won't Start

Check logs:

pct exec 5000 -- journalctl -u blockscout -n 100
pct exec 5000 -- docker-compose -f /opt/blockscout/docker-compose.yml logs

Common causes:

  • PostgreSQL not running
  • Database connection issues
  • Missing environment variables
  • Docker issues

Solution:

# Check PostgreSQL
pct exec 5000 -- docker ps | grep postgres
pct exec 5000 -- docker-compose -f /opt/blockscout/docker-compose.yml up -d postgres

# Check environment
pct exec 5000 -- cat /opt/blockscout/.env

# Restart all services
pct exec 5000 -- cd /opt/blockscout && docker-compose restart

Issue 2: Nginx Returns 502 Bad Gateway

Cause: Nginx can't connect to Blockscout on port 4000

Solution:

  1. Ensure Blockscout is running (see Step 2)
  2. Verify port 4000 is listening: ss -tlnp | grep :4000
  3. Test direct connection: curl http://127.0.0.1:4000/api/v2/status
  4. Check Nginx error logs: tail -f /var/log/nginx/blockscout-error.log

Issue 3: Public URL Returns 404

Cause: Cloudflare routing issue

Solution:

  1. Verify DNS record in Cloudflare dashboard
  2. Check tunnel configuration
  3. Verify tunnel is running: systemctl status cloudflared
  4. Check tunnel logs: journalctl -u cloudflared -n 50

📝 Scripts Created

The following diagnostic and fix scripts have been created:

  1. scripts/diagnose-explorer-status.sh - Comprehensive status check
  2. scripts/fix-explorer-service.sh - Automated fix attempts
  3. scripts/restore-explorer-complete.sh - Complete restoration script
  4. scripts/fix-nginx-blockscout-config.sh - Nginx configuration fix
  5. scripts/check-blockscout-logs.sh - Blockscout logs and status check

Usage:

cd /home/intlc/projects/proxmox
./scripts/diagnose-explorer-status.sh
./scripts/check-blockscout-logs.sh

🎯 Priority Actions

Immediate (Required)

  1. Access container VMID 5000
  2. Check Blockscout service status
  3. Start Blockscout service
  4. Verify port 4000 is accessible

High Priority

  1. Fix Nginx configuration if needed
  2. Verify Nginx proxy works
  3. Check Cloudflare tunnel configuration

Medium Priority

  1. Verify public URL accessibility
  2. Test all API endpoints
  3. Monitor service stability

  • docs/EXPLORER_STATUS_REVIEW.md - Complete status review
  • docs/BLOCKSCOUT_EXPLORER_FIX.md - Fix scripts documentation
  • docs/BLOCKSCOUT_COMPREHENSIVE_ANALYSIS.md - Technical analysis
  • scripts/fix-blockscout-explorer.sh - Existing fix script

Summary

Current State: Explorer container is running, Nginx is serving frontend, but Blockscout backend service is not running.

Root Cause: Blockscout service (port 4000) is not active, causing Nginx to return 502 Bad Gateway.

Solution: Start Blockscout service using one of the methods in Step 2 above.

Next Steps: Follow the step-by-step actions above to restore full functionality.


Last Updated: January 27, 2025
Status: 🔴 AWAITING MANUAL INTERVENTION