- 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.
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.org→http://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:
- Ensure Blockscout is running (see Step 2)
- Verify port 4000 is listening:
ss -tlnp | grep :4000 - Test direct connection:
curl http://127.0.0.1:4000/api/v2/status - Check Nginx error logs:
tail -f /var/log/nginx/blockscout-error.log
Issue 3: Public URL Returns 404
Cause: Cloudflare routing issue
Solution:
- Verify DNS record in Cloudflare dashboard
- Check tunnel configuration
- Verify tunnel is running:
systemctl status cloudflared - Check tunnel logs:
journalctl -u cloudflared -n 50
📝 Scripts Created
The following diagnostic and fix scripts have been created:
scripts/diagnose-explorer-status.sh- Comprehensive status checkscripts/fix-explorer-service.sh- Automated fix attemptsscripts/restore-explorer-complete.sh- Complete restoration scriptscripts/fix-nginx-blockscout-config.sh- Nginx configuration fixscripts/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)
- ✅ Access container VMID 5000
- ✅ Check Blockscout service status
- ✅ Start Blockscout service
- ✅ Verify port 4000 is accessible
High Priority
- ✅ Fix Nginx configuration if needed
- ✅ Verify Nginx proxy works
- ✅ Check Cloudflare tunnel configuration
Medium Priority
- ⏳ Verify public URL accessibility
- ⏳ Test all API endpoints
- ⏳ Monitor service stability
📚 Related Documentation
docs/EXPLORER_STATUS_REVIEW.md- Complete status reviewdocs/BLOCKSCOUT_EXPLORER_FIX.md- Fix scripts documentationdocs/BLOCKSCOUT_COMPREHENSIVE_ANALYSIS.md- Technical analysisscripts/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