- 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
190 lines
5.3 KiB
Markdown
190 lines
5.3 KiB
Markdown
# 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
|
|
|