Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' # Load shared utilities $utilsPath = Join-Path $PSScriptRoot '..\lib\utils.ps1' . $utilsPath .\scripts\Windows\starter.ps1 if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } # Shutdown services Write-Step "Shutting down..." docker compose down if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Failed to shut down services" exit $LASTEXITCODE } Write-Success "Services were shut down successfully!" # Rebuild and start services Write-Step "Spinning services up with rebuild..." docker compose up -d --build --wait if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Failed to start services" exit $LASTEXITCODE } Write-Success "Services are up and healthy!" # Run pre-run tasks Write-Step "Completing pre-run tasks..." Write-Info " → Running migrations..." docker compose exec app uv run manage.py migrate --no-input if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Migrations failed" exit $LASTEXITCODE } Write-Info " → Initializing..." docker compose exec app uv run manage.py initialize if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Initialization failed" exit $LASTEXITCODE } Write-Info " → Setting default caches..." docker compose exec app uv run manage.py set_default_caches if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Cache setup failed" exit $LASTEXITCODE } Write-Info " → Rebuilding search index..." docker compose exec app uv run manage.py search_index --rebuild -f if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Search index rebuild failed" exit $LASTEXITCODE } Write-Info " → Collecting static files..." docker compose exec app uv run manage.py collectstatic --clear --no-input if ($LASTEXITCODE -ne 0) { Write-Error-Custom "Static files collection failed" exit $LASTEXITCODE } Write-Success "Pre-run tasks completed successfully!" # Cleanup Write-Step "Cleaning up unused Docker data..." docker system prune -f if ($LASTEXITCODE -ne 0) { Write-Warning-Custom "Docker cleanup had issues, but continuing..." } Write-Success "Unused Docker data cleaned successfully!" Write-Result "" Write-Result "All done! eVibes is up and running!"