2026-01-06 01:46:25 -08:00
|
|
|
#!/usr/bin/env bash
|
2026-02-12 15:46:57 -08:00
|
|
|
set -euo pipefail
|
|
|
|
|
|
2026-01-06 01:46:25 -08:00
|
|
|
# Start Blockscout service on VMID 5000 (pve2)
|
|
|
|
|
# Usage: ./start-blockscout.sh [host]
|
|
|
|
|
|
|
|
|
|
VMID=5000
|
|
|
|
|
PROXMOX_HOST="${1:-pve2}"
|
|
|
|
|
|
|
|
|
|
echo "========================================="
|
|
|
|
|
echo "Starting Blockscout Service"
|
|
|
|
|
echo "VMID: $VMID"
|
|
|
|
|
echo "Host: $PROXMOX_HOST"
|
|
|
|
|
echo "========================================="
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
# Check if we're on Proxmox host or need to use pct directly
|
|
|
|
|
if command -v pct &>/dev/null; then
|
|
|
|
|
echo "1. Checking container status..."
|
|
|
|
|
CONTAINER_STATUS=$(pct status $VMID 2>/dev/null || echo "not found")
|
|
|
|
|
|
|
|
|
|
if [[ "$CONTAINER_STATUS" == *"running"* ]]; then
|
|
|
|
|
echo " ✅ Container is running"
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "2. Checking Blockscout service status..."
|
|
|
|
|
SERVICE_STATUS=$(pct exec $VMID -- systemctl is-active blockscout.service 2>/dev/null || echo "inactive")
|
|
|
|
|
|
|
|
|
|
if [[ "$SERVICE_STATUS" == "active" ]]; then
|
|
|
|
|
echo " ✅ Blockscout service is already active"
|
|
|
|
|
else
|
|
|
|
|
echo " ⚠️ Blockscout service is $SERVICE_STATUS"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "3. Starting Blockscout service..."
|
|
|
|
|
if pct exec $VMID -- systemctl start blockscout.service 2>/dev/null; then
|
|
|
|
|
sleep 3
|
|
|
|
|
NEW_STATUS=$(pct exec $VMID -- systemctl is-active blockscout.service 2>/dev/null || echo "inactive")
|
|
|
|
|
if [[ "$NEW_STATUS" == "active" ]]; then
|
|
|
|
|
echo " ✅ Blockscout service started successfully"
|
|
|
|
|
else
|
|
|
|
|
echo " ⚠️ Service status: $NEW_STATUS"
|
|
|
|
|
echo " 💡 Check logs: pct exec $VMID -- journalctl -u blockscout -n 50"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo " ❌ Failed to start Blockscout service"
|
|
|
|
|
echo " 💡 Check logs: pct exec $VMID -- journalctl -u blockscout -n 50"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "4. Checking Docker containers..."
|
|
|
|
|
DOCKER_PS=$(pct exec $VMID -- docker ps --format "{{.Names}}: {{.Status}}" 2>/dev/null | grep blockscout || echo "")
|
|
|
|
|
if [ -n "$DOCKER_PS" ]; then
|
|
|
|
|
echo " ✅ Blockscout containers running:"
|
|
|
|
|
echo "$DOCKER_PS" | sed 's/^/ /'
|
|
|
|
|
else
|
|
|
|
|
echo " ⚠️ No Blockscout containers running"
|
|
|
|
|
echo " 💡 Check service logs for details"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "5. Testing API accessibility..."
|
|
|
|
|
sleep 2
|
|
|
|
|
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 "https://explorer.d-bis.org/api" 2>/dev/null || echo "000")
|
|
|
|
|
if [[ "$HTTP_CODE" == "200" ]]; then
|
|
|
|
|
echo " ✅ API is accessible (HTTP $HTTP_CODE)"
|
|
|
|
|
elif [[ "$HTTP_CODE" == "502" ]]; then
|
|
|
|
|
echo " ⚠️ API returns 502 (service may still be starting)"
|
|
|
|
|
echo " 💡 Wait a few minutes and check again"
|
|
|
|
|
else
|
|
|
|
|
echo " ⚠️ API returned HTTP $HTTP_CODE"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
elif [[ "$CONTAINER_STATUS" == *"stopped"* ]]; then
|
|
|
|
|
echo " ⚠️ Container is stopped"
|
|
|
|
|
echo " Starting container..."
|
|
|
|
|
if pct start $VMID 2>/dev/null; then
|
|
|
|
|
echo " ✅ Container started"
|
|
|
|
|
echo " 💡 Wait a moment, then run this script again to start the service"
|
|
|
|
|
else
|
|
|
|
|
echo " ❌ Failed to start container"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo " ❌ Container status: $CONTAINER_STATUS"
|
|
|
|
|
echo " 💡 Container may not exist or be accessible"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo "⚠️ pct command not available (not on Proxmox host)"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "To start Blockscout manually on pve2:"
|
|
|
|
|
echo " ssh root@pve2 'pct exec $VMID -- systemctl start blockscout'"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "Or if you need to start the container first:"
|
|
|
|
|
echo " ssh root@pve2 'pct start $VMID'"
|
|
|
|
|
echo " ssh root@pve2 'pct exec $VMID -- systemctl start blockscout'"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "========================================="
|
|
|
|
|
echo "Summary"
|
|
|
|
|
echo "========================================="
|
|
|
|
|
echo "VMID: $VMID"
|
|
|
|
|
echo "Host: $PROXMOX_HOST"
|
|
|
|
|
echo "API: https://explorer.d-bis.org/api"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "To check service status:"
|
|
|
|
|
echo " pct exec $VMID -- systemctl status blockscout"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "To view logs:"
|
|
|
|
|
echo " pct exec $VMID -- journalctl -u blockscout -n 50 -f"
|