Files
microdao-daarion/docs/DEPLOYMENT_OVERVIEW.md
2026-02-16 03:44:58 -08:00

331 lines
9.1 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.
```text
┌─────────────────┐
│ 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](http://localhost)
- **API:** [http://localhost/api/](http://localhost/api/)
- **Health:** [http://localhost/health](http://localhost/health)
### 4. Stop Services
```bash
./scripts/stop-all.sh
```
---
## 📁 Project Structure
```text
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](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!**