#!/usr/bin/env bash # Complete Phase 2 deployment from proxy host # Run this script ON the Nginx proxy host (20.160.58.99) set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" cd "$PROJECT_ROOT" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Phase 2 Complete Deployment from Proxy Host" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Check if .env exists if [ ! -f .env ]; then echo "❌ Error: .env file not found" echo "Please ensure .env is in $PROJECT_ROOT" exit 1 fi source .env # Verify SSH key if [ -z "$SSH_PRIVATE_KEY_PATH" ]; then echo "❌ Error: SSH_PRIVATE_KEY_PATH not set in .env" exit 1 fi if [ ! -f "$SSH_PRIVATE_KEY_PATH" ]; then echo "❌ Error: SSH key not found: $SSH_PRIVATE_KEY_PATH" exit 1 fi # Set proper permissions chmod 600 "$SSH_PRIVATE_KEY_PATH" echo "✅ SSH key configured: $SSH_PRIVATE_KEY_PATH" # Step 1: Generate Phase 2 configuration echo "" echo "Step 1: Generating Phase 2 configuration..." ./scripts/deployment/generate-phase2-tfvars.sh # Step 2: Initialize Terraform echo "" echo "Step 2: Initializing Terraform..." cd terraform/phases/phase2 if [ ! -d .terraform ]; then terraform init -upgrade > /dev/null 2>&1 fi echo "✅ Terraform initialized" # Step 3: Deploy Phase 2 echo "" echo "Step 3: Deploying Phase 2 to all 5 regions (parallel)..." terraform apply -auto-approve echo "✅ Phase 2 deployed" # Step 4: Start services echo "" echo "Step 4: Starting services on all regions (parallel)..." cd "$PROJECT_ROOT" ./terraform/phases/phase2/scripts/start-services.sh all # Step 5: Verify deployment echo "" echo "Step 5: Verifying deployment..." ./terraform/phases/phase2/scripts/status.sh all echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "✅ Phase 2 Deployment Complete!" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"