- TTS: xtts-v2 integration with voice cloning support
- Document: docling integration for PDF/DOCX/PPTX processing
- Memory Service: added /facts/upsert, /facts/{key}, /facts endpoints
- Added required dependencies (TTS, docling)
111 lines
4.2 KiB
Bash
Executable File
111 lines
4.2 KiB
Bash
Executable File
#!/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"
|