chore(infra): add NODA2 setup files, docker-compose configs and root config
- AGENTS.md: Sofiia Chief AI Architect role definition - SOFIIA_IN_OPENCODE.md, SOFIIA_NODA2_SETUP.md: NODA2 setup documentation - agromatrix_stepan_noda1_APPLY.md, agromatrix_stepan_noda1_prod.patch: AgroMatrix production patch - docker-compose.memory-node2.yml: memory service for NODA2 - docker-compose.node2-sofiia-supervisor.yml: sofiia supervisor for NODA2 - gateway-bot/gateway_boot.py, monitor_prompt.txt, vision_guard.py: gateway extras - models/Modelfile.qwen3.5-35b-a3b: Qwen model definition for NODA3 - opencode.json: OpenCode providers and agents config - scripts/init-sofiia-memory.py, scripts/node2/*, start-memory-node2.sh: NODA2 init scripts - setup_sofiia_node2.sh: NODA2 full setup script Made-with: Cursor
This commit is contained in:
81
docker-compose.node2-sofiia-supervisor.yml
Normal file
81
docker-compose.node2-sofiia-supervisor.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
version: "3.8"
|
||||
|
||||
# Sofiia Supervisor — NODA2 deployment
|
||||
#
|
||||
# Usage:
|
||||
# docker compose -f docker-compose.node2.yml \
|
||||
# -f docker-compose.node2-sofiia-supervisor.yml up -d
|
||||
#
|
||||
# Or standalone (requires router already running on dagi-network-node2):
|
||||
# docker compose -f docker-compose.node2-sofiia-supervisor.yml up -d
|
||||
|
||||
services:
|
||||
|
||||
sofiia-supervisor:
|
||||
build:
|
||||
context: ./services/sofiia-supervisor
|
||||
dockerfile: Dockerfile
|
||||
container_name: sofiia-supervisor
|
||||
image: daarion/sofiia-supervisor:latest
|
||||
ports:
|
||||
- "8084:8080"
|
||||
environment:
|
||||
# Router is the gateway — all tool calls go here
|
||||
- GATEWAY_BASE_URL=http://router:8000
|
||||
# Set this to restrict access to /v1/tools/execute on the router side
|
||||
- SUPERVISOR_API_KEY=${SUPERVISOR_API_KEY:-}
|
||||
# Protect the supervisor HTTP API from outside
|
||||
- SUPERVISOR_INTERNAL_KEY=${SUPERVISOR_INTERNAL_KEY:-}
|
||||
# State backend
|
||||
- SUPERVISOR_STATE_BACKEND=redis
|
||||
- REDIS_URL=redis://sofiia-redis:6379/0
|
||||
- RUN_TTL_SEC=86400
|
||||
# Agent identity
|
||||
- DEFAULT_AGENT_ID=sofiia
|
||||
- DEFAULT_WORKSPACE_ID=${DEFAULT_WORKSPACE_ID:-daarion}
|
||||
- DEFAULT_TIMEZONE=Europe/Kiev
|
||||
# Timeouts
|
||||
- TOOL_CALL_TIMEOUT_SEC=60
|
||||
- TOOL_CALL_MAX_RETRIES=2
|
||||
- JOB_POLL_INTERVAL_SEC=3
|
||||
- JOB_MAX_WAIT_SEC=300
|
||||
depends_on:
|
||||
- sofiia-redis
|
||||
networks:
|
||||
- dagi-network
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-sf", "http://localhost:8080/healthz"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 20s
|
||||
volumes:
|
||||
- ./logs:/app/logs
|
||||
|
||||
sofiia-redis:
|
||||
image: redis:7.4-alpine
|
||||
container_name: sofiia-redis
|
||||
command: redis-server --save 60 1 --loglevel warning --maxmemory 256mb --maxmemory-policy allkeys-lru
|
||||
ports:
|
||||
- "6380:6379" # Expose on 6380 to avoid conflict with existing Redis
|
||||
volumes:
|
||||
- sofiia-redis-data:/data
|
||||
networks:
|
||||
- dagi-network
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
networks:
|
||||
# Reuse the existing NODA2 network so supervisor can reach router
|
||||
dagi-network:
|
||||
external: true
|
||||
name: dagi-network-node2
|
||||
|
||||
volumes:
|
||||
sofiia-redis-data:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user