feat: implement TTS, Document processing, and Memory Service /facts API

- 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)
This commit is contained in:
Apple
2026-01-17 08:16:37 -08:00
parent a9fcadc6e2
commit 5290287058
121 changed files with 17071 additions and 436 deletions

215
DEPLOYMENT-NODE1-MANUAL.md Normal file
View File

@@ -0,0 +1,215 @@
# 🚀 Інструкції для деплою на НОДА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