Files
microdao-daarion/DEPLOY-NOW.md
Apple 16630acf0e feat: add memory-service and postgres for Helion agent
- Add PostgreSQL database in docker-compose.yml
- Add memory-service with health checks
- Create database schema (init.sql) with user_facts, dialog_summaries, agent_memory_events
- Add deployment documentation (DEPLOY-NOW.md)
- Add status reports and troubleshooting guides
2025-11-16 12:52:23 -08:00

329 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 Інструкція для деплою Helion на сервер ЗАРАЗ
**Сервер**: 144.76.224.179
**Домен**: gateway.daarion.city
**Telegram токен**: 8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM
---
## ✅ Що готово локально
- ✅ docker-compose.yml (додано postgres + memory-service)
- ✅ services/memory-service/init.sql (схема БД)
- ✅ .env (додано змінні для memory service)
- ✅ gateway-bot/helion_prompt.txt (system prompt)
- ✅ scripts/setup-nginx-gateway.sh (HTTPS setup)
- ✅ scripts/register-agent-webhook.sh (webhook registration)
---
## 📝 Крок 1: Закомітити і запушити
```bash
cd /Users/apple/github-projects/microdao-daarion
# Додати нові файли
git add docker-compose.yml
git add .env
git add services/memory-service/init.sql
git add STATUS-HELION.md
git add README-HELION-PROBLEMS.md
git add DEPLOY-NOW.md
# Закомітити
git commit -m "feat: add memory-service and postgres for Helion agent
- Add PostgreSQL database for memory service
- Add memory-service in docker-compose.yml
- Add database schema (init.sql)
- Update .env with memory service configuration
- Add documentation for Helion deployment"
# Запушити
git push origin main
```
---
## 📝 Крок 2: Налаштувати DNS (якщо ще не зроблено)
1. Зайти в панель управління DNS (Cloudflare / Hetzner / інше)
2. Створити A запис:
- **Name**: `gateway.daarion.city`
- **Type**: `A`
- **Value**: `144.76.224.179`
- **TTL**: 300 секунд
3. Перевірити (може зайняти 1-5 хвилин):
```bash
dig gateway.daarion.city +short
# Має вивести: 144.76.224.179
```
---
## 📝 Крок 3: Підключитися до сервера
```bash
ssh root@144.76.224.179
```
---
## 📝 Крок 4: Перевірити встановлено Docker (на сервері)
```bash
# Перевірити Docker
docker --version
# Якщо НЕ встановлено:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# Перевірити Docker Compose
docker-compose --version
# Якщо НЕ встановлено:
apt-get update
apt-get install -y docker-compose
```
---
## 📝 Крок 5: Клонувати/оновити репозиторій (на сервері)
### Варіант А: Якщо репозиторій ще НЕ клонований
```bash
cd /opt
git clone https://github.com/IvanTytar/microdao-daarion.git
cd microdao-daarion
```
### Варіант Б: Якщо репозиторій вже є
```bash
cd /opt/microdao-daarion # або де знаходиться репозиторій
git pull origin main
```
---
## 📝 Крок 6: Налаштувати .env (на сервері)
```bash
# Перевірити чи є .env
ls -la .env
# Якщо НЕ існує - створити з локального
# (на Mac скопіювати .env на сервер через scp)
# Або створити вручну:
nano .env
```
**Мінімально необхідні змінні:**
```bash
# Helion
HELION_TELEGRAM_BOT_TOKEN=8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM
HELION_NAME=Helion
HELION_PROMPT_PATH=./gateway-bot/helion_prompt.txt
# Memory
MEMORY_SERVICE_URL=http://memory-service:8000
MEMORY_DATABASE_URL=postgresql://postgres:postgres@postgres:5432/daarion_memory
# PostgreSQL
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=daarion_memory
# Ollama (якщо є локально на сервері)
OLLAMA_BASE_URL=http://host.docker.internal:11434
OLLAMA_MODEL=qwen3:8b
```
---
## 📝 Крок 7: Запустити стек (на сервері)
```bash
# Створити директорії
mkdir -p logs data/rbac
# Запустити всі сервіси
docker-compose up -d
# Переглянути статус
docker-compose ps
# Очікувані контейнери:
# - dagi-router (9102) - UP
# - dagi-gateway (9300) - UP
# - dagi-postgres (5432) - UP
# - dagi-memory-service (8000) - UP
# - dagi-devtools (8008) - UP
# - dagi-crewai (9010) - UP
# - dagi-rbac (9200) - UP
# - dagi-rag-service (9500) - UP або Restarting (OK якщо немає city-db)
```
---
## 📝 Крок 8: Перевірити health endpoints (на сервері)
```bash
# Gateway
curl http://localhost:9300/health
# Має вивести: {"status": "healthy", "agents": {...}}
# Memory Service
curl http://localhost:8000/health
# Має вивести: {"status": "healthy", "service": "memory-service"}
# Router
curl http://localhost:9102/health
# PostgreSQL
docker exec -it dagi-postgres psql -U postgres -c "\l"
# Має показати базу даних "daarion_memory"
```
**Якщо щось не працює:**
```bash
# Переглянути логи
docker-compose logs -f gateway
docker-compose logs -f memory-service
docker-compose logs -f postgres
# Перезапустити
docker-compose restart gateway memory-service
```
---
## 📝 Крок 9: Налаштувати HTTPS Gateway (на сервері)
```bash
# Встановити certbot якщо немає
apt-get update
apt-get install -y certbot
# Запустити скрипт налаштування HTTPS
sudo ./scripts/setup-nginx-gateway.sh gateway.daarion.city admin@daarion.city
# Скрипт автоматично:
# - Отримає SSL сертифікат від Let's Encrypt
# - Налаштує nginx reverse proxy
# - Запустить nginx в Docker контейнері
# - Налаштує auto-renewal сертифікатів
# Перевірити HTTPS
curl https://gateway.daarion.city/health
```
---
## 📝 Крок 10: Зареєструвати Telegram Webhook (на сервері)
```bash
# Зареєструвати webhook
./scripts/register-agent-webhook.sh \
helion \
8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM \
gateway.daarion.city
# Перевірити webhook
curl "https://api.telegram.org/bot8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM/getWebhookInfo"
# Має показати:
# {
# "ok": true,
# "result": {
# "url": "https://gateway.daarion.city/helion/telegram/webhook",
# "has_custom_certificate": false,
# "pending_update_count": 0
# }
# }
```
---
## 📝 Крок 11: Тестувати бота!
1. Відкрити бота в Telegram (знайти по username або токену)
2. Надіслати повідомлення: **"Привіт! Що таке EcoMiner?"**
3. Чекати відповідь від Helion
**Якщо бот не відповідає:**
```bash
# На сервері переглянути логи
docker-compose logs -f gateway
# Перевірити webhook
curl "https://api.telegram.org/bot8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM/getWebhookInfo"
# Перевірити nginx
docker logs nginx-gateway
# Restart gateway
docker-compose restart gateway
```
---
## ✅ Checklist
- [ ] Закомітили і запушили зміни
- [ ] DNS налаштовано (gateway.daarion.city → 144.76.224.179)
- [ ] Підключились до сервера через SSH
- [ ] Docker встановлено
- [ ] Репозиторій клоновано/оновлено
- [ ] .env налаштовано з токенами
- [ ] docker-compose up -d виконано
- [ ] Health endpoints працюють (9300, 8000)
- [ ] HTTPS Gateway налаштовано (setup-nginx-gateway.sh)
- [ ] Telegram webhook зареєстровано
- [ ] Бот відповідає в Telegram! 🎉
---
## 🆘 Troubleshooting
### Memory Service не запускається
```bash
docker-compose logs memory-service
docker-compose logs postgres
# Перезапустити
docker-compose restart postgres memory-service
```
### SSL сертифікат не отримується
```bash
# Перевірити DNS
dig gateway.daarion.city +short
# Спробувати вручну
certbot certonly --standalone -d gateway.daarion.city --email admin@daarion.city
```
### Бот не відповідає
```bash
# Перевірити логи Gateway
docker-compose logs --tail=50 gateway
# Перевірити чи webhook активний
curl "https://api.telegram.org/bot8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM/getWebhookInfo"
# Видалити webhook і встановити знову
curl -X POST "https://api.telegram.org/bot8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM/deleteWebhook"
./scripts/register-agent-webhook.sh helion 8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM gateway.daarion.city
```
---
## 🎉 Успіх!
Після виконання всіх кроків, Helion має запрацювати в Telegram і відповідати на запитання про Energy Union, EcoMiner, токеноміку тощо!