Spaces:
Running
Running
| # ============================================================ | |
| # MELODIX API - Launcher | |
| # Doble clic o "Ejecutar con PowerShell" para iniciar todo | |
| # ============================================================ | |
| Set-Location $PSScriptRoot | |
| $VenvPython = "$PSScriptRoot\venv_musical\Scripts\python.exe" | |
| $VenvActivate= "$PSScriptRoot\venv_musical\Scripts\Activate.ps1" | |
| # ---- Verificaciones rapidas -------------------------------- | |
| if (-not (Test-Path $VenvPython)) { | |
| Write-Host "ERROR: No se encontro el entorno virtual en venv_musical\" -ForegroundColor Red | |
| Read-Host "Presiona Enter para salir" | |
| exit 1 | |
| } | |
| foreach ($dir in @("logs","uploads","processed")) { | |
| $path = Join-Path $PSScriptRoot $dir | |
| if (-not (Test-Path $path)) { New-Item -ItemType Directory -Path $path -Force | Out-Null } | |
| } | |
| # ---- Obtener IP local -------------------------------------- | |
| $LocalIP = (Get-NetIPAddress -AddressFamily IPv4 | | |
| Where-Object { $_.IPAddress -notlike "127.*" -and $_.IPAddress -notlike "169.*" } | | |
| Select-Object -First 1).IPAddress | |
| # ---- Iniciar Celery Worker --------------------------------- | |
| $celeryScript = Join-Path $PSScriptRoot "_run_celery.ps1" | |
| Set-Content -Path $celeryScript -Encoding UTF8 -Value @' | |
| Set-Location $PSScriptRoot | |
| Write-Host "================================================" -ForegroundColor Cyan | |
| Write-Host " MELODIX - Celery Worker" -ForegroundColor Cyan | |
| Write-Host "================================================" -ForegroundColor Cyan | |
| Write-Host "" | |
| & ".\venv_musical\Scripts\Activate.ps1" | |
| & ".\venv_musical\Scripts\python.exe" -m celery -A tasks worker --loglevel=info --concurrency=1 -P solo | |
| Write-Host "" | |
| Write-Host "Celery Worker detenido." -ForegroundColor Yellow | |
| Read-Host "Presiona Enter para cerrar" | |
| '@ | |
| Start-Process powershell -ArgumentList "-NoExit", "-File", "`"$celeryScript`"" -WorkingDirectory $PSScriptRoot | |
| Start-Sleep -Seconds 3 | |
| # ---- Iniciar Uvicorn --------------------------------------- | |
| $uvicornScript = Join-Path $PSScriptRoot "_run_uvicorn.ps1" | |
| $uvicornContent = @' | |
| Set-Location $PSScriptRoot | |
| Write-Host "================================================" -ForegroundColor Magenta | |
| Write-Host " MELODIX - FastAPI / Uvicorn" -ForegroundColor Magenta | |
| Write-Host "================================================" -ForegroundColor Magenta | |
| Write-Host "" | |
| '@ | |
| $uvicornContent += "Write-Host ' Local: http://localhost:8000' -ForegroundColor Green`n" | |
| $uvicornContent += "Write-Host ' Red: http://${LocalIP}:8000' -ForegroundColor Green`n" | |
| $uvicornContent += "Write-Host ' Docs: http://localhost:8000/docs' -ForegroundColor Green`n" | |
| $uvicornContent += "Write-Host ''`n" | |
| $uvicornContent += @' | |
| & ".\venv_musical\Scripts\Activate.ps1" | |
| & ".\venv_musical\Scripts\python.exe" -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload | |
| Write-Host "" | |
| Write-Host "Uvicorn detenido." -ForegroundColor Yellow | |
| Read-Host "Presiona Enter para cerrar" | |
| '@ | |
| Set-Content -Path $uvicornScript -Encoding UTF8 -Value $uvicornContent | |
| Start-Process powershell -ArgumentList "-NoExit", "-File", "`"$uvicornScript`"" -WorkingDirectory $PSScriptRoot | |
| # ---- Resumen ----------------------------------------------- | |
| Write-Host "" | |
| Write-Host "================================================" -ForegroundColor Green | |
| Write-Host " MELODIX INICIADO CORRECTAMENTE" -ForegroundColor Green | |
| Write-Host "================================================" -ForegroundColor Green | |
| Write-Host "" | |
| Write-Host " Celery Worker -> ventana azul" -ForegroundColor Cyan | |
| Write-Host " Uvicorn API -> ventana magenta" -ForegroundColor Magenta | |
| Write-Host " API URL: http://${LocalIP}:8000" -ForegroundColor White | |
| Write-Host " Swagger Docs: http://localhost:8000/docs" -ForegroundColor White | |
| Write-Host "" | |
| Write-Host " Para detener: cierra las ventanas de Celery y Uvicorn." -ForegroundColor DarkGray | |
| Write-Host "" | |
| Read-Host "Presiona Enter para cerrar esta ventana" | |