- 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
329 lines
8.8 KiB
Markdown
329 lines
8.8 KiB
Markdown
# 🚀 Інструкція для деплою 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, токеноміку тощо!
|