#!/bin/bash echo "==========================================" echo "AI Review - Диагностика и исправление" echo "==========================================" echo "" # Определить директорию установки (где находится скрипт) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" INSTALL_DIR="$SCRIPT_DIR" echo "Working directory: $INSTALL_DIR" echo "" echo "1. Проверка файлов:" echo " - Backend: $([ -d $INSTALL_DIR/backend ] && echo '✓' || echo '✗')" echo " - Frontend: $([ -d $INSTALL_DIR/frontend ] && echo '✓' || echo '✗')" echo " - venv: $([ -d $INSTALL_DIR/backend/venv ] && echo '✓' || echo '✗ MISSING')" echo " - venv/bin/python: $([ -f $INSTALL_DIR/backend/venv/bin/python ] && echo '✓' || echo '✗ MISSING')" echo " - venv/bin/python3: $([ -f $INSTALL_DIR/backend/venv/bin/python3 ] && echo '✓' || echo '✗ MISSING')" echo " - public: $([ -d $INSTALL_DIR/backend/public ] && echo '✓' || echo '✗ MISSING')" echo " - DB: $([ -f $INSTALL_DIR/backend/review.db ] && echo '✓' || echo '⚠️ будет создана')" echo "" # Проверить что именно в venv if [ -d "$INSTALL_DIR/backend/venv" ]; then echo "2. Содержимое venv/bin/:" ls -la "$INSTALL_DIR/backend/venv/bin/" | head -20 echo "" fi echo "==========================================" echo "Исправление" echo "==========================================" echo "" cd "$INSTALL_DIR/backend" # Удалить старый venv если есть if [ -d "venv" ]; then echo "Удаление старого venv..." rm -rf venv fi # Создать новый venv echo "Создание нового venv..." python3 -m venv venv # Проверить создание if [ ! -f "venv/bin/python" ] && [ ! -f "venv/bin/python3" ]; then echo "✗ ОШИБКА: venv не создан правильно!" echo "" echo "Попробуйте:" echo " sudo apt-get install python3-venv" echo " python3 -m venv venv" exit 1 fi echo "✓ venv создан" # Активировать и установить зависимости echo "Установка зависимостей..." source venv/bin/activate pip install --upgrade pip > /dev/null pip install -r requirements.txt echo "✓ Зависимости установлены" # Применить миграции if [ -f "migrate.py" ]; then echo "Применение миграций..." python migrate.py echo "✓ Миграции применены" fi echo "" echo "==========================================" echo "Проверка" echo "==========================================" echo "" echo "Попытка запуска (5 секунд)..." timeout 5 python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 2>&1 | head -20 & UVICORN_PID=$! sleep 6 if ps -p $UVICORN_PID > /dev/null 2>&1; then echo "✓ Uvicorn запустился успешно" kill $UVICORN_PID 2>/dev/null else echo "⚠️ Uvicorn остановился (это нормально для теста)" fi echo "" echo "==========================================" echo "Готово!" echo "==========================================" echo "" echo "Теперь перезапустите сервис:" echo " sudo systemctl restart ai-review" echo " sudo systemctl status ai-review" echo "" echo "Или запустите вручную для теста:" echo " cd $INSTALL_DIR/backend" echo " source venv/bin/activate" echo " python -m uvicorn app.main:app --host 0.0.0.0 --port 8000"