feat: Add presence heartbeat for Matrix online status
- 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
This commit is contained in:
189
NODE1-INVENTORY-INTEGRATION-COMPLETE.md
Normal file
189
NODE1-INVENTORY-INTEGRATION-COMPLETE.md
Normal file
@@ -0,0 +1,189 @@
|
||||
# Node-1 Inventory Integration - Complete ✅
|
||||
|
||||
## 📋 Summary
|
||||
|
||||
Інтегровано комплексну інвентаризацію Node #1 (144.76.224.179) в кабінет ноди в моніторі.
|
||||
|
||||
---
|
||||
|
||||
## ✅ Що додано
|
||||
|
||||
### 1. Оновлені дані Node #1
|
||||
|
||||
**Система:**
|
||||
- OS: Ubuntu 24.04.3 LTS (Noble Numbat)
|
||||
- Kernel: Linux
|
||||
- Docker: Installed & Active
|
||||
- Python: 3.12.3
|
||||
- Orchestrator: Docker Compose
|
||||
|
||||
**Активні сервіси:**
|
||||
- **MicroDAO Containers:** 13 сервісів
|
||||
- dagi-image-gen (9600)
|
||||
- dagi-nats (4222, 6222, 8222)
|
||||
- dagi-stt-service (9401)
|
||||
- dagi-node-registry (9205)
|
||||
- dagi-postgres (5432)
|
||||
- dagi-parser-service (9400)
|
||||
- dagi-prometheus (9090)
|
||||
- dagi-gateway (9300)
|
||||
- dagi-crewai (9010)
|
||||
- dagi-rbac (9200)
|
||||
- dagi-devtools (8008)
|
||||
- dagi-router (9102)
|
||||
- swapper-service (8890)
|
||||
|
||||
- **Infrastructure Containers:** 8 сервісів
|
||||
- docker-worker-1, docker-web-1, docker-api-1 (Dify AI Platform)
|
||||
- docker-redis-1 (Redis Cache)
|
||||
- docker-weaviate-1 (Vector DB)
|
||||
- docker-ssrf_proxy-1 (Squid Proxy)
|
||||
- telegram-bot-api (Local Bot API)
|
||||
- nginx-gateway (Reverse Proxy)
|
||||
|
||||
- **Systemd Services:** 3 сервіси
|
||||
- docker.service (Container Engine)
|
||||
- ssh.service (Remote Access)
|
||||
- cron.service (Scheduled Tasks)
|
||||
|
||||
**Зупинені компоненти:**
|
||||
- Milvus stack (stopped)
|
||||
- Neo4j 5.15-community (stopped/restarting)
|
||||
- Grafana (stopped/restarting)
|
||||
|
||||
**Docker Images:** 16 образів
|
||||
**Встановлені пакети:** 7 пакетів (git, curl, wget, nano, vim, ufw, unattended-upgrades)
|
||||
|
||||
**Файлова структура:**
|
||||
- Project root: `/opt/microdao-daarion`
|
||||
- Config files: `docker-compose.yml`, `router-config.yml`
|
||||
- Directories: `services/`, `gateway-bot/`, `data/`, `logs/`
|
||||
|
||||
---
|
||||
|
||||
## 🎨 UI Components
|
||||
|
||||
### Секції в кабінеті Node #1:
|
||||
|
||||
1. **Активні сервіси (MicroDAO)**
|
||||
- Таблиця з сервісами, портами, статусами
|
||||
- Зелений індикатор "Running"
|
||||
|
||||
2. **Активні сервіси (Infrastructure)**
|
||||
- Таблиця з інфраструктурними сервісами
|
||||
- Опис кожного сервісу
|
||||
|
||||
3. **System Services**
|
||||
- Grid з systemd сервісами
|
||||
- Опис та статус
|
||||
|
||||
4. **Зупинені сервіси**
|
||||
- Grid з зупиненими компонентами
|
||||
- Жовтий індикатор статусу
|
||||
|
||||
5. **Docker Images**
|
||||
- Grid з усіма Docker образами
|
||||
- Назви образів
|
||||
|
||||
6. **Встановлені пакети**
|
||||
- Flex wrap з пакетами
|
||||
- Монопросторовий шрифт
|
||||
|
||||
7. **Файлова структура**
|
||||
- Дерево файлів та директорій
|
||||
- Іконки для файлів та папок
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Технічні деталі
|
||||
|
||||
### Функція `loadNode1Inventory()`
|
||||
|
||||
```javascript
|
||||
async function loadNode1Inventory() {
|
||||
if (!IS_NODE1) return '';
|
||||
|
||||
// Завантажує дані з /api/node/node-1
|
||||
// Формує HTML для всіх секцій інвентаризації
|
||||
// Повертає готовий HTML
|
||||
}
|
||||
```
|
||||
|
||||
### Інтеграція в кабінет:
|
||||
|
||||
```javascript
|
||||
const node1InventoryHtml = await loadNode1Inventory();
|
||||
// Додається після llmMetricsHtml та перед Swapper Service Connections
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Структура даних
|
||||
|
||||
### Node #1 Data Structure:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "node-1",
|
||||
"active_services": {
|
||||
"docker_containers_microdao": [...],
|
||||
"docker_containers_infrastructure": [...],
|
||||
"systemd_services": [...]
|
||||
},
|
||||
"installed_components": {
|
||||
"docker_images": [...],
|
||||
"stopped_services": [...],
|
||||
"installed_packages": [...]
|
||||
},
|
||||
"file_structure": {
|
||||
"project_root": "/opt/microdao-daarion",
|
||||
"config_files": [...],
|
||||
"directories": [...]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Перевірка
|
||||
|
||||
### API Endpoint:
|
||||
```bash
|
||||
curl http://localhost:8899/api/node/node-1
|
||||
```
|
||||
|
||||
### UI:
|
||||
- Відкрити: `http://localhost:8899/node/node-1`
|
||||
- Перевірити наявність всіх секцій інвентаризації
|
||||
|
||||
### Статус:
|
||||
- ✅ Дані Node #1 оновлено
|
||||
- ✅ Функція `loadNode1Inventory()` додано
|
||||
- ✅ UI секції інтегровано
|
||||
- ✅ Монітор перезапущено
|
||||
- ✅ API повертає правильні дані
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Результат
|
||||
|
||||
Тепер в кабінеті Node #1 (`http://localhost:8899/node/node-1`) відображається:
|
||||
|
||||
1. ✅ **Hardware Specs** (CPU, RAM, Storage, GPU)
|
||||
2. ✅ **Software Stack** (OS, Docker, Python)
|
||||
3. ✅ **Running Services** (список сервісів)
|
||||
4. ✅ **Активні сервіси (MicroDAO)** - детальна таблиця
|
||||
5. ✅ **Активні сервіси (Infrastructure)** - детальна таблиця
|
||||
6. ✅ **System Services** - systemd сервіси
|
||||
7. ✅ **Зупинені сервіси** - зупинені компоненти
|
||||
8. ✅ **Docker Images** - всі образи
|
||||
9. ✅ **Встановлені пакети** - системні пакети
|
||||
10. ✅ **Файлова структура** - дерево файлів
|
||||
11. ✅ **Swapper Service Connections** - метрики Swapper
|
||||
|
||||
---
|
||||
|
||||
**Status:** ✅ Complete
|
||||
**Date:** 2025-11-22
|
||||
**Version:** DAGI Monitor V5.1
|
||||
|
||||
Reference in New Issue
Block a user