Files
proxmox/scripts/health/check-npmplus-and-backend-vmids.sh
defiQUG bea1903ac9
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Sync all local changes: docs, config, scripts, submodule refs, verification evidence
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:46:06 -08:00

109 lines
3.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# Check all NPMplus VMs (container status) and all backend VMIDs they proxy to.
# Uses SSH to Proxmox hosts. Run from project root.
# Usage: ./scripts/health/check-npmplus-and-backend-vmids.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
[ -f config/ip-addresses.conf ] && source config/ip-addresses.conf 2>/dev/null || true
PROXMOX_USER="${PROXMOX_USER:-root}"
R630_01="${PROXMOX_HOST_R630_01:-192.168.11.11}"
R630_02="${PROXMOX_HOST_R630_02:-192.168.11.12}"
ML110="${PROXMOX_HOST_ML110:-192.168.11.10}"
SSH_OPTS="-o ConnectTimeout=5 -o StrictHostKeyChecking=no"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
NC='\033[0m'
# NPMplus VMID : Proxmox host
declare -A NPMPLUS_HOST
NPMPLUS_HOST[10233]="$R630_01" # Main (76.53.10.36 → .167)
NPMPLUS_HOST[10234]="$R630_02" # Secondary HA
NPMPLUS_HOST[10235]="$R630_01" # Alltra/HYBX (76.53.10.38 → .169)
NPMPLUS_HOST[10236]="$R630_01" # Fourth dev/Codespaces (76.53.10.40 → .170)
NPMPLUS_HOST[10237]="$R630_02" # Mifos
# Backend VMID : Proxmox host (for VMIDs that NPMplus proxies to)
declare -A BACKEND_HOST
BACKEND_HOST[5000]="$R630_02" # explorer
BACKEND_HOST[7810]="$R630_02" # mim4u
BACKEND_HOST[10130]="$R630_01" # dbis-frontend
BACKEND_HOST[2400]="$ML110" # thirdweb-rpc
BACKEND_HOST[2101]="$R630_01" # besu-rpc-core-1
BACKEND_HOST[2201]="$R630_02" # besu-rpc-public-1
BACKEND_HOST[10150]="$R630_01" # dbis-api
BACKEND_HOST[10151]="$R630_01" # dbis-api-2
BACKEND_HOST[5800]="$R630_02" # mifos (10237 backend)
BACKEND_HOST[5801]="$R630_02" # dapp (optional)
BACKEND_HOST[2102]="$ML110" # besu-rpc-core-2 (10235 backend)
check_vmid_on_host() {
local vmid="$1" host="$2" label="${3:-}"
local status
status=$(ssh $SSH_OPTS "${PROXMOX_USER}@${host}" "pct status $vmid 2>/dev/null" | awk '{print $2}' || echo "unknown")
if [[ "$status" == "running" ]]; then
echo -e " VMID $vmid $label: ${GREEN}running${NC} (host $host)"
return 0
else
echo -e " VMID $vmid $label: ${RED}$status${NC} (host $host)"
return 1
fi
}
echo ""
echo -e "${CYAN}=== NPMplus VMs ===${NC}"
echo ""
npm_ok=0
npm_fail=0
for vmid in 10233 10234 10235 10236 10237; do
host="${NPMPLUS_HOST[$vmid]:-}"
[[ -z "$host" ]] && continue
case "$vmid" in
10233) label="(main)" ;;
10234) label="(secondary)" ;;
10235) label="(Alltra/HYBX)" ;;
10236) label="(Fourth dev)" ;;
10237) label="(Mifos)" ;;
*) label="" ;;
esac
if check_vmid_on_host "$vmid" "$host" "$label"; then npm_ok=$((npm_ok + 1)); else npm_fail=$((npm_fail + 1)); fi
done
echo ""
echo -e "${CYAN}=== Backend VMIDs (NPMplus proxy targets) ===${NC}"
echo ""
echo "Main NPMplus (10233) backends:"
backend_ok=0
backend_fail=0
for vmid in 5000 2201 2101 10130 10150 10151 7810 2400; do
host="${BACKEND_HOST[$vmid]:-}"
[[ -z "$host" ]] && continue
if check_vmid_on_host "$vmid" "$host" ""; then backend_ok=$((backend_ok + 1)); else backend_fail=$((backend_fail + 1)); fi
done
echo "Optional: 5801 (dapp)"
if check_vmid_on_host "5801" "${BACKEND_HOST[5801]}" ""; then backend_ok=$((backend_ok + 1)); else backend_fail=$((backend_fail + 1)); fi
echo ""
echo "NPMplus 10237 (Mifos) backend:"
if check_vmid_on_host "5800" "${BACKEND_HOST[5800]}" "(mifos)"; then backend_ok=$((backend_ok + 1)); else backend_fail=$((backend_fail + 1)); fi
echo ""
echo "NPMplus 10235 (Alltra/HYBX) backend:"
if check_vmid_on_host "2102" "${BACKEND_HOST[2102]}" "(rpc-core-2)"; then backend_ok=$((backend_ok + 1)); else backend_fail=$((backend_fail + 1)); fi
echo ""
echo -e "${CYAN}Summary${NC}"
echo -e " NPMplus VMs: ${GREEN}$npm_ok${NC} running, ${RED}$npm_fail${NC} not running (total 5)"
echo -e " Backend VMIDs: ${GREEN}$backend_ok${NC} running, ${RED}$backend_fail${NC} not running"
echo ""
exit $((npm_fail + backend_fail))