- 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
332 lines
9.0 KiB
Markdown
332 lines
9.0 KiB
Markdown
# DAARION Deployment Overview
|
|
|
|
**Version:** 1.0.0
|
|
**Phase:** INFRA — All-in-One Gateway
|
|
**Last Updated:** 24 листопада 2025
|
|
|
|
---
|
|
|
|
## 🎯 Architecture Overview
|
|
|
|
DAARION uses a **microservices architecture** with a single **NGINX gateway** as the entry point.
|
|
|
|
```
|
|
┌─────────────────┐
|
|
│ Internet │
|
|
└────────┬────────┘
|
|
│
|
|
┌────────▼────────┐
|
|
│ NGINX Gateway │
|
|
│ (Port 80/443) │
|
|
└────────┬────────┘
|
|
│
|
|
┌───────────────────┼───────────────────┐
|
|
│ │ │
|
|
┌────▼─────┐ ┌─────▼──────┐ ┌──────▼─────┐
|
|
│ Frontend │ │ API Routes │ │ WebSockets │
|
|
│ (SPA) │ │ /api/* │ │ /ws/* │
|
|
└──────────┘ └─────┬──────┘ └──────┬─────┘
|
|
│ │
|
|
┌──────────────┼──────────────┬────┘
|
|
│ │ │
|
|
┌───────▼──────┐ ┌───▼────────┐ ┌──▼─────────┐
|
|
│ Auth Service │ │DAO Service │ │Living Map │
|
|
│ :7011 │ │ :7016 │ │ :7017 │
|
|
└──────┬───────┘ └───┬────────┘ └──┬─────────┘
|
|
│ │ │
|
|
└──────────────┼──────────────┘
|
|
│
|
|
┌────────▼──────────┐
|
|
│ PostgreSQL :5432 │
|
|
│ NATS :4222 │
|
|
│ Redis :6379 │
|
|
└───────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 📦 Services Stack
|
|
|
|
### Infrastructure Services (4)
|
|
- **PostgreSQL** — Database
|
|
- **Redis** — Cache & Sessions
|
|
- **NATS** — Message Bus (JetStream)
|
|
- **Matrix Synapse** — Chat server
|
|
|
|
### Core Services (4)
|
|
- **auth-service** (7011) — Authentication (Passkey)
|
|
- **pdp-service** (7012) — Authorization (PDP)
|
|
- **usage-engine** (7013) — Metrics & Usage tracking
|
|
- **messaging-service** (7004) — Messenger API
|
|
|
|
### Agent Infrastructure (6)
|
|
- **agent-runtime** (7010) — Agent execution
|
|
- **agent-filter** (7005) — Request filtering
|
|
- **dagi-router** (7006) — Routing logic
|
|
- **llm-proxy** (7007) — LLM provider proxy
|
|
- **memory-orchestrator** (7008) — Memory management
|
|
- **toolcore** (7009) — Tool execution
|
|
|
|
### Application Services (6)
|
|
- **agents-service** (7014) — Agent Hub (Phase 6)
|
|
- **microdao-service** (7015) — MicroDAO Console (Phase 7)
|
|
- **dao-service** (7016) — DAO Dashboard (Phase 8)
|
|
- **living-map-service** (7017) — Living Map (Phase 9)
|
|
- **city-service** (7001) — City layer
|
|
- **space-service** (7002) — Space layer
|
|
|
|
### Frontend & Gateway (2)
|
|
- **frontend** (nginx:80) — React SPA
|
|
- **gateway** (nginx:80/443) — Reverse proxy
|
|
|
|
**Total: 23 services** behind a single gateway
|
|
|
|
---
|
|
|
|
## 🌐 API Routes
|
|
|
|
All services are accessible through the gateway at `/api/*`:
|
|
|
|
| Service | External Route | Internal URL |
|
|
|---------|---------------|--------------|
|
|
| Auth | `/api/auth/` | `http://auth-service:7011/` |
|
|
| PDP | `/api/pdp/` | `http://pdp-service:7012/` |
|
|
| Usage | `/api/usage/` | `http://usage-engine:7013/` |
|
|
| Agents | `/api/agents/` | `http://agents-service:7014/` |
|
|
| MicroDAO | `/api/microdao/` | `http://microdao-service:7015/` |
|
|
| DAO | `/api/dao/` | `http://dao-service:7016/` |
|
|
| Living Map | `/api/living-map/` | `http://living-map-service:7017/living-map/` |
|
|
| Messaging | `/api/messaging/` | `http://messaging-service:7004/` |
|
|
| City | `/api/city/` | `http://city-service:7001/api/city/` |
|
|
| Space | `/api/space/` | `http://space-service:7002/api/space/` |
|
|
|
|
### WebSocket Routes
|
|
|
|
| Service | External Route | Internal URL |
|
|
|---------|---------------|--------------|
|
|
| Living Map | `/ws/living-map/` | `ws://living-map-service:7017/living-map/stream` |
|
|
| Agents Events | `/ws/agents/` | `ws://agents-service:7014/ws/agents/stream` |
|
|
| Messaging | `/ws/messaging/` | `ws://messaging-service:7004/ws` |
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start (Local Development)
|
|
|
|
### Prerequisites
|
|
|
|
- Docker & Docker Compose
|
|
- Node.js 18+
|
|
- PostgreSQL client (psql)
|
|
|
|
### 1. Build Frontend
|
|
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
### 2. Start All Services
|
|
|
|
```bash
|
|
./scripts/start-all.sh
|
|
```
|
|
|
|
This will:
|
|
- Apply database migrations (001-010)
|
|
- Build all Docker images
|
|
- Start all services
|
|
- Configure NGINX gateway
|
|
|
|
### 3. Access
|
|
|
|
- **Frontend:** http://localhost
|
|
- **API:** http://localhost/api/
|
|
- **Health:** http://localhost/health
|
|
|
|
### 4. Stop Services
|
|
|
|
```bash
|
|
./scripts/stop-all.sh
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 Project Structure
|
|
|
|
```
|
|
daarion/
|
|
├── docker-compose.all.yml # All-in-one compose
|
|
├── Dockerfile.frontend # Frontend build
|
|
├── nginx/
|
|
│ ├── all-in-one.conf # Gateway config
|
|
│ └── frontend.conf # Frontend nginx
|
|
├── scripts/
|
|
│ ├── start-all.sh # Start script
|
|
│ └── stop-all.sh # Stop script
|
|
├── services/
|
|
│ ├── auth-service/
|
|
│ ├── dao-service/
|
|
│ ├── living-map-service/
|
|
│ └── ... (20+ services)
|
|
├── migrations/
|
|
│ ├── 001_create_users_and_auth.sql
|
|
│ ├── ...
|
|
│ └── 010_create_living_map_tables.sql
|
|
└── src/ # Frontend source
|
|
```
|
|
|
|
---
|
|
|
|
## 🔒 Security
|
|
|
|
### Authentication
|
|
- **Passkey** (WebAuthn) for users
|
|
- **Internal tokens** for service-to-service
|
|
|
|
### Authorization
|
|
- **PDP** (Policy Decision Point) for all requests
|
|
- Role-based access control (RBAC)
|
|
- Resource-level permissions
|
|
|
|
### Network
|
|
- All services in private network
|
|
- Only gateway exposed to internet
|
|
- No direct service access from outside
|
|
|
|
---
|
|
|
|
## 📊 Monitoring & Logs
|
|
|
|
### View Logs
|
|
|
|
```bash
|
|
# All services
|
|
docker-compose -f docker-compose.all.yml logs -f
|
|
|
|
# Specific service
|
|
docker-compose -f docker-compose.all.yml logs -f gateway
|
|
docker-compose -f docker-compose.all.yml logs -f living-map-service
|
|
```
|
|
|
|
### Health Checks
|
|
|
|
- **Gateway:** http://localhost/health
|
|
- **Individual services:** Health checks in docker-compose
|
|
|
|
### Metrics
|
|
|
|
- Usage Engine collects all LLM/Agent metrics
|
|
- Available through `/api/usage/`
|
|
|
|
---
|
|
|
|
## 🔧 Configuration
|
|
|
|
### Environment Variables
|
|
|
|
All services use:
|
|
- `DATABASE_URL` — PostgreSQL connection
|
|
- `NATS_URL` — NATS connection
|
|
- `REDIS_URL` — Redis connection
|
|
- Service-specific URLs (e.g., `AUTH_SERVICE_URL`)
|
|
|
|
### Volumes
|
|
|
|
- `postgres_data` — Database persistence
|
|
- `nats_data` — NATS JetStream storage
|
|
- `redis_data` — Redis persistence
|
|
- `matrix_data` — Matrix Synapse data
|
|
|
|
---
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
### Services not starting
|
|
|
|
```bash
|
|
# Check logs
|
|
docker-compose -f docker-compose.all.yml logs
|
|
|
|
# Check specific service
|
|
docker-compose -f docker-compose.all.yml ps
|
|
```
|
|
|
|
### Database connection issues
|
|
|
|
```bash
|
|
# Check if postgres is healthy
|
|
docker-compose -f docker-compose.all.yml ps postgres
|
|
|
|
# Connect to postgres
|
|
docker exec -it daarion-postgres psql -U postgres -d daarion
|
|
```
|
|
|
|
### Frontend not loading
|
|
|
|
```bash
|
|
# Rebuild frontend
|
|
npm run build
|
|
|
|
# Restart gateway
|
|
docker-compose -f docker-compose.all.yml restart gateway
|
|
```
|
|
|
|
### API routes not working
|
|
|
|
1. Check nginx config: `nginx/all-in-one.conf`
|
|
2. Check if service is running:
|
|
```bash
|
|
docker-compose -f docker-compose.all.yml ps [service-name]
|
|
```
|
|
3. Check service logs
|
|
|
|
---
|
|
|
|
## 📈 Scaling
|
|
|
|
### Horizontal Scaling
|
|
|
|
For production, you can scale services:
|
|
|
|
```bash
|
|
docker-compose -f docker-compose.all.yml up -d --scale living-map-service=3
|
|
```
|
|
|
|
### Load Balancing
|
|
|
|
Update nginx config to use multiple backends:
|
|
|
|
```nginx
|
|
upstream living_map_service {
|
|
server living-map-service-1:7017;
|
|
server living-map-service-2:7017;
|
|
server living-map-service-3:7017;
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🌍 Production Deployment
|
|
|
|
See [DEPLOY_ON_SERVER.md](./DEPLOY_ON_SERVER.md) for:
|
|
- Server setup
|
|
- Domain configuration
|
|
- SSL/TLS certificates
|
|
- Environment variables
|
|
- Backup strategy
|
|
|
|
---
|
|
|
|
## 📚 Related Documentation
|
|
|
|
- **Infrastructure:** `INFRASTRUCTURE.md`
|
|
- **Quick Reference:** `docs/infrastructure_quick_ref.ipynb`
|
|
- **Phase 9A:** `PHASE9A_BACKEND_READY.md`
|
|
- **Phase 9B:** `PHASE9B_LITE_2D_READY.md`
|
|
- **Server Deployment:** `DEPLOY_ON_SERVER.md`
|
|
|
|
---
|
|
|
|
**🎉 DAARION — Unified Gateway Ready!**
|
|
|