# Deploy sqlservercheck ke reverse proxy (10.100.1.24) # Usage: .\scripts\deploy-sqlservercheck.ps1 # .\scripts\deploy-sqlservercheck.ps1 -NoBuild param( [switch]$NoBuild ) $ErrorActionPreference = "Stop" $HostAddr = "10.100.1.24" $SshPort = 22 $SshMac = "hmac-sha1" $SshUser = "root" $RemoteStack = "/opt/stacks/sqlservercheck" $ProjectRoot = Split-Path $PSScriptRoot -Parent $StackDir = Join-Path $ProjectRoot "sqlservercheck" $Tarball = Join-Path $ProjectRoot "sqlservercheck-deploy.tar.gz" if (-not (Test-Path $StackDir)) { throw "Folder tidak ditemukan: $StackDir" } Write-Host "==> Pack sqlservercheck (tanpa .env)..." Push-Location $StackDir tar -czf $Tarball --exclude=".env" . Pop-Location Write-Host "==> Upload ke $HostAddr..." scp -o BatchMode=yes -o MACs=$SshMac -P $SshPort $Tarball "${SshUser}@${HostAddr}:/tmp/sqlservercheck-deploy.tar.gz" Write-Host "==> Extract..." $extract = @" set -e cd $RemoteStack cp .env /tmp/sqlservercheck.env.bak 2>/dev/null || true tar -xzf /tmp/sqlservercheck-deploy.tar.gz "@ ssh -o BatchMode=yes -m $SshMac "${SshUser}@${HostAddr}" -p $SshPort $extract if ($NoBuild) { Write-Host "==> Restart container (tanpa rebuild)..." ssh -o BatchMode=yes -m $SshMac "${SshUser}@${HostAddr}" -p $SshPort "cd $RemoteStack && docker compose up -d" } else { Write-Host "==> Docker compose build + up..." ssh -o BatchMode=yes -m $SshMac "${SshUser}@${HostAddr}" -p $SshPort "cd $RemoteStack && docker compose up -d --build" } Write-Host "==> Health check..." Start-Sleep -Seconds 6 ssh -o BatchMode=yes -m $SshMac "${SshUser}@${HostAddr}" -p $SshPort @" docker ps --filter name=sqlservercheck --format 'table {{.Names}}\t{{.Status}}' curl -sf -o /dev/null -w 'localhost /ts: %{http_code}\n' http://127.0.0.1:8090/ts "@ Write-Host "" Write-Host "Deploy selesai." Write-Host " https://sqlservercheck.gisportal.id/ts" Write-Host " https://sqlservercheck.gisportal.id/nts"