- Created `.env.production` file to define relative paths for production deployment. - Updated frontend API and WebSocket client to use environment variables for dynamic URL handling. - Enhanced deployment scripts (`deploy-ubuntu.sh`, `start.sh`, `start.bat`) to generate `.env.production` automatically. - Added `PRODUCTION_URLS.md` for documentation on production URL configuration and troubleshooting.
105 lines
3.1 KiB
Bash
105 lines
3.1 KiB
Bash
#!/bin/bash
|
|
# Единый скрипт запуска AI Code Review Platform
|
|
|
|
set -e
|
|
|
|
echo "🚀 AI Code Review Platform - Запуск"
|
|
echo "===================================="
|
|
echo ""
|
|
|
|
# Цвета для вывода
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 1. Проверка Node.js
|
|
echo -e "${YELLOW}📦 Проверка Node.js...${NC}"
|
|
if ! command -v node &> /dev/null; then
|
|
echo "❌ Node.js не установлен! Установите Node.js 18+ и попробуйте снова."
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}✅ Node.js $(node --version)${NC}"
|
|
echo ""
|
|
|
|
# 2. Проверка Python
|
|
echo -e "${YELLOW}🐍 Проверка Python...${NC}"
|
|
if ! command -v python &> /dev/null && ! command -v python3 &> /dev/null; then
|
|
echo "❌ Python не установлен! Установите Python 3.10+ и попробуйте снова."
|
|
exit 1
|
|
fi
|
|
|
|
PYTHON_CMD="python3"
|
|
if ! command -v python3 &> /dev/null; then
|
|
PYTHON_CMD="python"
|
|
fi
|
|
echo -e "${GREEN}✅ Python $($PYTHON_CMD --version)${NC}"
|
|
echo ""
|
|
|
|
# 3. Установка зависимостей frontend
|
|
echo -e "${YELLOW}📦 Установка зависимостей frontend...${NC}"
|
|
cd frontend
|
|
if [ ! -d "node_modules" ]; then
|
|
npm install
|
|
else
|
|
echo "node_modules уже существует, пропускаем..."
|
|
fi
|
|
echo -e "${GREEN}✅ Зависимости frontend установлены${NC}"
|
|
echo ""
|
|
|
|
# 4. Сборка frontend
|
|
echo -e "${YELLOW}🔨 Сборка frontend...${NC}"
|
|
|
|
# Создаем .env.production для production
|
|
cat > .env.production << 'EOF'
|
|
VITE_API_URL=/api
|
|
VITE_WS_URL=
|
|
EOF
|
|
|
|
npm run build
|
|
echo -e "${GREEN}✅ Frontend собран в backend/public${NC}"
|
|
echo ""
|
|
|
|
# 5. Установка зависимостей backend
|
|
cd ../backend
|
|
echo -e "${YELLOW}📦 Установка зависимостей backend...${NC}"
|
|
if [ ! -d "venv" ]; then
|
|
echo "Создание виртуального окружения..."
|
|
$PYTHON_CMD -m venv venv
|
|
fi
|
|
|
|
# Активация venv
|
|
source venv/bin/activate
|
|
|
|
# Установка зависимостей
|
|
pip install -r requirements.txt
|
|
echo -e "${GREEN}✅ Зависимости backend установлены${NC}"
|
|
echo ""
|
|
|
|
# 6. Проверка .env
|
|
if [ ! -f ".env" ]; then
|
|
echo -e "${YELLOW}⚠️ Файл .env не найден!${NC}"
|
|
echo "Создаем .env из примера..."
|
|
if [ -f ".env.example" ]; then
|
|
cp .env.example .env
|
|
echo -e "${GREEN}✅ Создан .env файл${NC}"
|
|
echo -e "${YELLOW}⚠️ ВАЖНО: Отредактируйте .env и добавьте необходимые токены!${NC}"
|
|
else
|
|
echo "❌ .env.example не найден!"
|
|
fi
|
|
echo ""
|
|
fi
|
|
|
|
# 7. Запуск backend
|
|
echo -e "${GREEN}🎉 Запуск сервера...${NC}"
|
|
echo "===================================="
|
|
echo ""
|
|
echo "📍 Backend: http://localhost:8000"
|
|
echo "📍 Frontend: http://localhost:8000"
|
|
echo "📍 API Docs: http://localhost:8000/docs"
|
|
echo ""
|
|
echo "Для остановки нажмите Ctrl+C"
|
|
echo ""
|
|
|
|
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
|
|