Files
microdao-daarion/docs/NODE_PROFILE_STANDARD_v1.md

344 lines
13 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.
# Node Profile Standard v1.0
**Date:** 2025-11-28
**Status:** Active
**Version:** 1.0.0
---
## Overview
Цей документ визначає стандартний профіль ноди в мережі DAARION/DAGI. Кожна нода описується набором модулів, які можуть бути присутні або відсутні залежно від ролі та конфігурації.
---
## Node Identity
Кожна нода має унікальну ідентичність:
```json
{
"node_id": "node-1-hetzner-gex44",
"name": "Hetzner GEX44 Production",
"roles": ["core", "gateway", "matrix", "agents", "gpu"],
"type": "production",
"ip_address": "144.76.224.179",
"local_ip": null,
"hostname": "gateway.daarion.city",
"status": "online",
"version": "1.0.0"
}
```
---
## Standard Modules
### 1. Core Modules (Required)
| Module ID | Description | Required |
|-----------|-------------|----------|
| `core.node` | Node identity, roles, version, uptime | ✅ Yes |
| `core.health` | Basic health check endpoint | ✅ Yes |
### 2. Infrastructure Modules
| Module ID | Description | Port | Required |
|-----------|-------------|------|----------|
| `infra.metrics` | CPU, RAM, Disk, GPU metrics | - | Recommended |
| `infra.postgres` | PostgreSQL database | 5432 | Optional |
| `infra.redis` | Redis cache | 6379 | Optional |
| `infra.nats` | NATS message broker | 4222 | Optional |
| `infra.qdrant` | Qdrant vector DB | 6333 | Optional |
| `infra.neo4j` | Neo4j graph DB | 7474/7687 | Optional |
### 3. AI/ML Modules
| Module ID | Description | Port | Required |
|-----------|-------------|------|----------|
| `ai.ollama` | Ollama LLM runtime | 11434 | Optional |
| `ai.swapper` | Model swapper service | 8890 | Optional |
| `ai.router` | DAGI Router | 9102 | Optional |
| `ai.stt` | Speech-to-Text | 8895 | Optional |
| `ai.tts` | Text-to-Speech | 5002 | Optional |
| `ai.vision` | Vision/Image processing | - | Optional |
| `ai.ocr` | OCR service | 8896 | Optional |
| `ai.image_gen` | Image generation | 9600 | Optional |
| `ai.rag` | RAG service | - | Optional |
| `ai.memory` | Memory service | 8001 | Optional |
| `ai.crewai` | CrewAI orchestration | 9010 | Optional |
### 4. DAARION Stack Modules
| Module ID | Description | Port | Required |
|-----------|-------------|------|----------|
| `daarion.web` | Frontend (Next.js) | 3000 | Optional |
| `daarion.city` | City Service | 7001 | Optional |
| `daarion.agents` | Agents Service | 7002 | Optional |
| `daarion.auth` | Auth Service | 7020 | Optional |
| `daarion.secondme` | Second Me Service | 7003 | Optional |
| `daarion.microdao` | MicroDAO Service | 7015 | Optional |
### 5. Matrix Modules
| Module ID | Description | Port | Required |
|-----------|-------------|------|----------|
| `matrix.synapse` | Matrix Synapse homeserver | 8008/8018 | Optional |
| `matrix.element` | Element Web client | 8088 | Optional |
| `matrix.gateway` | Matrix Gateway | 7025 | Optional |
| `matrix.presence` | Presence Aggregator | 8085 | Optional |
### 6. DAGI Infrastructure Modules
| Module ID | Description | Port | Required |
|-----------|-------------|------|----------|
| `dagi.gateway` | DAGI Gateway | 9300 | Optional |
| `dagi.rbac` | RBAC Service | 9200 | Optional |
| `dagi.devtools` | DevTools | 8008 | Optional |
| `dagi.registry` | Node Registry | 9205 | Optional |
| `dagi.parser` | Parser Service | 9400 | Optional |
### 7. Monitoring Modules
| Module ID | Description | Port | Required |
|-----------|-------------|------|----------|
| `monitoring.prometheus` | Prometheus | 9090 | Optional |
| `monitoring.grafana` | Grafana | 3001 | Optional |
| `monitoring.loki` | Loki logs | - | Optional |
### 8. External Integrations
| Module ID | Description | Port | Required |
|-----------|-------------|------|----------|
| `integration.telegram` | Telegram Bot API | 8081 | Optional |
| `integration.web_search` | Web Search Service | 8897 | Optional |
---
## Module Status Values
| Status | Description |
|--------|-------------|
| `up` | Module is running and healthy |
| `down` | Module is not running |
| `degraded` | Module is running but with issues |
| `unknown` | Status cannot be determined |
| `not_installed` | Module is not installed on this node |
---
## Node Profiles
### Production Node (NODE1)
```json
{
"node_id": "node-1-hetzner-gex44",
"name": "Hetzner GEX44 Production",
"roles": ["core", "gateway", "matrix", "agents", "gpu"],
"type": "production",
"gpu": {
"name": "NVIDIA RTX 4000 SFF Ada",
"vram_gb": 20
},
"modules": [
{"id": "core.node", "status": "up"},
{"id": "core.health", "status": "up"},
{"id": "infra.metrics", "status": "up"},
{"id": "infra.postgres", "status": "up", "port": 5432},
{"id": "infra.redis", "status": "up", "port": 6379},
{"id": "infra.nats", "status": "up", "port": 4222},
{"id": "infra.qdrant", "status": "up", "port": 6333},
{"id": "infra.neo4j", "status": "up", "port": 7474},
{"id": "ai.ollama", "status": "up", "port": 11434, "models": ["mistral:7b"]},
{"id": "ai.swapper", "status": "degraded", "port": 8890},
{"id": "ai.router", "status": "up", "port": 9102},
{"id": "ai.stt", "status": "degraded", "port": 8895},
{"id": "ai.tts", "status": "up", "port": 5002},
{"id": "ai.ocr", "status": "degraded", "port": 8896},
{"id": "ai.image_gen", "status": "degraded", "port": 9600},
{"id": "ai.memory", "status": "up", "port": 8001},
{"id": "ai.crewai", "status": "up", "port": 9010},
{"id": "daarion.web", "status": "up", "port": 3000},
{"id": "daarion.city", "status": "up", "port": 7001},
{"id": "daarion.agents", "status": "up", "port": 7002},
{"id": "daarion.auth", "status": "up", "port": 7020},
{"id": "daarion.secondme", "status": "up", "port": 7003},
{"id": "daarion.microdao", "status": "up", "port": 7015},
{"id": "matrix.synapse", "status": "up", "port": 8018},
{"id": "matrix.element", "status": "up", "port": 8088},
{"id": "matrix.gateway", "status": "up", "port": 7025},
{"id": "matrix.presence", "status": "up", "port": 8085},
{"id": "dagi.gateway", "status": "up", "port": 9300},
{"id": "dagi.rbac", "status": "up", "port": 9200},
{"id": "dagi.devtools", "status": "up", "port": 8008},
{"id": "dagi.registry", "status": "up", "port": 9205},
{"id": "dagi.parser", "status": "up", "port": 9400},
{"id": "monitoring.prometheus", "status": "up", "port": 9090},
{"id": "integration.telegram", "status": "up", "port": 8081}
]
}
```
### Development Node (NODE2)
```json
{
"node_id": "node-2-macbook-m4max",
"name": "MacBook Pro M4 Max",
"roles": ["development", "gpu", "ai_runtime"],
"type": "development",
"gpu": {
"name": "Apple M4 Max",
"unified_memory_gb": 128
},
"modules": [
{"id": "core.node", "status": "up"},
{"id": "core.health", "status": "up"},
{"id": "infra.postgres", "status": "up", "port": 5432},
{"id": "infra.qdrant", "status": "up", "port": 6333},
{"id": "ai.ollama", "status": "up", "port": 11434, "models": [
"deepseek-r1:70b", "deepseek-coder:33b", "qwen2.5-coder:32b",
"gemma2:27b", "mistral-nemo:12b", "llava:13b", "phi3:latest",
"starcoder2:3b", "gpt-oss:latest"
]},
{"id": "ai.swapper", "status": "up", "port": 8890},
{"id": "ai.router", "status": "up", "port": 9102},
{"id": "ai.stt", "status": "up", "port": 8895},
{"id": "ai.ocr", "status": "up", "port": 8896},
{"id": "dagi.gateway", "status": "up", "port": 9300},
{"id": "dagi.rbac", "status": "up", "port": 9200},
{"id": "dagi.devtools", "status": "up", "port": 8008},
{"id": "dagi.crewai", "status": "up", "port": 9010},
{"id": "integration.web_search", "status": "up", "port": 8897}
]
}
```
---
## Service Inventory
### NODE1 Services (35 containers)
| Service | Image | Port | Status | Stack |
|---------|-------|------|--------|-------|
| dagi-router | dagi-router:latest | 9102 | up | DAGI |
| daarion-agents-service | daarion-agents-service:latest | 7002 | up | DAARION |
| daarion-web | daarion-web:latest | 3000 | up | DAARION |
| matrix-presence-aggregator | matrix-presence-aggregator:latest | 8085 | up | DAARION |
| daarion-city-service | microdao-daarion-city-service:latest | 7001 | up | DAARION |
| dagi-node-registry | microdao-daarion-node-registry:latest | 9205 | up | DAGI |
| daarion-matrix-gateway | daarion-matrix-gateway:latest | 7025 | up | DAARION |
| daarion-auth | daarion-auth | 7020 | up | DAARION |
| daarion-synapse | matrixdotorg/synapse:latest | 8018 | up | Matrix |
| daarion-element | vectorim/element-web:latest | 8088 | up | Matrix |
| daarion-secondme-service | daarion-secondme-service:latest | 7003 | up | DAARION |
| daarion-microdao-service | daarion-microdao-service:latest | 7015 | up | DAARION |
| daarion-redis | redis:7-alpine | 6379 | up | Infra |
| dagi-gateway | microdao-daarion-gateway | 9300 | up | DAGI |
| dagi-rbac | microdao-daarion-rbac | 9200 | up | DAGI |
| dagi-devtools | microdao-daarion-devtools | 8008 | up | DAGI |
| dagi-crewai | microdao-daarion-crewai | 9010 | up | DAGI |
| dagi-stt-service | stt-service-stt-service | 8895 | degraded | DAGI |
| telegram-gateway | telegram-infrastructure-telegram-gateway | 8000 | up | Integration |
| dagi-tts | daarion-tts:latest | 5002 | up | DAGI |
| dagi-swapper-service | microdao-daarion-swapper-service | 8890 | degraded | DAGI |
| dagi-vector-db-service | vector-db-service-vector-db-service | - | restarting | DAGI |
| dagi-ocr-service | ocr-service-ocr-service | 8896 | degraded | DAGI |
| dagi-web-search-service | web-search-service-web-search-service | 8897 | degraded | DAGI |
| dagi-postgres | pgvector/pgvector:pg15 | 5432 | up | Infra |
| dagi-memory-service | microdao-daarion-memory-service | 8001 | up | DAGI |
| dagi-neo4j-exporter | microdao-daarion-neo4j-exporter | 9108 | up | Monitoring |
| dagi-neo4j | neo4j:5.15-community | 7474/7687 | up | Infra |
| dagi-nats | nats:2-alpine | 4222 | up | Infra |
| dagi-image-gen | microdao-daarion-image-gen-service | 9600 | degraded | DAGI |
| dagi-rag-service | microdao-daarion-rag-service | - | restarting | DAGI |
| dagi-qdrant | qdrant/qdrant:v1.7.4 | 6333 | up | Infra |
| dagi-prometheus | prom/prometheus:latest | 9090 | up | Monitoring |
| dagi-parser-service | microdao-daarion-parser-service | 9400 | up | DAGI |
| telegram-bot-api | aiogram/telegram-bot-api:latest | 8081 | up | Integration |
**Systemd Services:**
- `ollama.service` — Ollama LLM runtime (port 11434)
- `k3s.service` — Lightweight Kubernetes
- `nvidia-persistenced.service` — NVIDIA GPU daemon
**GPU:** NVIDIA RTX 4000 SFF Ada Generation (20GB VRAM)
### NODE2 Services (13 containers)
| Service | Image | Port | Status | Stack |
|---------|-------|------|--------|-------|
| ocr-service | ocr-service:latest | 8896 | up | DAGI |
| dagi-stt-service | stt-service-stt-service | 8895 | up | DAGI |
| swapper-service | swapper-service:latest | 8890 | up | DAGI |
| dagi-web-search-service | web-search-service-web-search-service | 8897 | degraded | DAGI |
| dagi-postgres | postgres:15-alpine | 5432 | up | Infra |
| dagi-gateway | microdao-daarion-gateway | 9300 | up | DAGI |
| dagi-router | microdao-daarion-router | 9102 | up | DAGI |
| dagi-crewai | microdao-daarion-crewai | 9010 | up | DAGI |
| dagi-devtools | microdao-daarion-devtools | 8008 | up | DAGI |
| dagi-rbac | microdao-daarion-rbac | 9200 | up | DAGI |
| jupyter-lab | jupyter/datascience-notebook:latest | 8888 | up | Dev |
| qdrant-vector-db | qdrant/qdrant:latest | 6333 | up | Infra |
| meilisearch-search | getmeili/meilisearch:v1.11 | 7700 | up | Infra |
**Ollama Models (9):**
- deepseek-r1:70b (42 GB)
- deepseek-coder:33b (18 GB)
- qwen2.5-coder:32b (19 GB)
- gemma2:27b (15 GB)
- mistral-nemo:12b (7 GB)
- llava:13b (8 GB)
- phi3:latest (2 GB)
- starcoder2:3b (2 GB)
- gpt-oss:latest (13 GB)
**GPU:** Apple M4 Max (128GB Unified Memory)
---
## API Contract
### Node Dashboard Endpoint
`GET /node/dashboard`
Returns aggregated dashboard data for the current node.
```json
{
"node": {
"id": "node-1-hetzner-gex44",
"name": "Hetzner GEX44 Production",
"status": "online",
"uptime_seconds": 604800,
"version": "1.0.0"
},
"resources": {
"cpu_usage_pct": 37.5,
"ram": {"total_gb": 64, "used_gb": 43},
"gpu": {"name": "NVIDIA RTX 4000 SFF Ada", "vram_gb": 20, "used_gb": 18},
"disk": {"total_gb": 4000, "used_gb": 2200}
},
"modules": [
{"id": "ai.router", "status": "up", "port": 9102, "latency_ms": 23},
{"id": "ai.swapper", "status": "up", "port": 8890, "active_model": "mistral:7b"},
...
],
"agents": {
"total": 54,
"online": 53,
"by_kind": {"vision": 4, "developer": 5, ...}
}
}
```
---
## Changelog
- **v1.0.0** (2025-11-28): Initial standard based on NODE1/NODE2 audit