Files
Ai1/DEPLOY_CODE_UPDATE_FROM_ARCHIVE.md
2026-07-17 08:15:07 +00:00

103 lines
3.3 KiB
Markdown

# Обновление кода на Ubuntu из архива
Этот архив предназначен для обновления кода проекта `meeting-assistant` поверх уже настроенного сервера.
Архив не должен заменять серверные секреты, данные и runtime-артефакты:
- `.env`
- `data/`
- `backend/.venv/`
- `frontend/node_modules/`
- `frontend/dist/`
- `.git/`
- модели Whisper/Gemma/Ollama
- данные n8n
- записи, аудио, транскрипты и отчёты
## 1. Перенести архив на сервер
С Fedora или другой машины:
```bash
scp meeting-assistant-code-update-*.zip deploy@UBUNTU_SERVER:/tmp/
```
Если пользователь на сервере другой, замени `deploy`.
## 2. Зайти на сервер
```bash
ssh deploy@UBUNTU_SERVER
```
## 3. Сделать резервную копию текущего кода
```bash
sudo cp -a /opt/ai_agent_bobik /opt/ai_agent_bobik.backup.$(date +%Y%m%d-%H%M%S)
```
Если проект лежит не в `/opt/ai_agent_bobik`, используй свой путь.
## 4. Распаковать архив во временную папку
```bash
rm -rf /tmp/meeting-assistant-update
mkdir -p /tmp/meeting-assistant-update
unzip /tmp/meeting-assistant-code-update-*.zip -d /tmp/meeting-assistant-update
```
## 5. Синхронизировать код поверх проекта
```bash
rsync -avh --delete \
--exclude='.env' \
--exclude='.git/' \
--exclude='data/' \
--exclude='backend/.venv/' \
--exclude='frontend/node_modules/' \
--exclude='frontend/dist/' \
--exclude='*.log' \
/tmp/meeting-assistant-update/ \
/opt/ai_agent_bobik/
```
Важно: слэш в конце `/tmp/meeting-assistant-update/` означает “скопировать содержимое папки”.
## 6. Проверить, что серверные настройки остались
```bash
test -f /opt/ai_agent_bobik/.env && echo ".env на месте"
ls -la /opt/ai_agent_bobik/data
```
## 7. Применить миграции и пересобрать только сервисы приложения
```bash
cd /opt/ai_agent_bobik
docker compose -f infrastructure/docker-compose.yml run --rm migrator
docker compose -f infrastructure/docker-compose.yml up -d --build backend frontend worker recording-cleanup
```
Если n8n, Ollama/Gemma, Whisper-модели и FFmpeg уже установлены отдельно, их не переустанавливай. Для n8n на другой машине достаточно, чтобы в серверном `.env` был правильный `N8N_WEBHOOK_URL`.
## 8. Проверить после обновления
```bash
curl http://localhost:8000/health
curl http://localhost:8000/health/db
docker compose -f infrastructure/docker-compose.yml ps
```
## 9. Если нужно откатиться
```bash
sudo systemctl stop docker
sudo rm -rf /opt/ai_agent_bobik
sudo cp -a /opt/ai_agent_bobik.backup.YYYYMMDD-HHMMSS /opt/ai_agent_bobik
sudo systemctl start docker
cd /opt/ai_agent_bobik
docker compose -f infrastructure/docker-compose.yml up -d
```
Подставь фактическое имя backup-папки.