103 lines
3.3 KiB
Markdown
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-папки.
|