Files
rr3-server/Start-LocalTest.ps1
Daniel Elliott ad12f3dea0 docs: Add comprehensive server implementation analysis
Complete gap analysis between APK requirements and current server:
- 58 endpoints already implemented (12 controllers)
- Identified critical missing endpoints (Synergy ID, config, save/load)
- Prioritized implementation roadmap (4 phases)
- Testing strategy and success criteria
- Immediate action items for Phase 1

Key findings:
- Server has good foundation with auth, assets, progression stubs
- Missing critical identity/save flow
- Need event system extraction from APK
- Modding system already complete (unique feature)

Next: Implement Synergy ID generation, config endpoint, save/load system
2026-02-21 23:39:19 -08:00

128 lines
5.4 KiB
PowerShell

# 🏎️ RR3 Local Testing Environment - Quick Start Script
# This script starts your RR3 Community Server for local APK testing
Write-Host ""
Write-Host "═══════════════════════════════════════" -ForegroundColor Cyan
Write-Host " 🏎️ RR3 Community Server - Local Test" -ForegroundColor Green
Write-Host "═══════════════════════════════════════" -ForegroundColor Cyan
Write-Host ""
# Get local IP address
Write-Host "🔍 Finding your local IP address..." -ForegroundColor Yellow
$localIP = (Get-NetIPAddress -AddressFamily IPv4 |
Where-Object {
$_.InterfaceAlias -like '*Wi-Fi*' -or
$_.InterfaceAlias -like '*Ethernet*' -or
$_.InterfaceAlias -like '*LAN*'
} |
Where-Object { $_.IPAddress -notlike '169.254.*' -and $_.IPAddress -notlike '127.*' } |
Select-Object -First 1).IPAddress
if (-not $localIP) {
Write-Host "❌ Could not find local IP address!" -ForegroundColor Red
Write-Host " Make sure you're connected to WiFi or Ethernet" -ForegroundColor Yellow
pause
exit 1
}
Write-Host "✅ Local IP found: $localIP" -ForegroundColor Green
Write-Host ""
# Display connection info
Write-Host "─────────────────────────────────────" -ForegroundColor DarkGray
Write-Host "📱 APK Configuration:" -ForegroundColor Cyan
Write-Host " Server URL: http://${localIP}:5001" -ForegroundColor White
Write-Host ""
Write-Host "🌐 Admin Panel:" -ForegroundColor Cyan
Write-Host " http://localhost:5001" -ForegroundColor White
Write-Host " http://${localIP}:5001" -ForegroundColor White
Write-Host ""
Write-Host "🔌 API Endpoints:" -ForegroundColor Cyan
Write-Host " Director: http://${localIP}:5001/director/api/android/getDirectionByPackage" -ForegroundColor White
Write-Host " Assets: http://${localIP}:5001/content/api/manifest" -ForegroundColor White
Write-Host "─────────────────────────────────────" -ForegroundColor DarkGray
Write-Host ""
# Check firewall rule
Write-Host "🔒 Checking Windows Firewall..." -ForegroundColor Yellow
$firewallRule = Get-NetFirewallRule -DisplayName "RR3 Community Server" -ErrorAction SilentlyContinue
if (-not $firewallRule) {
Write-Host "⚠️ Port 5001 not open in firewall" -ForegroundColor Yellow
Write-Host " Creating firewall rule..." -ForegroundColor Yellow
try {
New-NetFirewallRule `
-DisplayName "RR3 Community Server" `
-Direction Inbound `
-LocalPort 5001 `
-Protocol TCP `
-Action Allow `
-Profile Any | Out-Null
Write-Host "✅ Firewall rule created successfully" -ForegroundColor Green
} catch {
Write-Host "❌ Failed to create firewall rule (run as Administrator)" -ForegroundColor Red
Write-Host " You may need to manually allow port 5001" -ForegroundColor Yellow
}
} else {
Write-Host "✅ Firewall rule already exists" -ForegroundColor Green
}
Write-Host ""
# Check if server directory exists
if (-not (Test-Path "E:\rr3\RR3CommunityServer\RR3CommunityServer")) {
Write-Host "❌ Server directory not found!" -ForegroundColor Red
Write-Host " Expected: E:\rr3\RR3CommunityServer\RR3CommunityServer" -ForegroundColor Yellow
pause
exit 1
}
# Check if dotnet is installed
Write-Host "🔍 Checking .NET installation..." -ForegroundColor Yellow
$dotnetVersion = dotnet --version 2>$null
if (-not $dotnetVersion) {
Write-Host "❌ .NET SDK not found!" -ForegroundColor Red
Write-Host " Please install .NET 8 SDK: https://dotnet.microsoft.com/download" -ForegroundColor Yellow
pause
exit 1
}
Write-Host "✅ .NET $dotnetVersion installed" -ForegroundColor Green
Write-Host ""
# Check database
$dbPath = "E:\rr3\RR3CommunityServer\RR3CommunityServer\rr3community.db"
if (Test-Path $dbPath) {
$dbSize = [math]::Round((Get-Item $dbPath).Length / 1KB, 2)
Write-Host "✅ Database found ($dbSize KB)" -ForegroundColor Green
} else {
Write-Host "⚠️ No database found (will be created on first run)" -ForegroundColor Yellow
}
Write-Host ""
Write-Host "─────────────────────────────────────" -ForegroundColor DarkGray
Write-Host "📋 Quick Testing Checklist:" -ForegroundColor Cyan
Write-Host ""
Write-Host " 1. ✅ Server will start in a moment" -ForegroundColor White
Write-Host " 2. 📱 Configure APK with: http://${localIP}:5001" -ForegroundColor White
Write-Host " 3. 📡 Ensure phone is on same WiFi network" -ForegroundColor White
Write-Host " 4. 🎮 Install and launch modded APK" -ForegroundColor White
Write-Host " 5. 👀 Watch logs below for connection attempts" -ForegroundColor White
Write-Host ""
Write-Host "─────────────────────────────────────" -ForegroundColor DarkGray
Write-Host ""
Write-Host "🚀 Starting RR3 Community Server..." -ForegroundColor Green
Write-Host " (Press Ctrl+C to stop)" -ForegroundColor DarkGray
Write-Host ""
# Change to server directory
Push-Location "E:\rr3\RR3CommunityServer\RR3CommunityServer"
# Start the server
try {
dotnet run --urls "http://0.0.0.0:5001"
} finally {
Pop-Location
}