Move 150+ scripts from root and scripts/ into client/project directories: - clients/dataforth/scripts/ (110 files: AD2, sync, SSH, DB, DOS scripts) - clients/bg-builders/scripts/ (14 files: Lesley mgmt, Exchange, termination) - clients/internal-infrastructure/scripts/ (10 files: GDAP, Gitea, backups) - projects/msp-tools/scripts/ (9 files: CIPP, MSP onboarding, Datto) - projects/gururmm-agent/scripts/ (3 files: API test, JWT, record counts) - clients/glaztech/scripts/ (1 file: CentraStage removal) Also reorganized: - VPN scripts → infrastructure/vpn-configs/ - Retrieved API/JS files → api/ - Forum posts → projects/community-forum/forum-posts/ - SSH docs → clients/internal-infrastructure/docs/ - NWTOC/CTONW docs → projects/wrightstown-smarthome/docs/ - ACG website files → projects/internal/acg-website-2025/ - Dataforth docs → clients/dataforth/docs/ - schema-retrieved.sql → docs/database/ Deleted 24 tmp_*.ps1 one-off debug scripts (preserved in git history). Root reduced from 220+ files to 62 items (docs + directories only). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
108 lines
5.0 KiB
PowerShell
108 lines
5.0 KiB
PowerShell
# Deploy Database Performance Optimizations to AD2
|
|
$password = ConvertTo-SecureString 'Paper123!@#' -AsPlainText -Force
|
|
$cred = New-Object System.Management.Automation.PSCredential('INTRANET\sysadmin', $password)
|
|
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host "Test Database Performance Optimization" -ForegroundColor Cyan
|
|
Write-Host "========================================`n" -ForegroundColor Cyan
|
|
|
|
# Step 1: Mount AD2 share
|
|
Write-Host "[1/6] Mounting AD2 C$ share..." -ForegroundColor Green
|
|
New-PSDrive -Name AD2 -PSProvider FileSystem -Root "\\192.168.0.6\C$" -Credential $cred -ErrorAction Stop | Out-Null
|
|
Write-Host " [OK] Share mounted" -ForegroundColor Green
|
|
|
|
# Step 2: Backup existing api.js
|
|
Write-Host "`n[2/6] Backing up existing api.js..." -ForegroundColor Green
|
|
$timestamp = Get-Date -Format "yyyy-MM-dd-HHmmss"
|
|
$backupPath = "AD2:\Shares\testdatadb\routes\api.js.backup-$timestamp"
|
|
Copy-Item "AD2:\Shares\testdatadb\routes\api.js" $backupPath
|
|
Write-Host " [OK] Backup created: api.js.backup-$timestamp" -ForegroundColor Green
|
|
|
|
# Step 3: Deploy optimized api.js
|
|
Write-Host "`n[3/6] Deploying optimized api.js..." -ForegroundColor Green
|
|
$optimizedContent = Get-Content "D:\ClaudeTools\api-js-optimized.js" -Raw
|
|
$optimizedContent | Set-Content "AD2:\Shares\testdatadb\routes\api.js" -Encoding UTF8
|
|
Write-Host " [OK] Optimized api.js deployed" -ForegroundColor Green
|
|
|
|
# Step 4: Stop Node.js server
|
|
Write-Host "`n[4/6] Stopping Node.js server..." -ForegroundColor Yellow
|
|
try {
|
|
Invoke-Command -ComputerName 192.168.0.6 -Credential $cred -ScriptBlock {
|
|
$nodeProcs = Get-Process node -ErrorAction SilentlyContinue
|
|
if ($nodeProcs) {
|
|
$nodeProcs | ForEach-Object {
|
|
Write-Host " Stopping process ID: $($_.Id)"
|
|
Stop-Process -Id $_.Id -Force
|
|
}
|
|
Start-Sleep -Seconds 2
|
|
Write-Host " [OK] Node.js processes stopped"
|
|
} else {
|
|
Write-Host " [INFO] No Node.js process found"
|
|
}
|
|
} -ErrorAction Stop
|
|
} catch {
|
|
Write-Host " [WARNING] Could not stop via WinRM: $($_.Exception.Message)" -ForegroundColor Yellow
|
|
Write-Host " [ACTION] You may need to stop the server manually on AD2" -ForegroundColor Yellow
|
|
}
|
|
|
|
# Step 5: Start Node.js server
|
|
Write-Host "`n[5/6] Starting Node.js server..." -ForegroundColor Green
|
|
try {
|
|
Invoke-Command -ComputerName 192.168.0.6 -Credential $cred -ScriptBlock {
|
|
Set-Location "C:\Shares\testdatadb"
|
|
|
|
# Start Node.js in background
|
|
$startInfo = New-Object System.Diagnostics.ProcessStartInfo
|
|
$startInfo.FileName = "node"
|
|
$startInfo.Arguments = "server.js"
|
|
$startInfo.WorkingDirectory = "C:\Shares\testdatadb"
|
|
$startInfo.UseShellExecute = $false
|
|
$startInfo.RedirectStandardOutput = $true
|
|
$startInfo.RedirectStandardError = $true
|
|
$startInfo.CreateNoWindow = $true
|
|
|
|
$process = [System.Diagnostics.Process]::Start($startInfo)
|
|
Start-Sleep -Seconds 3
|
|
|
|
if (!$process.HasExited) {
|
|
Write-Host " [OK] Server started (PID: $($process.Id))"
|
|
} else {
|
|
Write-Host " [ERROR] Server failed to start"
|
|
}
|
|
} -ErrorAction Stop
|
|
} catch {
|
|
Write-Host " [WARNING] Could not start via WinRM: $($_.Exception.Message)" -ForegroundColor Yellow
|
|
Write-Host " [ACTION] Please start manually: cd C:\Shares\testdatadb && node server.js" -ForegroundColor Yellow
|
|
}
|
|
|
|
# Step 6: Test connectivity
|
|
Write-Host "`n[6/6] Testing server connectivity..." -ForegroundColor Green
|
|
Start-Sleep -Seconds 2
|
|
|
|
$portTest = Test-NetConnection -ComputerName 192.168.0.6 -Port 3000 -WarningAction SilentlyContinue -InformationLevel Quiet
|
|
if ($portTest) {
|
|
Write-Host " [OK] Port 3000 is accessible" -ForegroundColor Green
|
|
} else {
|
|
Write-Host " [ERROR] Port 3000 is not accessible - server may not have started" -ForegroundColor Red
|
|
}
|
|
|
|
# Cleanup
|
|
Remove-PSDrive -Name AD2 -ErrorAction SilentlyContinue
|
|
|
|
Write-Host "`n========================================" -ForegroundColor Cyan
|
|
Write-Host "Deployment Summary" -ForegroundColor Cyan
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host "[OK] Backup created" -ForegroundColor Green
|
|
Write-Host "[OK] Optimized code deployed" -ForegroundColor Green
|
|
Write-Host "`nOptimizations Applied:" -ForegroundColor Cyan
|
|
Write-Host " - Connection timeout: 10 seconds" -ForegroundColor Cyan
|
|
Write-Host " - WAL mode: Enabled (better concurrency)" -ForegroundColor Cyan
|
|
Write-Host " - Cache size: 64MB" -ForegroundColor Cyan
|
|
Write-Host " - Memory-mapped I/O: 256MB" -ForegroundColor Cyan
|
|
Write-Host " - Synchronous mode: NORMAL (faster, safe)" -ForegroundColor Cyan
|
|
Write-Host "`nWeb Interface: http://192.168.0.6:3000" -ForegroundColor Green
|
|
Write-Host "`nNext Steps (Optional):" -ForegroundColor Yellow
|
|
Write-Host " - Run VACUUM to optimize database" -ForegroundColor Yellow
|
|
Write-Host " - Test queries via web interface" -ForegroundColor Yellow
|
|
Write-Host "========================================`n" -ForegroundColor Cyan
|