- 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)
117 lines
5.0 KiB
Bash
Executable File
117 lines
5.0 KiB
Bash
Executable File
#!/bin/bash
|
||
# Скрипт для deployment DAGI Router та Swapper Service на НОДА3
|
||
# Використання: ./scripts/deploy-router-swapper-node3.sh
|
||
|
||
set -e
|
||
|
||
NODE3_IP="80.77.35.151"
|
||
NODE3_USER="zevs"
|
||
NODE3_PORT="33147"
|
||
PROJECT_ROOT="~/microdao-daarion"
|
||
GIT_REPO_SSH="git@github.com:IvanTytar/microdao-daarion.git"
|
||
GIT_REPO_HTTPS="https://github.com/IvanTytar/microdao-daarion.git"
|
||
|
||
echo "🚀 Deployment DAGI Router та Swapper Service на НОДА3"
|
||
echo "=================================================="
|
||
echo ""
|
||
|
||
# Перевірка SSH доступу
|
||
echo "📡 Перевірка SSH доступу до НОДА3..."
|
||
if ! ssh -o ConnectTimeout=5 -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "echo 'SSH OK'" 2>/dev/null; then
|
||
echo "❌ Помилка: Неможливо підключитися до НОДА3"
|
||
echo " Перевірте SSH ключі або пароль"
|
||
exit 1
|
||
fi
|
||
echo "✅ SSH доступ працює"
|
||
echo ""
|
||
|
||
# Перевірка Docker Compose
|
||
echo "🐳 Перевірка Docker Compose на НОДА3..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "docker --version && docker compose version" || {
|
||
echo "❌ Помилка: Docker Compose не встановлено на НОДА3"
|
||
exit 1
|
||
}
|
||
echo "✅ Docker Compose встановлено"
|
||
echo ""
|
||
|
||
# Перевірка/створення директорії проєкту
|
||
echo "📁 Перевірка проєкту на НОДА3..."
|
||
if ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "test -d ${PROJECT_ROOT}" 2>/dev/null; then
|
||
echo "✅ Проєкт знайдено, оновлюємо..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && git pull origin main || echo '⚠️ Git pull не вдався'"
|
||
else
|
||
echo "📥 Клонуємо проєкт..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ~ && \
|
||
(git clone ${GIT_REPO_SSH} microdao-daarion 2>/dev/null || \
|
||
git clone ${GIT_REPO_HTTPS} microdao-daarion) || \
|
||
echo '⚠️ Git clone не вдався'"
|
||
fi
|
||
echo ""
|
||
|
||
# Перевірка docker-compose.node3.yml
|
||
echo "📋 Перевірка docker-compose.node3.yml..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && test -f docker-compose.node3.yml" || {
|
||
echo "❌ Помилка: docker-compose.node3.yml не знайдено"
|
||
echo " Переконайтеся, що проєкт клоновано правильно"
|
||
exit 1
|
||
}
|
||
echo "✅ docker-compose.node3.yml знайдено"
|
||
echo ""
|
||
|
||
# Перевірка конфігурацій
|
||
echo "⚙️ Перевірка конфігурацій..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && \
|
||
test -f services/router/router_config.yaml && \
|
||
test -f services/swapper-service/config/swapper_config_node3.yaml" || {
|
||
echo "❌ Помилка: Конфігураційні файли не знайдено"
|
||
exit 1
|
||
}
|
||
echo "✅ Конфігурації знайдено"
|
||
echo ""
|
||
|
||
# Перевірка/створення Docker network
|
||
echo "🔗 Перевірка Docker network..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "docker network inspect dagi-network >/dev/null 2>&1 || docker network create dagi-network"
|
||
echo "✅ Docker network готово"
|
||
echo ""
|
||
|
||
# Перевірка Ollama
|
||
echo "🤖 Перевірка Ollama..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "docker ps | grep -q ollama || echo '⚠️ Ollama не запущений (можливо потрібно запустити окремо)'"
|
||
echo ""
|
||
|
||
# Запуск Router та Swapper через Docker Compose
|
||
echo "🚀 Запуск DAGI Router та Swapper Service через Docker Compose..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && \
|
||
docker compose -f docker-compose.node3.yml up -d --build 2>&1" || {
|
||
echo "⚠️ Попередження: Можливо є помилки при запуску"
|
||
echo " Перевірте логи: docker compose -f docker-compose.node3.yml logs"
|
||
}
|
||
echo ""
|
||
|
||
# Очікування запуску
|
||
echo "⏳ Очікування запуску сервісів (15 секунд)..."
|
||
sleep 15
|
||
|
||
# Перевірка статусу
|
||
echo "📊 Перевірка статусу сервісів..."
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "cd ${PROJECT_ROOT} && \
|
||
docker compose -f docker-compose.node3.yml ps"
|
||
echo ""
|
||
|
||
# Health checks
|
||
echo "🏥 Health checks..."
|
||
echo "Router:"
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "curl -s http://localhost:9102/health || echo '❌ Router недоступний'"
|
||
echo ""
|
||
echo "Swapper:"
|
||
ssh -p ${NODE3_PORT} ${NODE3_USER}@${NODE3_IP} "curl -s http://localhost:8890/health || echo '❌ Swapper недоступний'"
|
||
echo ""
|
||
|
||
echo "✅ Deployment завершено!"
|
||
echo ""
|
||
echo "📝 Наступні кроки:"
|
||
echo " 1. Перевірте логи: docker compose -f docker-compose.node3.yml logs"
|
||
echo " 2. Перевірте інтеграцію: curl http://localhost:9102/providers"
|
||
echo " 3. Перевірте моделі: curl http://localhost:8890/models"
|