- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
361 lines
9.2 KiB
Markdown
361 lines
9.2 KiB
Markdown
# 🚀 MVP DEPLOYMENT PACKAGE — READY TO DEPLOY!
|
||
|
||
**Дата:** 25 листопада 2025
|
||
**Статус:** ✅ READY FOR EXECUTION
|
||
**Target:** NODE1 (144.76.224.179)
|
||
|
||
---
|
||
|
||
## 📦 Що створено:
|
||
|
||
### 1. **Deployment Script** ⭐
|
||
**`scripts/deploy-mvp-node1.sh`**
|
||
|
||
Автоматизований deployment з 7 фазами:
|
||
- Phase 0: Pre-flight checks (git status, push)
|
||
- Phase 1: Backup PostgreSQL
|
||
- Phase 2: Sync code from GitHub
|
||
- Phase 3: Apply migrations (007, 008, 010)
|
||
- Phase 4: Build Docker images
|
||
- Phase 5: Start services
|
||
- Phase 6: Health checks
|
||
- Phase 7: Summary
|
||
|
||
**Використання:**
|
||
```bash
|
||
cd /Users/apple/github-projects/microdao-daarion
|
||
./scripts/deploy-mvp-node1.sh
|
||
```
|
||
|
||
---
|
||
|
||
### 2. **Rollback Script** 🔄
|
||
**`scripts/rollback-mvp-node1.sh`**
|
||
|
||
Швидкий rollback якщо щось пішло не так:
|
||
- Зупиняє MVP сервіси
|
||
- Видаляє контейнери
|
||
- Опційно відновлює backup БД
|
||
|
||
**Використання:**
|
||
```bash
|
||
./scripts/rollback-mvp-node1.sh
|
||
```
|
||
|
||
---
|
||
|
||
### 3. **Nginx Configuration** 🌐
|
||
**`nginx/mvp-routes.conf`**
|
||
|
||
Ready-to-use Nginx routes для:
|
||
- `/api/city/` → City Service (7001)
|
||
- `/ws/city/` → City WebSocket
|
||
- `/api/secondme/` → Second Me (7003)
|
||
- `/api/agents/` → Agents Service (7014)
|
||
- `/ws/agents/` → Agents WebSocket
|
||
- `/api/microdao/` → MicroDAO Service (7015)
|
||
|
||
**Manual installation (на NODE1):**
|
||
```bash
|
||
# 1. Backup existing config
|
||
sudo cp /etc/nginx/sites-available/daarion /etc/nginx/sites-available/daarion.backup.$(date +%Y%m%d_%H%M%S)
|
||
|
||
# 2. Add routes from nginx/mvp-routes.conf to your Nginx config
|
||
|
||
# 3. Test and reload
|
||
sudo nginx -t
|
||
sudo systemctl reload nginx
|
||
```
|
||
|
||
---
|
||
|
||
### 4. **Service Specifications** 📄
|
||
**`docs/services/`**
|
||
- `AGENTS_SERVICE_SPEC.md` (7014)
|
||
- `CITY_SERVICE_SPEC.md` (7001)
|
||
- `SECONDME_SERVICE_SPEC.md` (7003)
|
||
- `MICRODAO_SERVICE_SPEC.md` (7015)
|
||
|
||
---
|
||
|
||
## 🎯 Фінальні Порти (РЕАЛЬНІ з коду):
|
||
|
||
| Service | Port | Health Check | Notes |
|
||
|---------|------|--------------|-------|
|
||
| **City** | 7001 | `/health` | Public Rooms, Presence, WebSocket |
|
||
| **Second Me** | 7003 | `/health` | Personal AI assistant |
|
||
| **Agents** | 7014 | `/health` | Agent Core, invoke/reply |
|
||
| **MicroDAO** | 7015 | `/health` | Governance, proposals, voting |
|
||
|
||
⚠️ **Note:** Порти відрізняються від початкових специфікацій! Використовуємо реальні порти з коду.
|
||
|
||
---
|
||
|
||
## ✅ Pre-Deployment Checklist:
|
||
|
||
**На NODE2 (MacBook):**
|
||
- [ ] Всі зміни committed і pushed до GitHub
|
||
- [ ] `scripts/deploy-mvp-node1.sh` має executable права
|
||
- [ ] `scripts/rollback-mvp-node1.sh` має executable права
|
||
|
||
**На NODE1 (перевірити перед deployment):**
|
||
- [ ] PostgreSQL працює (port 5432)
|
||
- [ ] NATS працює (port 4222)
|
||
- [ ] Redis працює (port 6379)
|
||
- [ ] Є вільне місце (docker images ~2GB)
|
||
- [ ] Nginx працює і доступний
|
||
|
||
---
|
||
|
||
## 🚀 DEPLOYMENT PROCEDURE:
|
||
|
||
### **Варіант A: Automatic (Рекомендовано)**
|
||
|
||
```bash
|
||
# На NODE2 (MacBook)
|
||
cd /Users/apple/github-projects/microdao-daarion
|
||
|
||
# Commit changes (if any)
|
||
git add .
|
||
git commit -m "MVP Phase 1-3: Ready for deployment"
|
||
git push origin main
|
||
|
||
# Run deployment script
|
||
./scripts/deploy-mvp-node1.sh
|
||
```
|
||
|
||
**Тривалість:** ~10-15 хвилин
|
||
|
||
**Що робить:**
|
||
- ✅ Автоматичний backup БД
|
||
- ✅ Sync коду з GitHub
|
||
- ✅ Міграції БД
|
||
- ✅ Build Docker images
|
||
- ✅ Start сервісів
|
||
- ✅ Health checks
|
||
|
||
---
|
||
|
||
### **Варіант B: Manual (Step-by-step)**
|
||
|
||
Якщо хочеш повний контроль:
|
||
|
||
#### 1. **На NODE2: Commit & Push**
|
||
```bash
|
||
git add .
|
||
git commit -m "MVP Phase 1-3: Ready for deployment"
|
||
git push origin main
|
||
```
|
||
|
||
#### 2. **SSH на NODE1**
|
||
```bash
|
||
ssh root@144.76.224.179
|
||
cd /opt/microdao-daarion
|
||
```
|
||
|
||
#### 3. **Backup БД**
|
||
```bash
|
||
mkdir -p /root/backups
|
||
docker exec daarion-postgres pg_dump -U postgres daarion > \
|
||
/root/backups/daarion_$(date +%Y%m%d_%H%M%S).sql
|
||
```
|
||
|
||
#### 4. **Sync Code**
|
||
```bash
|
||
git pull origin main
|
||
```
|
||
|
||
#### 5. **Міграції**
|
||
```bash
|
||
docker exec -i daarion-postgres psql -U postgres -d daarion < migrations/007_create_agents_tables.sql
|
||
docker exec -i daarion-postgres psql -U postgres -d daarion < migrations/008_create_microdao_core.sql
|
||
docker exec -i daarion-postgres psql -U postgres -d daarion < migrations/010_create_city_backend.sql
|
||
```
|
||
|
||
#### 6. **Build Images**
|
||
```bash
|
||
docker build -t daarion-agents-service:latest ./services/agents-service
|
||
docker build -t daarion-city-service:latest ./services/city-service
|
||
docker build -t daarion-secondme-service:latest ./services/secondme-service
|
||
docker build -t daarion-microdao-service:latest ./services/microdao-service
|
||
```
|
||
|
||
#### 7. **Start Services**
|
||
```bash
|
||
# Create docker-compose.mvp.yml (script creates it automatically)
|
||
docker compose -f docker-compose.mvp.yml up -d
|
||
```
|
||
|
||
#### 8. **Health Checks**
|
||
```bash
|
||
curl http://localhost:7001/health # City
|
||
curl http://localhost:7003/health # Second Me
|
||
curl http://localhost:7014/health # Agents
|
||
curl http://localhost:7015/health # MicroDAO
|
||
```
|
||
|
||
#### 9. **Update Nginx**
|
||
```bash
|
||
# Add routes from nginx/mvp-routes.conf
|
||
sudo vim /etc/nginx/sites-available/daarion
|
||
sudo nginx -t
|
||
sudo systemctl reload nginx
|
||
```
|
||
|
||
---
|
||
|
||
## 🧪 SMOKE TESTS:
|
||
|
||
```bash
|
||
# На NODE1 (або локально через SSH tunnel)
|
||
|
||
# 1. City Service
|
||
curl https://gateway.daarion.city/api/city/health
|
||
curl https://gateway.daarion.city/api/city/rooms
|
||
|
||
# 2. Second Me
|
||
curl https://gateway.daarion.city/api/secondme/health
|
||
|
||
# 3. Agents Service
|
||
curl https://gateway.daarion.city/api/agents/health
|
||
curl https://gateway.daarion.city/api/agents/registry
|
||
|
||
# 4. MicroDAO Service
|
||
curl https://gateway.daarion.city/api/microdao/health
|
||
curl https://gateway.daarion.city/api/microdao/
|
||
|
||
# 5. WebSocket (через wscat або websocat)
|
||
wscat -c wss://gateway.daarion.city/ws/city/rooms/general
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 MONITORING:
|
||
|
||
### Logs:
|
||
```bash
|
||
# На NODE1
|
||
docker logs -f daarion-city-service
|
||
docker logs -f daarion-agents-service
|
||
docker logs -f daarion-secondme-service
|
||
docker logs -f daarion-microdao-service
|
||
|
||
# All together
|
||
docker compose -f docker-compose.mvp.yml logs -f
|
||
```
|
||
|
||
### Resource Usage:
|
||
```bash
|
||
docker stats --no-stream | grep daarion
|
||
```
|
||
|
||
### Service Status:
|
||
```bash
|
||
docker ps | grep -E "agents|city|secondme|microdao"
|
||
```
|
||
|
||
---
|
||
|
||
## 🚨 ROLLBACK:
|
||
|
||
Якщо щось пішло не так:
|
||
|
||
```bash
|
||
# Automatic
|
||
./scripts/rollback-mvp-node1.sh
|
||
|
||
# Manual
|
||
ssh root@144.76.224.179
|
||
cd /opt/microdao-daarion
|
||
docker compose -f docker-compose.mvp.yml down
|
||
docker rm -f daarion-agents-service daarion-city-service daarion-secondme-service daarion-microdao-service
|
||
|
||
# Restore DB (if needed)
|
||
docker exec -i daarion-postgres psql -U postgres -d daarion < /root/backups/daarion_YYYYMMDD_HHMMSS.sql
|
||
```
|
||
|
||
---
|
||
|
||
## ⚠️ ВІДОМІ ОБМЕЖЕННЯ:
|
||
|
||
### 1. **City Service - PostGIS**
|
||
Міграція `010_create_city_backend.sql` НЕ містить `regions/areas` таблиць з GEOMETRY.
|
||
- Поки що City працює без геопросторових функцій
|
||
- Living Map працює з простими JSON координатами
|
||
- PostGIS буде додано в Phase 2
|
||
|
||
### 2. **Second Me - Vector DB**
|
||
Код Second Me НЕ інтегрований з Vector DB (port 8898).
|
||
- Поки що працює без довгострокової пам'яті
|
||
- Тільки short-term memory в PostgreSQL
|
||
- Vector DB інтеграція - Phase 2
|
||
|
||
### 3. **Config Files**
|
||
Сервіси очікують config files:
|
||
- `configs/AGENT_REGISTRY.yaml`
|
||
- `configs/team_definition.yaml`
|
||
- `configs/project_bus_config.yaml`
|
||
|
||
Якщо їх немає — сервіси працюють з defaults.
|
||
|
||
### 4. **Multimodal**
|
||
Multimodal сервіси (STT, OCR, Web Search, Geo-agent) — **Phase 2**.
|
||
MVP працює без них.
|
||
|
||
---
|
||
|
||
## ✅ SUCCESS CRITERIA:
|
||
|
||
MVP вважається успішно deployed якщо:
|
||
|
||
1. ✅ Всі 4 сервіси запущені (`docker ps`)
|
||
2. ✅ Health checks повертають 200 OK
|
||
3. ✅ City Rooms API повертає список кімнат
|
||
4. ✅ Agents API повертає registry
|
||
5. ✅ Nginx routes працюють (публічні endpoints)
|
||
6. ✅ WebSocket з'єднання встановлюються
|
||
7. ✅ Немає критичних помилок в логах (перші 15 хв)
|
||
8. ✅ Існуючі DAGI сервіси працюють стабільно
|
||
|
||
---
|
||
|
||
## 📞 NEXT STEPS (після deployment):
|
||
|
||
### Phase 2: Multimodal Integration
|
||
- Router v2.0 з multimodal API
|
||
- STT/OCR/Web Search/Vector DB на NODE1
|
||
- Geo-agent для City Service
|
||
|
||
### Phase 3: Production Hardening
|
||
- Monitoring dashboards (Grafana)
|
||
- Alerting (Prometheus)
|
||
- Log aggregation (Loki)
|
||
- Performance tuning
|
||
|
||
### Phase 4: Matrix Integration
|
||
- Matrix Synapse deployment
|
||
- Element Web client
|
||
- NATS ↔ Matrix bridge
|
||
|
||
---
|
||
|
||
## 🎉 READY TO GO!
|
||
|
||
**Все готово для deployment!**
|
||
|
||
**Запуск:**
|
||
```bash
|
||
cd /Users/apple/github-projects/microdao-daarion
|
||
./scripts/deploy-mvp-node1.sh
|
||
```
|
||
|
||
**Нехай щастить! 🚀**
|
||
|
||
---
|
||
|
||
**Створено:** Cursor AI Assistant
|
||
**Проєкт:** MicroDAO DAARION
|
||
**Версія:** MVP Phase 1-3
|
||
**Дата:** 2025-11-25
|
||
|