55 lines
1.4 KiB
PowerShell
55 lines
1.4 KiB
PowerShell
param(
|
|
[int]$TimeoutSeconds = 90,
|
|
[switch]$OpenBrowser
|
|
)
|
|
|
|
. "$PSScriptRoot\env.ps1"
|
|
|
|
function Wait-HttpReady {
|
|
param(
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$Name,
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$Url,
|
|
[Parameter(Mandatory = $true)]
|
|
[datetime]$Deadline
|
|
)
|
|
|
|
Write-Host "Waiting for ${Name}: $Url"
|
|
while ((Get-Date) -lt $Deadline) {
|
|
try {
|
|
$response = Invoke-WebRequest -UseBasicParsing -Uri $Url -TimeoutSec 2
|
|
if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 500) {
|
|
Write-Host "$Name is ready: $Url"
|
|
return
|
|
}
|
|
} catch {
|
|
Start-Sleep -Milliseconds 700
|
|
}
|
|
}
|
|
|
|
throw "Timed out waiting for ${Name}: $Url"
|
|
}
|
|
|
|
& "$PSScriptRoot\start-all.ps1"
|
|
if ($LASTEXITCODE -ne 0) {
|
|
exit $LASTEXITCODE
|
|
}
|
|
|
|
$deadline = (Get-Date).AddSeconds($TimeoutSeconds)
|
|
Wait-HttpReady -Name "backend" -Url "$BackendPublicBaseUrl/api/health" -Deadline $deadline
|
|
Wait-HttpReady -Name "frontend" -Url "$FrontendPublicBaseUrl/" -Deadline $deadline
|
|
|
|
Write-Host ""
|
|
Write-Host "DeerFlow is ready."
|
|
Write-Host "Frontend: $FrontendPublicBaseUrl/"
|
|
Write-Host "Backend: $BackendPublicBaseUrl"
|
|
Write-Host ""
|
|
Write-Host "Logs:"
|
|
Write-Host " Backend: $(Join-Path $LogDir 'backend.log')"
|
|
Write-Host " Frontend: $(Join-Path $LogDir 'frontend.log')"
|
|
|
|
if ($OpenBrowser) {
|
|
Start-Process "$FrontendPublicBaseUrl/"
|
|
}
|