fix: switch startup script to source mode
This commit is contained in:
@@ -2,37 +2,12 @@
|
|||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
set "ROOT=%~dp0"
|
set "ROOT=%~dp0"
|
||||||
|
set "BACKEND_DIR=%ROOT%backend"
|
||||||
|
set "VENV_PYTHON=%BACKEND_DIR%\.venv\Scripts\python.exe"
|
||||||
|
set "SOURCE_BACKEND_ENV=set DATABASE_URL=sqlite:///./aivideo.sqlite3 && set CELERY_TASK_ALWAYS_EAGER=true && set STORAGE_PROVIDER=local && set LOCAL_STORAGE_PATH=storage_data && set STORAGE_PUBLIC_BASE_URL=http://127.0.0.1:8000/storage"
|
||||||
cd /d "%ROOT%"
|
cd /d "%ROOT%"
|
||||||
|
|
||||||
echo [1/6] Checking Docker...
|
echo [1/6] Checking Python...
|
||||||
set "DOCKER_EXE="
|
|
||||||
set "DOCKER_DESKTOP_EXE="
|
|
||||||
call :resolve_docker
|
|
||||||
|
|
||||||
if not defined DOCKER_EXE (
|
|
||||||
echo Docker CLI was not found.
|
|
||||||
echo Install Docker Desktop, or add docker.exe to PATH, then rerun this script.
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
call :ensure_docker_ready
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
|
|
||||||
echo [2/6] Starting mysql, redis and minio...
|
|
||||||
call "%DOCKER_EXE%" compose up -d mysql redis minio
|
|
||||||
if errorlevel 1 (
|
|
||||||
echo Failed to start docker services.
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
if not exist "%ROOT%backend\.env" (
|
|
||||||
echo Missing backend\.env
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
set "PYTHON_CMD="
|
set "PYTHON_CMD="
|
||||||
where py >nul 2>nul
|
where py >nul 2>nul
|
||||||
if not errorlevel 1 set "PYTHON_CMD=py -3"
|
if not errorlevel 1 set "PYTHON_CMD=py -3"
|
||||||
@@ -48,24 +23,42 @@ if not defined PYTHON_CMD (
|
|||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
if not exist "%ROOT%backend\.venv\Scripts\python.exe" (
|
echo [2/6] Checking npm...
|
||||||
echo [3/6] Creating backend virtual environment...
|
where npm >nul 2>nul
|
||||||
call %PYTHON_CMD% -m venv "%ROOT%backend\.venv"
|
if errorlevel 1 (
|
||||||
|
echo npm was not found in PATH.
|
||||||
|
echo Install Node.js, then rerun this script.
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
echo [3/6] Checking backend environment...
|
||||||
|
if exist "%BACKEND_DIR%\.env" (
|
||||||
|
echo Found backend\.env.
|
||||||
|
echo Source mode will still prefer local SQLite and local storage for one-click startup.
|
||||||
|
) else (
|
||||||
|
echo backend\.env was not found.
|
||||||
|
echo The backend will start with built-in defaults ^(SQLite, local storage, mock task flow^).
|
||||||
|
)
|
||||||
|
|
||||||
|
if not exist "%VENV_PYTHON%" (
|
||||||
|
echo [4/6] Creating backend virtual environment...
|
||||||
|
call %PYTHON_CMD% -m venv "%BACKEND_DIR%\.venv"
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo Failed to create backend virtual environment.
|
echo Failed to create backend virtual environment.
|
||||||
pause
|
pause
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
echo [4/6] Installing backend dependencies...
|
echo Installing backend dependencies...
|
||||||
call "%ROOT%backend\.venv\Scripts\python.exe" -m pip install --disable-pip-version-check -r "%ROOT%backend\requirements.txt"
|
call "%VENV_PYTHON%" -m pip install --disable-pip-version-check -r "%BACKEND_DIR%\requirements.txt"
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo Failed to install backend dependencies.
|
echo Failed to install backend dependencies.
|
||||||
pause
|
pause
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
) else (
|
) else (
|
||||||
echo [3/6] Backend virtual environment already exists.
|
echo [4/6] Backend virtual environment already exists.
|
||||||
)
|
)
|
||||||
|
|
||||||
if not exist "%ROOT%node_modules" (
|
if not exist "%ROOT%node_modules" (
|
||||||
@@ -81,7 +74,7 @@ if not exist "%ROOT%node_modules" (
|
|||||||
)
|
)
|
||||||
|
|
||||||
echo [6/6] Starting backend and unified frontend...
|
echo [6/6] Starting backend and unified frontend...
|
||||||
start "AIVideo Backend" cmd /k "cd /d ""%ROOT%backend"" && ""%ROOT%backend\.venv\Scripts\python.exe"" -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000"
|
start "AIVideo Backend" cmd /k "cd /d ""%BACKEND_DIR%"" && %SOURCE_BACKEND_ENV% && ""%VENV_PYTHON%"" -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000"
|
||||||
start "AIVideo Frontend" cmd /k "cd /d ""%ROOT%"" && npm run dev"
|
start "AIVideo Frontend" cmd /k "cd /d ""%ROOT%"" && npm run dev"
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
@@ -91,73 +84,3 @@ echo API: http://localhost:8000
|
|||||||
echo.
|
echo.
|
||||||
echo Two windows have been opened for backend and frontend.
|
echo Two windows have been opened for backend and frontend.
|
||||||
pause
|
pause
|
||||||
goto :eof
|
|
||||||
|
|
||||||
:resolve_docker
|
|
||||||
for /f "delims=" %%I in ('where docker 2^>nul') do (
|
|
||||||
if not defined DOCKER_EXE set "DOCKER_EXE=%%~fI"
|
|
||||||
)
|
|
||||||
|
|
||||||
if defined DOCKER_EXE goto resolve_desktop
|
|
||||||
|
|
||||||
for %%I in (
|
|
||||||
"%ProgramFiles%\Docker\Docker\resources\bin\docker.exe"
|
|
||||||
"%ProgramFiles%\Docker\Docker\resources\bin\com.docker.cli.exe"
|
|
||||||
"%ProgramW6432%\Docker\Docker\resources\bin\docker.exe"
|
|
||||||
"%ProgramW6432%\Docker\Docker\resources\bin\com.docker.cli.exe"
|
|
||||||
"%LocalAppData%\Programs\Docker\Docker\resources\bin\docker.exe"
|
|
||||||
"%LocalAppData%\Programs\Docker\Docker\resources\bin\com.docker.cli.exe"
|
|
||||||
) do (
|
|
||||||
if exist "%%~fI" (
|
|
||||||
set "DOCKER_EXE=%%~fI"
|
|
||||||
goto resolve_desktop
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
:resolve_desktop
|
|
||||||
for %%I in (
|
|
||||||
"%ProgramFiles%\Docker\Docker\Docker Desktop.exe"
|
|
||||||
"%ProgramW6432%\Docker\Docker\Docker Desktop.exe"
|
|
||||||
"%LocalAppData%\Programs\Docker\Docker\Docker Desktop.exe"
|
|
||||||
) do (
|
|
||||||
if exist "%%~fI" (
|
|
||||||
set "DOCKER_DESKTOP_EXE=%%~fI"
|
|
||||||
goto :eof
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
:ensure_docker_ready
|
|
||||||
call "%DOCKER_EXE%" info >nul 2>nul
|
|
||||||
if not errorlevel 1 exit /b 0
|
|
||||||
|
|
||||||
if defined DOCKER_DESKTOP_EXE (
|
|
||||||
echo Docker Desktop is installed but not ready. Starting it now...
|
|
||||||
start "" "%DOCKER_DESKTOP_EXE%"
|
|
||||||
call :wait_for_docker 60
|
|
||||||
if not errorlevel 1 exit /b 0
|
|
||||||
|
|
||||||
echo Docker Desktop did not become ready in time.
|
|
||||||
echo Wait for Docker Desktop to finish starting, then rerun this script.
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
echo Docker CLI was found, but the Docker engine is not ready.
|
|
||||||
echo Start Docker Desktop or Docker Engine, then rerun this script.
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:wait_for_docker
|
|
||||||
set "DOCKER_WAIT_REMAINING=%~1"
|
|
||||||
if not defined DOCKER_WAIT_REMAINING set "DOCKER_WAIT_REMAINING=60"
|
|
||||||
|
|
||||||
:wait_for_docker_loop
|
|
||||||
call "%DOCKER_EXE%" info >nul 2>nul
|
|
||||||
if not errorlevel 1 exit /b 0
|
|
||||||
if %DOCKER_WAIT_REMAINING% LEQ 0 exit /b 1
|
|
||||||
|
|
||||||
timeout /t 2 /nobreak >nul
|
|
||||||
set /a DOCKER_WAIT_REMAINING-=2
|
|
||||||
goto wait_for_docker_loop
|
|
||||||
|
|||||||
Reference in New Issue
Block a user