# Matrix Bridge DAGI — Phase M1 # Include into the main NODA1 stack or run standalone: # docker compose -f docker-compose.node1.yml -f docker-compose.matrix-bridge-node1.yml up -d matrix-bridge-dagi version: "3.9" services: matrix-bridge-dagi: build: context: ./services/matrix-bridge-dagi args: BUILD_SHA: "${BUILD_SHA:-dev}" BUILD_TIME: "${BUILD_TIME:-local}" container_name: matrix-bridge-dagi-node1 ports: - "127.0.0.1:7030:7030" # internal only — not exposed publicly environment: - PORT=7030 - ENV=prod - NODE_ID=NODA1 - BUILD_SHA=${BUILD_SHA:-dev} - BUILD_TIME=${BUILD_TIME:-local} # ── Matrix homeserver ──────────────────────────────────────────────── # Required: set in .env on NODA1 before first launch - MATRIX_HOMESERVER_URL=${MATRIX_HOMESERVER_URL:-} - MATRIX_ACCESS_TOKEN=${MATRIX_ACCESS_TOKEN:-} - MATRIX_USER_ID=${MATRIX_USER_ID:-} # ── Room → Agent mapping (M1: single room for Sofiia) ──────────────── # Create the room manually, then paste the room_id here - SOFIIA_ROOM_ID=${SOFIIA_ROOM_ID:-} # ── DAGI backend ───────────────────────────────────────────────────── - DAGI_GATEWAY_URL=http://dagi-gateway-node1:9300 - DEFAULT_NODE_ID=NODA1 # ── Sofiia Console (audit write) ───────────────────────────────────── - SOFIIA_CONSOLE_URL=http://dagi-sofiia-console-node1:8002 - SOFIIA_INTERNAL_TOKEN=${SOFIIA_INTERNAL_TOKEN:-} # ── Policy ─────────────────────────────────────────────────────────── - BRIDGE_ALLOWED_AGENTS=sofiia - BRIDGE_ROOM_MAP=${BRIDGE_ROOM_MAP:-} - RATE_LIMIT_ROOM_RPM=20 - RATE_LIMIT_SENDER_RPM=10 healthcheck: test: - "CMD" - "python3" - "-c" - "import urllib.request; urllib.request.urlopen('http://localhost:7030/health', timeout=5)" interval: 30s timeout: 10s retries: 3 start_period: 15s networks: - dagi-network restart: unless-stopped networks: dagi-network: external: true