# Gate 4: Complete Host Startup Sequence # AGENTS.md v16.0 Strategic Automation # Prerequisites: SSH tunnel open, DbUp migrations applied param( [switch]$SkipDbUp = $false, [string]$Environment = "Debug" ) Write-Host "=== Gate 4: Host Startup Sequence ===" -ForegroundColor Green Write-Host "Environment: $Environment (Debug = DevelopmentHeaderAuthenticationHandler)" -ForegroundColor Cyan Write-Host "" # Step 1: Verify Prerequisites Write-Host "[1/3] Verifying prerequisites..." -ForegroundColor Yellow # Check PostgreSQL connection try { $testConn = New-Object System.Net.Sockets.TcpClient $testConn.Connect("localhost", 5432) $testConn.Close() Write-Host " ✅ PostgreSQL available (localhost:5432)" -ForegroundColor Green } catch { Write-Host " ❌ PostgreSQL not accessible. Start SSH tunnel:" -ForegroundColor Red Write-Host " ssh -L 5432:127.0.0.1:5432 kjh2064@178.104.200.7" -ForegroundColor Yellow exit 1 } # Check .NET SDK $dotnetVersion = dotnet --version Write-Host " ✅ .NET SDK available ($dotnetVersion)" -ForegroundColor Green # Step 2: Run Migrations (if not skipped) if (-not $SkipDbUp) { Write-Host "[2/3] Running database migrations..." -ForegroundColor Yellow $env:KARTSELL_POSTGRES = "Host=localhost;Port=5432;Database=kartsell;Username=kartsell;Password=kartsell" try { dotnet run --project src/KArtSell.DbMigrator -c Release --no-build Write-Host " ✅ Migrations applied successfully" -ForegroundColor Green } catch { Write-Host " ⚠️ Migration warning: $_" -ForegroundColor Yellow } } # Step 3: Start Host Write-Host "[3/3] Starting Host (DEBUG mode)..." -ForegroundColor Yellow Write-Host "" # Set required environment variables (must match appsettings.json) $env:ASPNETCORE_ENVIRONMENT = "Development" # Load appsettings.Development.json (DevelopmentHeaderAuthenticationHandler) $env:KARTSELL_POSTGRES = "Host=127.0.0.1;Port=5432;Database=kartselldb;Username=kartsell;Password=kartsell4321@!" $env:KRX_API_KEY = "stub-key-for-testing" $env:OPENDART_API = "stub-key-for-testing" # Display startup info Write-Host "Configuration: $Environment" -ForegroundColor Cyan Write-Host "Expected output: 'Now listening on: http://127.0.0.1:5002'" -ForegroundColor Cyan Write-Host "" Write-Host "Press Ctrl+C to stop." -ForegroundColor Gray Write-Host "" # Launch Host dotnet run --project src/KArtSell.Host --configuration $Environment --no-build Write-Host "" Write-Host "Host stopped." -ForegroundColor Yellow