#!/bin/bash # Скрипт для deployment DAGI Router та Swapper Service на НОДА1 # Використання: ./scripts/deploy-router-swapper-node1.sh set -e NODE1_IP="144.76.224.179" NODE1_USER="root" PROJECT_ROOT="/opt/microdao-daarion" echo "🚀 Deployment DAGI Router та Swapper Service на НОДА1" echo "==================================================" echo "" # Перевірка SSH доступу echo "📡 Перевірка SSH доступу до НОДА1..." if ! ssh -o ConnectTimeout=5 ${NODE1_USER}@${NODE1_IP} "echo 'SSH OK'" 2>/dev/null; then echo "❌ Помилка: Неможливо підключитися до НОДА1" echo " Перевірте SSH ключі або пароль" exit 1 fi echo "✅ SSH доступ працює" echo "" # Перевірка Docker echo "🐳 Перевірка Docker на НОДА1..." ssh ${NODE1_USER}@${NODE1_IP} "docker --version && docker compose version" || { echo "❌ Помилка: Docker не встановлено на НОДА1" exit 1 } echo "✅ Docker встановлено" echo "" # Перевірка проекту echo "📁 Перевірка проекту на НОДА1..." ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && pwd && git status" || { echo "❌ Помилка: Проєкт не знайдено в ${PROJECT_ROOT}" exit 1 } echo "✅ Проєкт знайдено" echo "" # Оновлення коду echo "🔄 Оновлення коду з репозиторію..." ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && git pull origin main" || { echo "⚠️ Попередження: Не вдалося оновити код (можливо вже актуальний)" } echo "✅ Код оновлено" echo "" # Перевірка docker-compose.yml echo "📋 Перевірка docker-compose.yml..." ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && test -f docker-compose.yml" || { echo "❌ Помилка: docker-compose.yml не знайдено" exit 1 } echo "✅ docker-compose.yml знайдено" echo "" # Перевірка конфігурацій echo "⚙️ Перевірка конфігурацій..." ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && \ test -f services/router/router_config.yaml && \ test -f services/swapper-service/config/swapper_config_node1.yaml" || { echo "❌ Помилка: Конфігураційні файли не знайдено" exit 1 } echo "✅ Конфігурації знайдено" echo "" # Перевірка залежностей echo "🔗 Перевірка залежностей (NATS, Ollama)..." ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && \ docker compose ps | grep -E 'nats|ollama' || echo '⚠️ NATS або Ollama не запущені'" echo "" # Запуск Router та Swapper echo "🚀 Запуск DAGI Router та Swapper Service..." ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && \ docker compose up -d dagi-router swapper-service 2>&1" || { echo "⚠️ Попередження: Можливо сервіси вже запущені або мають інші назви" echo " Перевірте: docker compose ps" } echo "" # Очікування запуску echo "⏳ Очікування запуску сервісів (10 секунд)..." sleep 10 # Перевірка статусу echo "📊 Перевірка статусу сервісів..." ssh ${NODE1_USER}@${NODE1_IP} "cd ${PROJECT_ROOT} && \ docker compose ps dagi-router swapper-service" echo "" # Health checks echo "🏥 Health checks..." echo "Router:" ssh ${NODE1_USER}@${NODE1_IP} "curl -s http://localhost:9102/health || echo '❌ Router недоступний'" echo "" echo "Swapper:" ssh ${NODE1_USER}@${NODE1_IP} "curl -s http://localhost:8890/health || echo '❌ Swapper недоступний'" echo "" echo "✅ Deployment завершено!" echo "" echo "📝 Наступні кроки:" echo " 1. Перевірте логи: docker compose logs dagi-router swapper-service" echo " 2. Перевірте інтеграцію: curl http://localhost:9102/providers" echo " 3. Перевірте моделі: curl http://localhost:8890/models"