- 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)
216 lines
5.4 KiB
Markdown
216 lines
5.4 KiB
Markdown
# 🚀 Інструкції для деплою на НОДА1 (ручний режим)
|
||
|
||
**Дата:** 2026-01-11
|
||
**Статус:** SSH недоступний, потрібно налаштувати вручну
|
||
|
||
## 📋 Дані доступу до НОДА1
|
||
|
||
- **IPv4 Address:** 144.76.224.179
|
||
- **IPv6 Address:** 2a01:4f8:201:2a6::2
|
||
- **Username:** root
|
||
- **Password:** bRhfV7uNY9m6er
|
||
- **SSH Port:** 22 (потрібно перевірити/налаштувати)
|
||
|
||
### Host Keys (для перевірки):
|
||
- **RSA 3072:** OzbVMM7CC4SatdE2CSoxh5qgJdCyYO22MLjchXXBIro
|
||
- **ECDSA 256:** YPQUigtDm3HiEp4MYYeREE+M3ig/2CrZXy2ozr4OWQw
|
||
- **ED25519 256:** 79LG0tKQ1B1DsdVZ/BhLYSX2v08eCWqqWihHtn+Y8FU
|
||
|
||
## ⚠️ Поточна проблема
|
||
|
||
SSH на порту 22 відмовляє (`Connection refused`). Можливі причини:
|
||
1. SSH сервіс не запущений
|
||
2. Firewall блокує порт 22
|
||
3. SSH налаштований на інший порт
|
||
|
||
## 🔧 Кроки для налаштування SSH
|
||
|
||
### 1. Доступ через Hetzner Console
|
||
|
||
Якщо SSH недоступний, використайте Hetzner Cloud Console:
|
||
1. Увійдіть в Hetzner Cloud панель
|
||
2. Знайдіть сервер GEX44 (#2844465)
|
||
3. Відкрийте Console (VNC/NoVNC)
|
||
|
||
### 2. Перевірка та запуск SSH
|
||
|
||
```bash
|
||
# Перевірка статусу SSH
|
||
systemctl status ssh
|
||
systemctl status sshd
|
||
|
||
# Запуск SSH (якщо не запущений)
|
||
systemctl start ssh
|
||
systemctl enable ssh
|
||
|
||
# Перевірка порту
|
||
ss -tlnp | grep :22
|
||
netstat -tlnp | grep :22
|
||
|
||
# Перевірка firewall
|
||
ufw status
|
||
iptables -L -n | grep 22
|
||
```
|
||
|
||
### 3. Налаштування SSH (якщо потрібно)
|
||
|
||
```bash
|
||
# Редагування конфігурації SSH
|
||
nano /etc/ssh/sshd_config
|
||
|
||
# Переконайтеся що:
|
||
# Port 22
|
||
# PermitRootLogin yes (або через ключ)
|
||
# PasswordAuthentication yes
|
||
|
||
# Перезапуск SSH
|
||
systemctl restart ssh
|
||
```
|
||
|
||
### 4. Налаштування Firewall
|
||
|
||
```bash
|
||
# Дозволити SSH через UFW
|
||
ufw allow 22/tcp
|
||
ufw reload
|
||
|
||
# Або через iptables
|
||
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
|
||
```
|
||
|
||
## 📥 Після налаштування SSH - Деплой
|
||
|
||
### Крок 1: Підключення
|
||
|
||
```bash
|
||
ssh root@144.76.224.179
|
||
# Введіть пароль: bRhfV7uNY9m6er
|
||
```
|
||
|
||
### Крок 2: Перевірка проєкту
|
||
|
||
```bash
|
||
cd /opt/microdao-daarion
|
||
pwd
|
||
git status
|
||
```
|
||
|
||
Якщо проєкт не існує:
|
||
```bash
|
||
mkdir -p /opt
|
||
cd /opt
|
||
git clone git@github.com:IvanTytar/microdao-daarion.git
|
||
# або через HTTPS
|
||
git clone https://github.com/IvanTytar/microdao-daarion.git
|
||
cd microdao-daarion
|
||
```
|
||
|
||
### Крок 3: Оновлення коду
|
||
|
||
```bash
|
||
cd /opt/microdao-daarion
|
||
git pull origin main
|
||
```
|
||
|
||
### Крок 4: Перевірка конфігурацій
|
||
|
||
```bash
|
||
# Перевірка наявності конфігурацій
|
||
ls -la services/router/router_config.yaml
|
||
ls -la services/swapper-service/config/swapper_config_node1.yaml
|
||
ls -la docker-compose.yml
|
||
```
|
||
|
||
### Крок 5: Запуск через Docker Compose
|
||
|
||
```bash
|
||
cd /opt/microdao-daarion
|
||
|
||
# Перевірка Docker network
|
||
docker network inspect dagi-network || docker network create dagi-network
|
||
|
||
# Запуск Router та Swapper
|
||
docker compose up -d dagi-router swapper-service
|
||
|
||
# Перевірка статусу
|
||
docker compose ps dagi-router swapper-service
|
||
|
||
# Health checks
|
||
curl http://localhost:9102/health
|
||
curl http://localhost:8890/health
|
||
```
|
||
|
||
### Крок 6: Перевірка логів
|
||
|
||
```bash
|
||
docker compose logs dagi-router --tail 50
|
||
docker compose logs swapper-service --tail 50
|
||
```
|
||
|
||
## 🔄 Альтернатива: Kubernetes Deployment
|
||
|
||
Якщо на НОДА1 використовується Kubernetes:
|
||
|
||
```bash
|
||
# Створення namespace
|
||
kubectl create namespace daarion
|
||
|
||
# Деплой Router
|
||
kubectl apply -f infrastructure/deployment/dagi-router-node1.yaml
|
||
|
||
# Деплой Swapper
|
||
kubectl apply -f infrastructure/deployment/swapper-service-node1.yaml
|
||
|
||
# Перевірка
|
||
kubectl get pods -n daarion
|
||
kubectl logs -n daarion -l app=dagi-router
|
||
kubectl logs -n daarion -l app=swapper-service
|
||
```
|
||
|
||
## 📝 Автоматичний скрипт
|
||
|
||
Після налаштування SSH можна використати автоматичний скрипт:
|
||
|
||
```bash
|
||
# З локальної машини
|
||
cd /Users/apple/github-projects/microdao-daarion
|
||
./scripts/deploy-router-swapper-node1.sh
|
||
```
|
||
|
||
## ✅ Перевірка працездатності
|
||
|
||
```bash
|
||
# Router
|
||
curl http://localhost:9102/health
|
||
curl http://localhost:9102/providers
|
||
|
||
# Swapper
|
||
curl http://localhost:8890/health
|
||
curl http://localhost:8890/models
|
||
```
|
||
|
||
## 🔐 Безпека
|
||
|
||
**ВАЖЛИВО:** Після налаштування SSH:
|
||
1. Налаштуйте SSH ключі замість паролів
|
||
2. Вимкніть password authentication
|
||
3. Обмежте доступ до певних IP (якщо можливо)
|
||
4. Налаштуйте fail2ban
|
||
|
||
```bash
|
||
# Додавання SSH ключа
|
||
mkdir -p ~/.ssh
|
||
nano ~/.ssh/authorized_keys
|
||
# Вставте свій публічний ключ
|
||
|
||
# Вимкнення password auth (після налаштування ключів)
|
||
nano /etc/ssh/sshd_config
|
||
# PasswordAuthentication no
|
||
systemctl restart ssh
|
||
```
|
||
|
||
---
|
||
|
||
**Оновлено:** 2026-01-11
|
||
**Автор:** Deployment Automation
|