- Updated `README.md` to include instructions for the new `redeploy-ubuntu.sh` script and added a link to the new `REDEPLOY_GUIDE.md`. - Created `REDEPLOY_GUIDE.md` detailing the redeployment process, including backup creation, code updates, and troubleshooting steps. - Introduced `redeploy-hint.md` for GitHub Actions automation example, outlining setup for automatic redeployment on push events. - Improved documentation structure for better navigation and clarity.
4.2 KiB
4.2 KiB
🚀 Быстрое обновление на Ubuntu
Важно! ⚠️
Скрипт redeploy-ubuntu.sh требует bash, не используйте sh.
✅ Правильный способ запуска:
# Вариант 1: Через bash явно
cd ~/code-review-agent # или /opt/ai-review
sudo bash redeploy-ubuntu.sh
# Вариант 2: Сделать исполняемым
chmod +x redeploy-ubuntu.sh
sudo ./redeploy-ubuntu.sh
❌ Неправильно:
sudo sh redeploy-ubuntu.sh # НЕ ИСПОЛЬЗУЙТЕ sh!
🔧 Что исправлено:
- ✅ Проверка наличия bash
- ✅ Работа из любой директории проекта (не обязательно /opt/ai-review)
- ✅ Backup создается в локальной директории
./backups/ - ✅ Работает без systemd сервиса (для dev окружения)
- ✅ Не требует интерактивного подтверждения для non-git репозиториев
- ✅ Более надежная обработка ошибок
📋 Workflow обновления:
1. Подготовка (на локальной машине):
# Внести изменения в код
git add .
git commit -m "Update feature"
git push
2. На сервере:
# Зайти на сервер
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. Проверка:
# Проверить статус
systemctl status ai-review
# Или если без systemd:
ps aux | grep uvicorn
# Проверить логи
journalctl -u ai-review -f
# Или:
tail -f nohup.out
🐛 Troubleshooting:
Ошибка: "This script requires bash"
# Используйте bash явно
sudo bash redeploy-ubuntu.sh
Ошибка: Permission denied при создании backup
Это нормально - скрипт создаст backup в локальной директории ./backups/
Ошибка: Service не найден
Это нормально если вы не устанавливали systemd сервис. Скрипт все равно соберет проект.
Frontend не собрался
cd frontend
rm -rf node_modules
npm install
npm run build
Backend зависимости не установились
cd backend
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
📊 Что делает скрипт:
- Останавливает сервис (если установлен в systemd)
- Создает backup БД в
./backups/backup-YYYYMMDD-HHMMSS/ - Обновляет код через git pull (если это git репозиторий)
- Обновляет зависимости backend (Python пакеты)
- Применяет миграции БД (создает новые таблицы)
- Собирает frontend (React → static files)
- Запускает сервис (если установлен в systemd)
🎯 Быстрые команды:
# Полное обновление
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