Translation_app_ / deploy.bat
Athena1621's picture
feat: Implement Multi-Lingual Product Catalog Translator frontend with Streamlit
67f25fb
@echo off
REM Universal Deployment Script for Windows
REM Multi-Lingual Catalog Translator
setlocal enabledelayedexpansion
REM Configuration
set PROJECT_NAME=multilingual-catalog-translator
set DEFAULT_PORT=8501
set BACKEND_PORT=8001
echo ========================================
echo Multi-Lingual Catalog Translator
echo Universal Deployment Pipeline
echo ========================================
echo.
REM Parse command line arguments
set COMMAND=%1
if "%COMMAND%"=="" set COMMAND=start
REM Check if Python is installed
python --version >nul 2>&1
if errorlevel 1 (
echo [ERROR] Python not found. Please install Python 3.8+
echo Download from: https://www.python.org/downloads/
pause
exit /b 1
)
echo [SUCCESS] Python found
REM Main command handling
if "%COMMAND%"=="start" goto :auto_deploy
if "%COMMAND%"=="docker" goto :docker_deploy
if "%COMMAND%"=="standalone" goto :standalone_deploy
if "%COMMAND%"=="status" goto :show_status
if "%COMMAND%"=="stop" goto :stop_services
if "%COMMAND%"=="help" goto :show_help
echo [ERROR] Unknown command: %COMMAND%
goto :show_help
:auto_deploy
echo [INFO] Starting automatic deployment...
docker --version >nul 2>&1
if errorlevel 1 (
echo [INFO] Docker not found, using standalone deployment
goto :standalone_deploy
) else (
echo [INFO] Docker found, using Docker deployment
goto :docker_deploy
)
:docker_deploy
echo [INFO] Deploying with Docker...
docker-compose down
docker-compose up --build -d
if errorlevel 1 (
echo [ERROR] Docker deployment failed
pause
exit /b 1
)
echo [SUCCESS] Docker deployment completed
echo [INFO] Frontend available at: http://localhost:8501
echo [INFO] Backend API available at: http://localhost:8001
goto :end
:standalone_deploy
echo [INFO] Deploying standalone application...
REM Create virtual environment if it doesn't exist
if not exist "venv" (
echo [INFO] Creating virtual environment...
python -m venv venv
)
REM Activate virtual environment
call venv\Scripts\activate.bat
REM Install requirements
echo [INFO] Installing Python packages...
pip install --upgrade pip
pip install -r requirements.txt
REM Start the application
echo [INFO] Starting application...
REM Check if full-stack deployment
if exist "backend\main.py" (
echo [INFO] Starting backend server...
start /b cmd /c "cd backend && python -m uvicorn main:app --host 0.0.0.0 --port %BACKEND_PORT%"
REM Wait for backend to start
timeout /t 3 /nobreak >nul
echo [INFO] Starting frontend...
cd frontend
set API_BASE_URL=http://localhost:%BACKEND_PORT%
streamlit run app.py --server.port %DEFAULT_PORT% --server.address 0.0.0.0
cd ..
) else (
REM Run standalone version
streamlit run app.py --server.port %DEFAULT_PORT% --server.address 0.0.0.0
)
echo [SUCCESS] Standalone deployment completed
goto :end
:show_status
echo [INFO] Checking deployment status...
REM Check if processes are running (simplified for Windows)
tasklist /FI "IMAGENAME eq python.exe" | find "python.exe" >nul
if errorlevel 1 (
echo [WARNING] No Python processes found
) else (
echo [SUCCESS] Python processes are running
)
REM Check Docker containers
docker ps --filter "name=%PROJECT_NAME%" >nul 2>&1
if not errorlevel 1 (
echo [INFO] Docker containers:
docker ps --filter "name=%PROJECT_NAME%" --format "table {{.Names}}\t{{.Status}}"
)
goto :end
:stop_services
echo [INFO] Stopping services...
REM Stop Docker containers
docker-compose down >nul 2>&1
REM Kill Python processes (simplified)
taskkill /F /IM python.exe >nul 2>&1
echo [SUCCESS] All services stopped
goto :end
:show_help
echo Multi-Lingual Catalog Translator - Universal Deployment Script
echo.
echo Usage: deploy.bat [COMMAND]
echo.
echo Commands:
echo start Start the application (default)
echo docker Deploy using Docker
echo standalone Deploy without Docker
echo status Show deployment status
echo stop Stop all services
echo help Show this help message
echo.
echo Examples:
echo deploy.bat # Quick start (auto-detect best method)
echo deploy.bat docker # Deploy with Docker
echo deploy.bat standalone # Deploy without Docker
echo deploy.bat status # Check status
echo deploy.bat stop # Stop all services
goto :end
:end
if "%COMMAND%"=="help" (
pause
) else (
echo.
echo Press any key to continue...
pause >nul
)
endlocal