99 lines
2.8 KiB
Bash
99 lines
2.8 KiB
Bash
#!/bin/bash
|
||
|
||
set -e
|
||
|
||
echo "🚀 Team Status Board - Запуск приложения"
|
||
echo "========================================="
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
cd "$SCRIPT_DIR"
|
||
|
||
# Функция проверки наличия команды
|
||
command_exists() {
|
||
command -v "$1" >/dev/null 2>&1
|
||
}
|
||
|
||
# Определение команды Python
|
||
PYTHON_CMD="python3"
|
||
if ! command_exists python3; then
|
||
if command_exists py; then
|
||
PYTHON_CMD="py"
|
||
else
|
||
echo "❌ Python не найден. Установите Python 3.8+"
|
||
exit 1
|
||
fi
|
||
fi
|
||
echo "✓ Python найден: $($PYTHON_CMD --version)"
|
||
|
||
# Проверка Node.js
|
||
if ! command_exists node; then
|
||
echo "❌ Node.js не найден. Установите Node.js 18+"
|
||
exit 1
|
||
fi
|
||
echo "✓ Node.js найден: $(node --version)"
|
||
|
||
# Создание и активация venv для бэкенда
|
||
if [ ! -d "backend/venv" ]; then
|
||
echo "📦 Создание виртуального окружения Python..."
|
||
$PYTHON_CMD -m venv backend/venv
|
||
fi
|
||
echo "✓ Виртуальное окружение готово"
|
||
|
||
# Активация venv (разные способы для Linux/WSL и Windows)
|
||
if [ -f "backend/venv/bin/activate" ]; then
|
||
source backend/venv/bin/activate
|
||
elif [ -f "backend/venv/Scripts/activate" ]; then
|
||
source backend/venv/Scripts/activate
|
||
else
|
||
echo "❌ Не найдено окружение venv"
|
||
exit 1
|
||
fi
|
||
|
||
# Установка зависимостей Python
|
||
echo "📦 Установка Python зависимостей..."
|
||
pip install --quiet -r backend/requirements.txt
|
||
echo "✓ Python зависимости установлены"
|
||
|
||
# Установка зависимостей Node.js
|
||
echo "📦 Установка Node.js зависимостей..."
|
||
cd frontend
|
||
if [ ! -d "node_modules" ]; then
|
||
npm install --silent
|
||
fi
|
||
echo "✓ Node.js зависимости установлены"
|
||
cd ..
|
||
|
||
# Запуск бэкенда в фоне
|
||
echo "🔙 Запуск бэкенда (FastAPI)..."
|
||
cd backend
|
||
$PYTHON_CMD main.py &
|
||
BACKEND_PID=$!
|
||
cd ..
|
||
|
||
# Ожидание запуска бэкенда
|
||
echo "⏳ Ожидание запуска бэкенда..."
|
||
sleep 3
|
||
|
||
# Запуск фронтенда
|
||
echo "🎨 Запуск фронтенда (React + Vite)..."
|
||
cd frontend
|
||
npm run dev &
|
||
FRONTEND_PID=$!
|
||
cd ..
|
||
|
||
echo ""
|
||
echo "========================================="
|
||
echo "✅ Приложение запущено!"
|
||
echo ""
|
||
echo "Бэкенд API: http://localhost:8000"
|
||
echo "Frontend: http://localhost:3000"
|
||
echo ""
|
||
echo "PID бэкенда: $BACKEND_PID"
|
||
echo "PID фронтенда: $FRONTEND_PID"
|
||
echo ""
|
||
echo "Для остановки нажмите Ctrl+C"
|
||
echo "========================================="
|
||
|
||
# Ожидание завершения
|
||
wait
|