#!/usr/bin/env bash # Fix Blockscout VMID 5000: SSL + migrations # Errors: ssl not available, migrations_status/blocks missing # Usage: Run from Proxmox host or: ssh root@${PROXMOX_HOST_R630_02:-192.168.11.12} 'bash -s' < scripts/fix-blockscout-ssl-and-migrations.sh set -euo pipefail VMID=5000 RPC_URL="${ETHEREUM_JSONRPC_HTTP_URL:-http://${RPC_PUBLIC_1:-192.168.11.221}:8545}" DATABASE_URL_SSL_DISABLED="postgresql://blockscout:blockscout@postgres:5432/blockscout?sslmode=disable" exec_in() { if [ -n "${EXEC_PREFIX:-}" ]; then $EXEC_PREFIX "$@" else "$@" fi } if command -v pct &>/dev/null && pct status $VMID &>/dev/null; then EXEC_PREFIX="pct exec $VMID --" echo "Running on Proxmox; executing in VMID $VMID" else EXEC_PREFIX="" fi echo "=== Fix Blockscout SSL + Migrations ===" exec_in bash -c 'cd /opt/blockscout 2>/dev/null && docker-compose stop blockscout 2>/dev/null' || true sleep 2 BLOCKSCOUT_NETWORK=$(exec_in docker network ls 2>/dev/null | grep blockscout | head -1 | awk '{print $1}' || echo "blockscout_blockscout-network") exec_in docker run --rm --network "$BLOCKSCOUT_NETWORK" \ -e "DATABASE_URL=$DATABASE_URL_SSL_DISABLED" \ -e "ECTO_USE_SSL=false" \ -e "ETHEREUM_JSONRPC_HTTP_URL=$RPC_URL" \ -e "CHAIN_ID=138" \ blockscout/blockscout:latest \ sh -c 'bin/blockscout eval "Elixir.Explorer.ReleaseTasks.create_and_migrate()"' exec_in sed -i 's|postgresql://blockscout:blockscout@postgres:5432/blockscout|postgresql://blockscout:blockscout@postgres:5432/blockscout?sslmode=disable|g' /opt/blockscout/docker-compose.yml 2>/dev/null || true exec_in bash -c 'cd /opt/blockscout && docker-compose up -d blockscout' echo "Done. Wait ~2 min, then: curl -s http://${IP_BLOCKSCOUT:-192.168.11.140}/api?module=stats"