feat(node2): wire calendar-service and core automation tools in router

This commit is contained in:
Apple
2026-03-01 01:37:13 -08:00
parent 9a36020316
commit de234112f3
11 changed files with 2226 additions and 378 deletions

View File

@@ -37,8 +37,10 @@ services:
- BACKLOG_BACKEND=auto
- INCIDENT_BACKEND=auto
- AUDIT_BACKEND=auto
- CALENDAR_SERVICE_URL=http://calendar-service:8001
volumes:
- ./services/router/router-config.node2.yml:/app/router-config.yml:ro
- ./tools:/app/tools:ro
- ./logs:/app/logs
extra_hosts:
- "host.docker.internal:host-gateway"
@@ -47,6 +49,7 @@ services:
depends_on:
- dagi-nats
- node-capabilities
- calendar-service
networks:
- dagi-network
- dagi-memory-network
@@ -77,6 +80,62 @@ services:
- dagi-memory-network
restart: unless-stopped
aurora-service:
build:
context: ./services/aurora-service
dockerfile: Dockerfile
container_name: aurora-service-node2
ports:
- "127.0.0.1:9401:9401"
environment:
- AURORA_DATA_DIR=/data/aurora
- AURORA_PUBLIC_BASE_URL=http://127.0.0.1:9401
- AURORA_CORS_ORIGINS=*
- AURORA_MODELS_DIR=/data/aurora/models
- AURORA_FORCE_CPU=false
- AURORA_PREFER_MPS=true
- AURORA_ENABLE_VIDEOTOOLBOX=true
volumes:
- sofiia-data:/data
networks:
- dagi-network
restart: unless-stopped
radicale:
image: tomsquest/docker-radicale:latest
container_name: daarion-radicale-node2
ports:
- "127.0.0.1:5232:5232"
environment:
- RADICALE_HOST=0.0.0.0
- RADICALE_PORT=5232
- RADICALE_LOG_LEVEL=INFO
volumes:
- radicale-data:/data
- radicale-config:/config
networks:
- dagi-network
restart: unless-stopped
calendar-service:
build:
context: ./services/calendar-service
dockerfile: Dockerfile
container_name: calendar-service-node2
ports:
- "127.0.0.1:8001:8001"
environment:
- DATABASE_URL=sqlite:////data/calendar.db
- RADICALE_URL=http://radicale:5232
- PYTHONUNBUFFERED=1
depends_on:
- radicale
volumes:
- sofiia-data:/data
networks:
- dagi-network
restart: unless-stopped
dagi-nats:
image: nats:2.10-alpine
container_name: dagi-nats-node2
@@ -157,11 +216,17 @@ services:
- NODE_DEFAULT_VISION=llava:13b
- NODE_WORKER_MAX_CONCURRENCY=2
- NCS_REPORT_URL=http://node-capabilities:8099
# Capability providers (none = not available on this node)
- STT_PROVIDER=none
- TTS_PROVIDER=none
# Capability providers: delegate STT/TTS to Memory Service (Phase 1)
# Set to mlx_whisper/mlx_kokoro for Phase 2 MLX upgrade
- STT_PROVIDER=memory_service
- TTS_PROVIDER=memory_service
- MEMORY_SERVICE_URL=http://memory-service:8000
- OCR_PROVIDER=vision_prompted
- IMAGE_PROVIDER=none
# Voice HA: dedicated concurrency limits for voice.*.request subjects
- VOICE_MAX_CONCURRENT_TTS=4
- VOICE_MAX_CONCURRENT_LLM=2
- VOICE_MAX_CONCURRENT_STT=2
depends_on:
- dagi-nats
networks:
@@ -187,15 +252,30 @@ services:
- OLLAMA_URL=${OLLAMA_URL:-http://host.docker.internal:11434}
- NOTION_API_KEY=${NOTION_API_KEY:-}
- OPENCODE_URL=${OPENCODE_URL:-}
- AURORA_SERVICE_URL=http://aurora-service:9401
# P1 SECURITY: SSH_PASSWORD removed — use key file instead
# NODES_NODA1_SSH_PASSWORD is NO LONGER passed; sofiia-console reads from key file
- NODES_NODA1_SSH_PRIVATE_KEY=/run/secrets/noda1_ssh_key
- SUPERVISOR_API_KEY=${SUPERVISOR_API_KEY}
- SOFIIA_CONSOLE_API_KEY=${SOFIIA_CONSOLE_API_KEY}
- CORS_ORIGINS=${CORS_ORIGINS:-}
# Voice HA feature flag (default: false = legacy direct path to memory-service)
- VOICE_HA_ENABLED=${VOICE_HA_ENABLED:-false}
- VOICE_HA_ROUTER_URL=${VOICE_HA_ROUTER_URL:-http://router:8000}
# Projects / Documents / Sessions / Dialog Map (SQLite)
- SOFIIA_DATA_DIR=/app/data
- UPLOAD_MAX_IMAGE_MB=${UPLOAD_MAX_IMAGE_MB:-10}
- UPLOAD_MAX_VIDEO_MB=${UPLOAD_MAX_VIDEO_MB:-200}
- UPLOAD_MAX_DOC_MB=${UPLOAD_MAX_DOC_MB:-50}
# Phase 2 feature flags (disabled by default)
- USE_FABRIC_OCR=${USE_FABRIC_OCR:-false}
- USE_EMBEDDINGS=${USE_EMBEDDINGS:-false}
# Supervisor proxy (LangGraph workflows)
- SUPERVISOR_URL=${SUPERVISOR_URL:-http://sofiia-supervisor:8080}
volumes:
- ./config:/app/config
- ./secrets/noda1_id_ed25519:/run/secrets/noda1_ssh_key:ro
- sofiia-data:/app/data
depends_on:
- router
networks:
@@ -210,3 +290,11 @@ networks:
dagi-memory-network:
external: true
name: dagi-memory-network-node2
volumes:
sofiia-data:
driver: local
radicale-data:
driver: local
radicale-config:
driver: local