UNPKG

@codai/cbd

Version:

Codai Better Database - High-Performance Vector Memory System with HPKV-inspired architecture and MCP server

204 lines (191 loc) 4.97 kB
# 🐳 CBD Universal Database - Production Docker Compose version: '3.8' services: # CBD Core Database Service cbd-core: build: context: . dockerfile: Dockerfile container_name: cbd-universal-database restart: unless-stopped ports: - "4180:4180" environment: - NODE_ENV=production - CBD_LOG_LEVEL=info - CBD_CLUSTER_MODE=true - CBD_SECURITY_LEVEL=enterprise volumes: - cbd_data:/app/data - cbd_logs:/app/logs networks: - cbd_network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:4180/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s # CBD Collaboration Service cbd-collaboration: build: context: . dockerfile: Dockerfile container_name: cbd-collaboration-service restart: unless-stopped ports: - "4600:4600" environment: - NODE_ENV=production - SERVICE_TYPE=collaboration volumes: - cbd_collaboration_data:/app/data networks: - cbd_network depends_on: - cbd-core command: ["node", "cbd-collaboration-service.cjs"] # CBD AI Analytics Engine cbd-analytics: build: context: . dockerfile: Dockerfile container_name: cbd-ai-analytics restart: unless-stopped ports: - "4700:4700" environment: - NODE_ENV=production - SERVICE_TYPE=analytics volumes: - cbd_analytics_data:/app/data - cbd_models:/app/models networks: - cbd_network depends_on: - cbd-core command: ["node", "cbd-ai-analytics-engine.cjs"] # CBD GraphQL Gateway cbd-graphql: build: context: . dockerfile: Dockerfile container_name: cbd-graphql-gateway restart: unless-stopped ports: - "4800:4800" environment: - NODE_ENV=production - SERVICE_TYPE=graphql networks: - cbd_network depends_on: - cbd-core command: ["node", "cbd-graphql-gateway.cjs"] # Nginx Load Balancer cbd-nginx: image: nginx:alpine container_name: cbd-load-balancer restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./ssl:/etc/nginx/ssl:ro networks: - cbd_network depends_on: - cbd-core - cbd-collaboration - cbd-analytics - cbd-graphql # Redis for Caching and Session Management cbd-redis: image: redis:7-alpine container_name: cbd-redis restart: unless-stopped ports: - "6379:6379" volumes: - cbd_redis_data:/data networks: - cbd_network command: redis-server --appendonly yes --maxmemory 1gb --maxmemory-policy allkeys-lru # PostgreSQL for Metadata Storage cbd-postgres: image: postgres:15-alpine container_name: cbd-postgres restart: unless-stopped environment: - POSTGRES_DB=cbd_metadata - POSTGRES_USER=cbd_admin - POSTGRES_PASSWORD=${CBD_POSTGRES_PASSWORD:-cbd_secure_pass_2025} volumes: - cbd_postgres_data:/var/lib/postgresql/data - ./sql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro networks: - cbd_network ports: - "5432:5432" # Monitoring - Prometheus prometheus: image: prom/prometheus:latest container_name: cbd-prometheus restart: unless-stopped ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro - prometheus_data:/prometheus networks: - cbd_network command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' # Monitoring - Grafana grafana: image: grafana/grafana:latest container_name: cbd-grafana restart: unless-stopped ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=${CBD_GRAFANA_PASSWORD:-cbd_admin_2025} volumes: - grafana_data:/var/lib/grafana - ./grafana/dashboards:/etc/grafana/provisioning/dashboards:ro - ./grafana/datasources:/etc/grafana/provisioning/datasources:ro networks: - cbd_network depends_on: - prometheus # Networks networks: cbd_network: driver: bridge ipam: config: - subnet: 172.20.0.0/16 # Volumes volumes: cbd_data: driver: local cbd_logs: driver: local cbd_collaboration_data: driver: local cbd_analytics_data: driver: local cbd_models: driver: local cbd_redis_data: driver: local cbd_postgres_data: driver: local prometheus_data: driver: local grafana_data: driver: local