code-review-agent/docs/REDEPLOY_UBUNTU_QUICK.md

151 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 Быстрое обновление на Ubuntu
## Важно! ⚠️
Скрипт `redeploy-ubuntu.sh` **требует bash**, не используйте `sh`.
## ✅ Правильный способ запуска:
```bash
# Вариант 1: Через bash явно
cd ~/code-review-agent # или /opt/ai-review
sudo bash redeploy-ubuntu.sh
# Вариант 2: Сделать исполняемым
chmod +x redeploy-ubuntu.sh
sudo ./redeploy-ubuntu.sh
```
## ❌ Неправильно:
```bash
sudo sh redeploy-ubuntu.sh # НЕ ИСПОЛЬЗУЙТЕ sh!
```
## 🔧 Что исправлено:
1. ✅ Проверка наличия bash
2. ✅ Работа из любой директории проекта (не обязательно /opt/ai-review)
3. ✅ Backup создается в локальной директории `./backups/`
4. ✅ Работает без systemd сервиса (для dev окружения)
5.Не требует интерактивного подтверждения для non-git репозиториев
6. ✅ Более надежная обработка ошибок
## 📋 Workflow обновления:
### 1. Подготовка (на локальной машине):
```bash
# Внести изменения в код
git add .
git commit -m "Update feature"
git push
```
### 2. На сервере:
```bash
# Зайти на сервер
ssh user@your-server
# Перейти в директорию проекта
cd ~/code-review-agent # или где у вас установлен проект
# Обновить код (если git)
git pull
# ИЛИ скопировать новые файлы вручную:
# scp -r ./backend user@server:~/code-review-agent/
# scp -r ./frontend user@server:~/code-review-agent/
# Запустить redeploy
sudo bash redeploy-ubuntu.sh
```
### 3. Проверка:
```bash
# Проверить статус
systemctl status ai-review
# Или если без systemd:
ps aux | grep uvicorn
# Проверить логи
journalctl -u ai-review -f
# Или:
tail -f nohup.out
```
## 🐛 Troubleshooting:
### Ошибка: "This script requires bash"
```bash
# Используйте bash явно
sudo bash redeploy-ubuntu.sh
```
### Ошибка: Permission denied при создании backup
Это нормально - скрипт создаст backup в локальной директории `./backups/`
### Ошибка: Service не найден
Это нормально если вы не устанавливали systemd сервис. Скрипт все равно соберет проект.
### Frontend не собрался
```bash
cd frontend
rm -rf node_modules
npm install
npm run build
```
### Backend зависимости не установились
```bash
cd backend
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
```
## 📊 Что делает скрипт:
1. **Останавливает сервис** (если установлен в systemd)
2. **Создает backup БД** в `./backups/backup-YYYYMMDD-HHMMSS/`
3. **Обновляет код** через git pull (если это git репозиторий)
4. **Обновляет зависимости backend** (Python пакеты)
5. **Применяет миграции БД** (создает новые таблицы)
6. **Собирает frontend** (React → static files)
7. **Запускает сервис** (если установлен в systemd)
## 🎯 Быстрые команды:
```bash
# Полное обновление
cd ~/code-review-agent && git pull && sudo bash redeploy-ubuntu.sh
# Только пересборка (без git pull)
cd ~/code-review-agent && sudo bash redeploy-ubuntu.sh
# Откат к предыдущей версии
cd ~/code-review-agent
sudo systemctl stop ai-review
sudo cp backups/backup-YYYYMMDD-HHMMSS/review.db backend/
git reset --hard HEAD~1
sudo bash redeploy-ubuntu.sh
```
## ✅ Готово!
Скрипт теперь работает:
-С bash (не sh)
- ✅ Из любой директории проекта
- ✅ Без интерактивных вопросов
-С локальными backups
-С или без systemd