Files
explorer-monorepo/scripts/check-blockscout-status.sh

97 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
# Script to check Blockscout status and remaining issues
# Run from Proxmox host or inside VMID 5000
set -euo pipefail
VMID=5000
echo "=========================================="
echo "Blockscout Status Check"
echo "=========================================="
echo ""
# Check if running from Proxmox host or inside container
if [ -f "/proc/1/cgroup" ] && grep -q "lxc" /proc/1/cgroup 2>/dev/null; then
EXEC_PREFIX=""
echo "Running inside VMID 5000"
else
EXEC_PREFIX="pct exec $VMID --"
echo "Running from Proxmox host, executing in VMID 5000"
fi
# 1. Check database status
echo "=== 1. Database Status ==="
$EXEC_PREFIX docker exec -it blockscout-postgres psql -U blockscout -d blockscout -c "
SELECT
CASE WHEN EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'blocks')
THEN '✅ blocks' ELSE '❌ blocks MISSING' END as blocks,
CASE WHEN EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'transactions')
THEN '✅ transactions' ELSE '❌ transactions MISSING' END as transactions,
CASE WHEN EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'migrations_status')
THEN '✅ migrations_status' ELSE '❌ migrations_status MISSING' END as migrations_status;
" 2>/dev/null
echo ""
# 2. Check Blockscout container status
echo "=== 2. Blockscout Container Status ==="
$EXEC_PREFIX docker ps -a | grep blockscout | grep -v postgres || echo "❌ Blockscout container not found"
echo ""
# 3. Check if static assets exist
echo "=== 3. Static Assets Check ==="
BLOCKSCOUT_CONTAINER=$($EXEC_PREFIX docker ps -a | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
if [ -n "$BLOCKSCOUT_CONTAINER" ]; then
echo "Checking for cache_manifest.json..."
$EXEC_PREFIX docker exec -it $BLOCKSCOUT_CONTAINER test -f priv/static/cache_manifest.json 2>/dev/null && \
echo "✅ cache_manifest.json exists" || \
echo "❌ cache_manifest.json MISSING - assets need to be built"
echo "Checking static directory..."
$EXEC_PREFIX docker exec -it $BLOCKSCOUT_CONTAINER ls -la priv/static/ 2>/dev/null | head -5 || \
echo "⚠️ Cannot access static directory"
else
echo "⚠️ Cannot check assets - Blockscout container not running"
fi
echo ""
# 4. Check docker-compose configuration
echo "=== 4. Docker Compose Configuration ==="
if $EXEC_PREFIX test -f /opt/blockscout/docker-compose.yml; then
echo "docker-compose.yml found"
if $EXEC_PREFIX grep -q "command:.*blockscout start" /opt/blockscout/docker-compose.yml; then
echo "✅ Startup command configured correctly"
else
echo "❌ Startup command missing - needs: command: bin/blockscout start"
fi
else
echo "⚠️ docker-compose.yml not found at /opt/blockscout"
fi
echo ""
# 5. Check recent logs
echo "=== 5. Recent Logs (last 20 lines) ==="
if [ -n "$BLOCKSCOUT_CONTAINER" ]; then
$EXEC_PREFIX docker logs $BLOCKSCOUT_CONTAINER 2>&1 | tail -20 || echo "Cannot access logs"
else
echo "⚠️ Cannot check logs - container not found"
fi
echo ""
# 6. Check if Blockscout is responding
echo "=== 6. HTTP Endpoint Check ==="
if $EXEC_PREFIX docker ps | grep -q blockscout; then
$EXEC_PREFIX curl -s http://localhost:4000/api/v2/stats 2>/dev/null | head -5 && \
echo "✅ Blockscout API responding" || \
echo "❌ Blockscout API not responding"
else
echo "⚠️ Blockscout container not running"
fi
echo ""
echo "=========================================="
echo "Status Check Complete"
echo "=========================================="