Files
chorus-services/docker-compose.yml
tony b45c9c537e feat: correct SLURP/HCFS architecture and complete Docker integration
Major architectural correction based on user clarification:

ARCHITECTURE CHANGES:
- SLURP: Context curator service that processes Hypercore logs, filters by role/triggers, serves via SQL
- HCFS: FUSE filesystem overlay embedded in sandbox Docker images, not a separate service
- Agents access context transparently through filesystem operations via HCFS → SLURP

DOCKER CONFIGURATION:
- Renamed slurp-api → slurp-curator throughout all configurations
- Created proper Dockerfiles for SLURP curator and COOEE RL tuner services
- Updated environment variables to reflect curator service role
- Fixed missing slurp_data volume in docker-compose.yml

UPDATED FILES:
- README.md: Corrected SLURP description from "Context Management" to "Context Curator Service"
- docker-compose.yml: Service rename, environment updates, added missing volume
- docker-compose.swarm.yml: Production deployment with correct service names
- build-and-push.sh: Updated to build slurp-curator service
- chorus.sh: Updated service references and endpoints
- init-db.sql: Database initialization for curator service
- modules/slurp/Dockerfile: New curator service container
- modules/slurp/Dockerfile.rl-tuner: New COOEE RL tuner container

VALIDATION:
- WHOOSH submodule validated: proper Dockerfiles and dependencies present
- BZZZ submodule integrated: build issues identified in original repo (requires separate fix)
- All Docker configurations updated to reflect correct architecture

MEMORY UPDATES:
- project_overview: Updated with correct SLURP/HCFS roles and current project status
- Removed references to deprecated HMMM component

This commit ensures all configuration reflects the correct architectural understanding
where SLURP curates context from logs and HCFS provides transparent filesystem access
to that curated context within agent sandbox environments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 10:01:34 +10:00

159 lines
4.2 KiB
YAML

version: '3.8'
services:
# WHOOSH - Orchestration Platform
whoosh-backend:
image: registry.home.deepblack.cloud/tony/chorus-whoosh-backend:latest
container_name: chorus_whoosh_backend
ports:
- "8087:8000"
environment:
- DATABASE_URL=postgresql://chorus:choruspass@postgres:5432/chorus_whoosh
- REDIS_URL=redis://redis:6379
- CORS_ORIGINS=http://localhost:3001,https://whoosh.home.deepblack.cloud
- ENVIRONMENT=development
depends_on:
- postgres
- redis
networks:
- chorus_network
volumes:
- ./modules/whoosh/backend:/app
- ./modules/whoosh/config:/app/config
whoosh-frontend:
image: registry.home.deepblack.cloud/tony/chorus-whoosh-frontend:latest
container_name: chorus_whoosh_frontend
ports:
- "3001:3000"
environment:
- REACT_APP_API_URL=http://localhost:8087
- REACT_APP_WS_URL=ws://localhost:8087
depends_on:
- whoosh-backend
networks:
- chorus_network
volumes:
- ./modules/whoosh/frontend:/app
- /app/node_modules
# BZZZ - P2P Agent Coordination
bzzz-coordinator:
image: registry.home.deepblack.cloud/tony/chorus-bzzz-coordinator:latest
container_name: chorus_bzzz_coordinator
ports:
- "4001:4001" # libp2p port
- "8080:8080" # HTTP API port
environment:
- BZZZ_NODE_ENV=development
- BZZZ_LOG_LEVEL=info
networks:
- chorus_network
- host # Needed for P2P discovery
volumes:
- ./modules/bzzz/config:/app/config
- ./modules/bzzz/data:/app/data
# SLURP - Context Curator Service
slurp-curator:
image: registry.home.deepblack.cloud/tony/chorus-slurp-curator:latest
container_name: chorus_slurp_curator
ports:
- "8088:8000"
environment:
- SLURP_DATABASE_URL=postgresql://chorus:choruspass@postgres:5432/chorus_slurp
- SLURP_LOG_LEVEL=info
- SLURP_AUTH_ENABLED=true
- HYPERCORE_LOG_URL=http://hypercore-log:8000
- BZZZ_COORDINATOR_URL=http://bzzz-coordinator:8080
networks:
- chorus_network
volumes:
- slurp_data:/app/data
- ./modules/slurp/config:/app/config
depends_on:
- postgres
- bzzz-coordinator
# COOEE - RL Feedback System (part of SLURP)
slurp-rl-tuner:
image: registry.home.deepblack.cloud/tony/chorus-slurp-rl-tuner:latest
container_name: chorus_slurp_rl_tuner
ports:
- "8089:8000"
environment:
- RL_TUNER_DATABASE_URL=postgresql://chorus:choruspass@postgres:5432/chorus_rl_tuner
- SLURP_CURATOR_URL=http://slurp-curator:8000
- BZZZ_API_URL=http://bzzz-coordinator:8080
depends_on:
- postgres
- slurp-curator
- bzzz-coordinator
networks:
- chorus_network
# Shared Infrastructure
postgres:
image: postgres:15
container_name: chorus_postgres
environment:
- POSTGRES_DB=chorus
- POSTGRES_USER=chorus
- POSTGRES_PASSWORD=choruspass
ports:
- "5433:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
networks:
- chorus_network
redis:
image: redis:7-alpine
container_name: chorus_redis
ports:
- "6380:6379"
volumes:
- redis_data:/data
networks:
- chorus_network
# Monitoring Stack
prometheus:
image: prom/prometheus:latest
container_name: chorus_prometheus
ports:
- "9092:9090"
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
networks:
- chorus_network
grafana:
image: grafana/grafana:latest
container_name: chorus_grafana
ports:
- "3002:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=chorusadmin
volumes:
- grafana_data:/var/lib/grafana
- ./monitoring/grafana/dashboards:/etc/grafana/provisioning/dashboards
- ./monitoring/grafana/datasources:/etc/grafana/provisioning/datasources
networks:
- chorus_network
volumes:
postgres_data:
redis_data:
prometheus_data:
grafana_data:
slurp_data:
networks:
chorus_network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16