code-review-agent/fix-installation.sh
Primakov Alexandr Alexandrovich 6fbd421b46 Update installation script to set installation directory dynamically
- Modified `fix-installation.sh` to determine the installation directory based on the script's location.
- Added output to display the working directory for better user feedback during installation.
2025-10-13 00:28:57 +03:00

93 lines
2.8 KiB
Bash

#!/bin/bash
###############################################################################
# Скрипт быстрого исправления установки
###############################################################################
set -e
echo "=========================================="
echo "Fixing AI Review Installation"
echo "=========================================="
echo ""
# Определить директорию установки (где находится скрипт)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
INSTALL_DIR="$SCRIPT_DIR"
echo "Working directory: $INSTALL_DIR"
echo ""
cd "$INSTALL_DIR"
# 1. Создать Python virtual environment
echo "[1/5] Создание Python virtual environment..."
cd backend
python3 -m venv venv
source venv/bin/activate
echo "✓ venv создан"
echo ""
# 2. Установить Python зависимости
echo "[2/5] Установка Python зависимостей..."
pip install --upgrade pip > /dev/null
pip install -r requirements.txt > /dev/null
echo "✓ Python зависимости установлены"
echo ""
# 3. Создать базу данных
echo "[3/5] Создание базы данных..."
python migrate.py
echo "✓ База данных создана"
echo ""
# 4. Установить Node.js зависимости и собрать frontend
echo "[4/5] Сборка frontend..."
cd ../frontend
# Проверить наличие Node.js
if ! command -v node &> /dev/null; then
echo "ERROR: Node.js не установлен!"
echo "Установите: curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && sudo apt-get install -y nodejs"
exit 1
fi
# Создать .env.production
cat > .env.production << 'EOF'
VITE_API_URL=/api
VITE_WS_URL=
EOF
npm install > /dev/null 2>&1
npm run build
echo "✓ Frontend собран"
echo ""
# 5. Проверить результат
echo "[5/5] Проверка..."
cd ..
echo "Backend venv: $([ -d backend/venv ] && echo '✓ OK' || echo '✗ MISSING')"
echo "Backend DB: $([ -f backend/review.db ] && echo '✓ OK' || echo '✗ MISSING')"
echo "Frontend build: $([ -d backend/public ] && echo '✓ OK' || echo '✗ MISSING')"
echo ""
if [ -d backend/venv ] && [ -f backend/review.db ] && [ -d backend/public ]; then
echo "=========================================="
echo "✓ Installation fixed successfully!"
echo "=========================================="
echo ""
echo "Now run:"
echo " sudo systemctl restart ai-review"
echo " sudo systemctl status ai-review"
echo ""
echo "Or start manually:"
echo " cd $INSTALL_DIR/backend"
echo " source venv/bin/activate"
echo " uvicorn app.main:app --host 0.0.0.0 --port 8000"
else
echo "ERROR: Something is still missing!"
exit 1
fi