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

3.3 KiB

Обновление кода на Ubuntu из архива

Этот архив предназначен для обновления кода проекта meeting-assistant поверх уже настроенного сервера.

Архив не должен заменять серверные секреты, данные и runtime-артефакты:

  • .env
  • data/
  • backend/.venv/
  • frontend/node_modules/
  • frontend/dist/
  • .git/
  • модели Whisper/Gemma/Ollama
  • данные n8n
  • записи, аудио, транскрипты и отчёты

1. Перенести архив на сервер

С Fedora или другой машины:

scp meeting-assistant-code-update-*.zip deploy@UBUNTU_SERVER:/tmp/

Если пользователь на сервере другой, замени deploy.

2. Зайти на сервер

ssh deploy@UBUNTU_SERVER

3. Сделать резервную копию текущего кода

sudo cp -a /opt/ai_agent_bobik /opt/ai_agent_bobik.backup.$(date +%Y%m%d-%H%M%S)

Если проект лежит не в /opt/ai_agent_bobik, используй свой путь.

4. Распаковать архив во временную папку

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. Синхронизировать код поверх проекта

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. Проверить, что серверные настройки остались

test -f /opt/ai_agent_bobik/.env && echo ".env на месте"
ls -la /opt/ai_agent_bobik/data

7. Применить миграции и пересобрать только сервисы приложения

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. Проверить после обновления

curl http://localhost:8000/health
curl http://localhost:8000/health/db
docker compose -f infrastructure/docker-compose.yml ps

9. Если нужно откатиться

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-папки.