#!/usr/bin/env bash set -euo pipefail # Load IP configuration SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true # Post-installation migration script # Run this AFTER NPMplus is installed set -e PROXMOX_HOST="${1:-192.168.11.11}" NEW_CONTAINER_ID="${2}" CONTAINER_IP="${3}" if [ -z "$NEW_CONTAINER_ID" ] || [ -z "$CONTAINER_IP" ]; then echo "Usage: $0 [PROXMOX_HOST] [CONTAINER_ID] [CONTAINER_IP]" echo "" echo "Example:" echo " $0 ${PROXMOX_HOST_R630_01:-192.168.11.11} 106 192.168.11.27" exit 1 fi echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🔄 Post-Installation Migration" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Get admin password echo "🔑 Retrieving admin password..." ADMIN_PASSWORD=$(ssh root@"$PROXMOX_HOST" "pct exec $NEW_CONTAINER_ID -- bash -c ' if [ -f /opt/.npm_pwd ]; then grep -i password /opt/.npm_pwd | cut -d: -f2 | tr -d \" \" else docker logs npmplus 2>/dev/null | grep -i \"Creating a new user\" | tail -1 | grep -oP \"password: \K[^\s]+\" || echo \"\" fi '" 2>/dev/null || echo "") if [ -z "$ADMIN_PASSWORD" ]; then echo " ⚠️ Could not retrieve password automatically" read -sp " Enter NPMplus admin password: " ADMIN_PASSWORD echo "" else echo " ✅ Admin password retrieved" fi # Wait for NPMplus to be ready echo "" echo "⏳ Waiting for NPMplus to be ready..." for i in {1..30}; do if ssh root@"$PROXMOX_HOST" "pct exec $NEW_CONTAINER_ID -- docker ps --filter 'name=npmplus' --format '{{.Status}}' 2>/dev/null" | grep -q "Up"; then echo " ✅ NPMplus is running" break fi echo " ⏳ Waiting... ($i/30)" sleep 2 done # Migrate configurations echo "" echo "🚀 Migrating configurations..." echo "$ADMIN_PASSWORD" | bash scripts/nginx-proxy-manager/migrate-configs-to-npmplus.sh \ "$PROXMOX_HOST" \ "$NEW_CONTAINER_ID" \ "https://$CONTAINER_IP:81" echo "" echo "✅ Migration complete!" echo "" echo "📋 Next: Update UDM Pro port forwarding:" echo " HTTP: 76.53.10.36:80 → $CONTAINER_IP:80" echo " HTTPS: 76.53.10.36:443 → $CONTAINER_IP:443" echo ""