# 🚀 Інструкції для Deployment DAGI Router та Swapper Service на НОДА1 **Дата:** 2026-01-11 **Нода:** NODE1 (Hetzner GEX44 - 144.76.224.179) **Статус:** Готово до deployment --- ## 📋 Передумови 1. ✅ SSH доступ до НОДА1 (`ssh root@144.76.224.179`) 2. ✅ Docker та Docker Compose встановлені 3. ✅ Проєкт знаходиться в `/opt/microdao-daarion` 4. ✅ Docker network `dagi-network` існує --- ## 🔧 Крок 1: Підключення до НОДА1 ```bash ssh root@144.76.224.179 cd /opt/microdao-daarion ``` --- ## 🔧 Крок 2: Оновлення коду з репозиторію ```bash # Перевірити поточну гілку git status # Оновити з GitHub git pull origin main # Або з Gitea/GitLab git pull gitea main ``` --- ## 🔧 Крок 3: Перевірка поточного стану ```bash # Перевірити запущені контейнери docker ps # Перевірити docker-compose docker compose ps # Перевірити чи існує dagi-network docker network ls | grep dagi-network ``` --- ## 🔧 Крок 4: Додати Router та Swapper до docker-compose.yml На НОДА1 вже має бути `docker-compose.yml`. Потрібно додати або оновити секції для: 1. **DAGI Router** (порт 9102) 2. **Swapper Service** (порт 8890) ### Конфігурація DAGI Router для НОДА1: ```yaml dagi-router: build: context: ./services/router dockerfile: Dockerfile container_name: dagi-router ports: - "9102:9102" environment: - NATS_URL=nats://nats:4222 - ROUTER_CONFIG_PATH=/app/router_config.yaml - LOG_LEVEL=info volumes: - ./services/router/router_config.yaml:/app/router_config.yaml:ro networks: - dagi-network restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9102/health"] interval: 30s timeout: 10s retries: 3 ``` ### Конфігурація Swapper Service для НОДА1: ```yaml swapper-service: build: context: ./services/swapper-service dockerfile: Dockerfile container_name: swapper-service ports: - "8890:8890" - "8891:8891" # Metrics environment: - OLLAMA_BASE_URL=http://ollama:11434 - SWAPPER_CONFIG_PATH=/app/config/swapper_config.yaml - SWAPPER_MODE=single-active - MAX_CONCURRENT_MODELS=1 - MODEL_SWAP_TIMEOUT=300 volumes: - ./services/swapper-service/config/swapper_config_node1.yaml:/app/config/swapper_config.yaml:ro - ./logs:/app/logs networks: - dagi-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:8890/health || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 10s ``` --- ## 🔧 Крок 5: Перевірка залежностей Переконайтеся, що наступні сервіси запущені: ```bash # NATS (для Router) docker ps | grep nats # Ollama (для Swapper) docker ps | grep ollama # Якщо немає - запустити docker compose up -d nats ollama ``` --- ## 🔧 Крок 6: Запуск Router та Swapper ```bash # Запустити обидва сервіси docker compose up -d dagi-router swapper-service # Або якщо вони вже є в docker-compose.yml docker compose up -d ``` --- ## 🔧 Крок 7: Перевірка статусу ```bash # Перевірити статус контейнерів docker compose ps dagi-router swapper-service # Перевірити логи Router docker compose logs dagi-router --tail 50 # Перевірити логи Swapper docker compose logs swapper-service --tail 50 # Health checks curl http://localhost:9102/health # Router curl http://localhost:8890/health # Swapper ``` --- ## 🔧 Крок 8: Перевірка інтеграції ```bash # Перевірити Router providers curl http://localhost:9102/providers # Перевірити Swapper models curl http://localhost:8890/models # Спробувати завантажити модель curl -X POST http://localhost:8890/models/qwen3-8b/load ``` --- ## 🐛 Troubleshooting ### Router не запускається ```bash # Перевірити логи docker compose logs dagi-router # Перевірити чи NATS доступний docker compose exec dagi-router ping -c 1 nats # Перевірити конфігурацію docker compose exec dagi-router cat /app/router_config.yaml ``` ### Swapper не підключається до Ollama ```bash # Перевірити логи docker compose logs swapper-service # Перевірити чи Ollama доступний docker compose exec swapper-service curl http://ollama:11434/api/tags # Перевірити конфігурацію docker compose exec swapper-service cat /app/config/swapper_config.yaml ``` ### Порти зайняті ```bash # Перевірити які процеси використовують порти netstat -tulpn | grep 9102 netstat -tulpn | grep 8890 # Зупинити конфліктуючі сервіси docker compose stop ``` --- ## ✅ Очікуваний результат Після успішного deployment: - ✅ `dagi-router` контейнер працює на порту 9102 - ✅ `swapper-service` контейнер працює на порту 8890 - ✅ Health checks повертають `{"status": "healthy"}` - ✅ Router має доступ до NATS - ✅ Swapper має доступ до Ollama - ✅ Моделі можуть завантажуватися через Swapper --- ## 📝 Нотатки - Router використовує NATS для маршрутизації повідомлень - Swapper використовує Ollama для завантаження моделей - Обидва сервіси мають health checks та автоматичний restart - Логи зберігаються в `./logs/` --- **Створено:** 2026-01-11 **Версія:** 1.0.0