- 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
13 KiB
13 KiB
🖥️ Node #2 Specifications — MacBook Pro M4 Max
Версія: 1.0.0
Останнє оновлення: 2025-01-17
Статус: Development Node / Backup Production Node
Node ID: node-2-macbook-m4max
📍 Node Overview
Identification
- Node Name:
MacBook-Pro.local - Node ID:
node-2-macbook-m4max - Role: Development Node / Secondary DAGI Router
- Location: Local Network (192.168.1.244)
- Owner: Ivan Tytar (apple)
Network Configuration
- Local IP:
192.168.1.244 - Hostname:
MacBook-Pro.local - External IPv6:
2a0d:3341:c75d:2110:7028:a5c:fbae:8d04 - MAC Address:
ca:60:9e:d4:7a:db(en0) - Network Interface: en0 (Wi-Fi/Ethernet)
🔧 Hardware Specifications
System Information
- Model: MacBook Pro (16-inch, 2024)
- Model Identifier: Mac16,5
- Model Number: Z1FW00077LL/A
- Serial Number: F2MCWXDTY2
- Hardware UUID: FF5B65C5-BCC3-5BEC-8D73-4BD7BF5BF33E
Processor (SoC)
- Chip: Apple M4 Max
- Architecture: ARM64 (Apple Silicon)
- Total Cores: 16
- Performance Cores: 12
- Efficiency Cores: 4
- CPU Brand: Apple M4 Max
- Metal Support: Metal 4
Graphics (GPU)
- GPU: Apple M4 Max (Integrated)
- GPU Cores: 40
- Vendor: Apple (0x106b)
- Metal Version: Metal 4
- GPU Capabilities:
- Hardware-accelerated ML/AI inference
- Unified memory architecture
- Neural Engine support
- Ray tracing support
Memory (RAM)
- Total Memory: 64 GB
- Type: LPDDR5
- Manufacturer: Hynix
- Architecture: Unified Memory (shared CPU/GPU)
- Memory Bandwidth: ~400 GB/s
Storage
- Total Capacity: 2 TB (1,995,218,165,760 bytes)
- Free Space: 1.72 TB (1,720,359,989,248 bytes)
- Usage: ~13.8% (275 GB used)
- Device: APPLE SSD AP2048Z
- Type: NVMe SSD (Apple Fabric Protocol)
- File System: APFS
- S.M.A.R.T. Status: ✅ Verified
- Read Speed: ~7000 MB/s
- Write Speed: ~6000 MB/s
Display
- Type: Built-in Liquid Retina XDR Display
- Resolution: 3456 x 2234 (Retina)
- Refresh Rate: 120 Hz (ProMotion)
- Color Gamut: P3 Wide Color
- Brightness: 1000 nits sustained, 1600 nits HDR peak
💻 Software Configuration
Operating System
- OS: macOS 26.1 (Developer Beta)
- Build: 25B78
- Kernel: Darwin 25.1.0
- Architecture: arm64
- Boot Volume: Macintosh HD
- Secure Virtual Memory: ✅ Enabled
- System Integrity Protection (SIP): ✅ Enabled
- Uptime: 4 days, 33 minutes
Development Tools
Docker
- Docker Engine: 28.5.1 (build e180ab8)
- Docker Compose: v2.40.0-desktop.1
- Docker Desktop: Installed via
/usr/local/bin/docker - Container Runtime: Apple Silicon native (ARM64)
Ollama (Local LLM)
- Version: 0.5.5 (Server) / 0.12.5 (Client)
- Location:
/opt/homebrew/bin/ollama - Running Instances:
- Native macOS: Port 11434 (via Pieces OS)
- Docker Container: Port 11435 (ollama-ai) — не працює
- Installed Models (8 моделей, завантажено 2025-11-21):
- mistral-nemo:12b (7.1 GB, Q4_0, 12.2B params) — Mistral Nemo
- gemma2:27b (15 GB, Q4_0, 27.2B params) — Google Gemma 2
- deepseek-coder:33b (18 GB, Q4_0, 33B params) — Code generation
- qwen2.5-coder:32b (19 GB, Q4_K_M, 32.8B params) — Qwen code model
- deepseek-r1:70b (42 GB, Q4_K_M, 70.6B params) — Reasoning model
- starcoder2:3b (1.7 GB, Q4_0, 3B params) — Lightweight code model
- phi3:latest (2.2 GB, Q4_0, 3.8B params) — Microsoft Phi-3
- gpt-oss:latest (13 GB, MXFP4, 20.9B params) — Open source GPT
- Total Model Size: ~118 GB
- API Endpoints:
- Native:
http://localhost:11434/api/tags - Docker:
http://localhost:11435/api/tags(не працює)
- Native:
Python
- Version: Python 3.14.0 (latest)
- Location:
/opt/homebrew/bin/python3 - Package Manager: pip, Homebrew
Git
- Version: 2.50.1 (Apple Git-155)
- Location:
/usr/bin/git - SSH Keys: Configured for GitHub
Shell
- Default Shell: zsh 5.9
- Terminal: Warp (Agentic Development Environment)
🚀 DAGI Stack Capabilities
Available Resources for Services
| Resource | Available | Notes |
|---|---|---|
| CPU Cores | 16 cores | 12 performance + 4 efficiency |
| GPU Cores | 40 cores | Metal 4, Neural Engine |
| RAM | 64 GB | Unified memory (shared CPU/GPU) |
| Storage | 1.72 TB free | High-speed NVMe SSD |
| Network | 1 Gbps+ | Wi-Fi 6E or Thunderbolt Ethernet |
Currently Running Services
✅ Active Services (Running Now)
- ✅ Ollama (Port 11434 native + 11435 Docker) — 2x LLM instances
- ✅ LobeChat (Port 3210) — AI chat interface
- ✅ Qdrant (Port 6333-6335) — Vector database ⚠️ Shows unhealthy in docker ps
- ✅ MeiliSearch (Port 7700) — Full-text search engine
- ✅ Jupyter Lab (Port 8888) — Data science notebook
- ✅ NATS JetStream (Port 4222, 6222, 8222) — Message broker
📦 Docker Resources
- Volumes:
apple_qdrant_storage— Qdrant vector datamicrodao-daarion_rag-model-cache— RAG model cache
- Networks:
daarion-network— Docker bridge network
- Data Directory:
/Users/apple/github-projects/microdao-daarion/data/rbac/— RBAC data (empty)
🔧 Configuration Files Present
- ✅
.env— Environment variables configured - ✅
router-config.yml— Router configuration - ✅
router-config.yml.backup— Config backup - ✅
docker-compose.yml— Docker services definition - ✅
.env.example— Environment template
🐍 Python Packages Installed
httpx 0.28.1— HTTP clientopenai 2.8.0— OpenAI SDKpydantic 2.12.4— Data validationpydantic_core 2.41.5— Pydantic core- (Note: fastapi, uvicorn likely missing — need to install)
🚀 Recommended Services to Add
- 🔨 DAGI Router (Port 9102) — Main routing engine
- 🔨 DevTools Backend (Port 8008) — Development tools
- 🔨 Memory Service (Port 8000) — Agent memory
- 🔨 PostgreSQL (Port 5432) — Memory storage
- 🔨 Redis (Port 6379) — Cache
🔌 Network Configuration
Local Network Access
# SSH Access (if enabled)
ssh apple@192.168.1.244
# Router URL (when running)
http://192.168.1.244:9102/health
# Ollama API
http://192.168.1.244:11434/api/tags
Port Forwarding (if needed)
To expose services externally, configure router port forwarding:
- External: 9102 → Internal: 192.168.1.244:9102 (Router)
- External: 11434 → Internal: 192.168.1.244:11434 (Ollama)
📦 Deployment Configuration
Project Location
# Repository path
/Users/apple/github-projects/microdao-daarion
# Environment file
/Users/apple/github-projects/microdao-daarion/.env
Environment Variables (.env)
# Node identification
NODE_ID=node-2-macbook-m4max
NODE_NAME=MacBook-Pro.local
NODE_ROLE=development
# Network
LOCAL_IP=192.168.1.244
ROUTER_HOST=0.0.0.0
ROUTER_PORT=9102
# Ollama (Dual instance setup)
OLLAMA_BASE_URL=http://localhost:11434 # Native Ollama (via Pieces OS)
OLLAMA_DOCKER_URL=http://localhost:11435 # Docker Ollama
OLLAMA_MODEL=qwen2.5:7b-instruct
OLLAMA_FAST_MODEL=qwen2.5:1.5b-instruct
# LobeChat (Already running)
LOBECHAT_URL=http://localhost:3210
# Qdrant (Already running)
QDRANT_URL=http://localhost:6333
# MeiliSearch (Already running)
MEILISEARCH_URL=http://localhost:7700
# NATS JetStream (Already running)
NATS_URL=nats://localhost:4222
# Memory Service
MEMORY_SERVICE_URL=http://localhost:8000
MEMORY_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/daarion_memory
# PostgreSQL
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=daarion_memory
# Resource Limits
MAX_WORKERS=8
MEMORY_LIMIT=32G
GPU_ENABLED=true
GPU_MEMORY_FRACTION=0.5
# Remote Node (Production Server)
PRODUCTION_NODE_URL=https://gateway.daarion.city
PRODUCTION_NODE_IP=144.76.224.179
🧪 Performance Benchmarks
LLM Inference (Ollama)
- Primary Model: qwen2.5:7b-instruct (Q4_K_M, 7.6B params)
- Size: 4.7 GB
- Tokens/second: ~50-70 tokens/s (M4 Max optimized)
- Context Length: 32,768 tokens
- Memory Usage: ~6 GB RAM
- Concurrent Requests: 3-5 simultaneous (dual instance)
- Fast Model: qwen2.5:1.5b-instruct (Q4_K_M, 1.5B params)
- Size: 986 MB
- Tokens/second: ~100-150 tokens/s
- Context Length: 32,768 tokens
- Memory Usage: ~2 GB RAM
- Use case: Quick responses, summarization
Docker Container Limits
# Recommended docker-compose.yml resource limits
services:
router:
deploy:
resources:
limits:
cpus: '4'
memory: 8G
memory-service:
deploy:
resources:
limits:
cpus: '2'
memory: 4G
postgres:
deploy:
resources:
limits:
cpus: '2'
memory: 4G
🔐 Security Configuration
Firewall
- macOS Firewall: Enabled (System Preferences → Security)
- Allowed Services: Docker, Ollama, SSH (optional)
SSH Access (Optional)
# Enable remote login
sudo systemsetup -setremotelogin on
# Configure SSH key
cat ~/.ssh/id_ed25519.pub # Copy to authorized_keys on remote servers
Environment Secrets
# Never commit to Git
.env
.env.local
secrets/
# Secure storage
export OPENAI_API_KEY=$(security find-generic-password -s openai_key -w)
🔄 Backup & Sync Strategy
Code Synchronization
# Push to GitHub (primary backup)
cd /Users/apple/github-projects/microdao-daarion
git add .
git commit -m "feat: update from Node 2"
git push origin main
# Pull on production server (Node 1)
ssh root@144.76.224.179
cd /opt/microdao-daarion
git pull origin main
docker-compose up -d --build
Database Backup
# Backup PostgreSQL to production
docker exec dagi-postgres pg_dump -U postgres daarion_memory | \
ssh root@144.76.224.179 "cat > /opt/backups/node2_$(date +%Y%m%d).sql"
# Restore from production
ssh root@144.76.224.179 "cat /opt/backups/latest.sql" | \
docker exec -i dagi-postgres psql -U postgres daarion_memory
🚨 Limitations & Considerations
Hardware Limitations
- ⚠️ No NVIDIA GPU: Cannot run CUDA-based vision models (use Metal/MPS or remote GPU)
- ⚠️ Battery-powered: Not suitable for 24/7 production (use Node 1 instead)
- ⚠️ Single storage: No RAID redundancy (backup to cloud required)
- ✅ 40-core Apple GPU: Can run Metal-optimized ML models (CoreML, MLX, MPS)
Network Limitations
- ⚠️ Dynamic IP: Local IP may change (use DHCP reservation or static IP)
- ⚠️ No public IP: Requires port forwarding or VPN for external access
- ⚠️ Wi-Fi latency: Use Ethernet adapter for low-latency requirements
Software Limitations
- ⚠️ Apple Silicon: Some Docker images may not be ARM64-compatible
- ⚠️ macOS Beta: May have stability issues (use stable macOS for production)
- ⚠️ Docker Desktop: Less efficient than native Docker (Linux preferred for production)
📊 Monitoring & Health Checks
System Monitoring
# CPU/Memory usage
top -l 1 | head -n 10
# Disk usage
df -h /
# Docker stats
docker stats --no-stream
# Ollama status
curl http://localhost:11434/api/tags
Service Health
# Router health
curl http://localhost:9102/health
# Memory service health
curl http://localhost:8000/health
# PostgreSQL health
docker exec dagi-postgres pg_isready
🔗 Related Documentation
- NODE-2-CURRENT-STATE.md — Current running services & action plan
- INFRASTRUCTURE.md — Production Node #1 (Hetzner)
- WARP.md — Main developer guide
- SYSTEM-INVENTORY.md — Complete system inventory
- docs/infrastructure_quick_ref.ipynb — Quick reference
📞 Node Contacts
Hardware Support
- Manufacturer: Apple Inc.
- AppleCare: https://support.apple.com
- Serial Number: F2MCWXDTY2
Network
- Local Admin: Ivan Tytar
- Router: 192.168.1.1
- ISP: (to be documented)
Last Updated: 2025-11-22 by WARP AI
Maintained by: Ivan Tytar
Status: ✅ Development Ready (8 AI Models Installed, Services Partially Running)
Recent Updates:
- ✅ 2025-11-21: Завантажено 8 великих моделей Ollama (~118 GB)
- ✅ Моделі включають: code models (deepseek-coder, qwen2.5-coder, starcoder2), reasoning (deepseek-r1:70b), general (gemma2, mistral-nemo, phi3, gpt-oss) Next Steps:
- Install missing Python packages:
pip3 install fastapi uvicorn - Start core DAGI services: Router, Memory, DevTools
- Fix Qdrant unhealthy status (check logs:
docker logs qdrant-vector-db) - Configure node-to-node communication with Node #1
- Set up PostgreSQL for DAARION core memory
- Test new models with DAGI Router (configure routing for different models)