services:
  router:
    container_name: dagi-staging-router
    ports: []
    networks:
    - dagi-staging-network
    env_file:
    - ./.env.staging
    labels: &id001
      com.daarion.env: staging
  gateway:
    container_name: dagi-staging-gateway
    ports: []
    networks:
    - dagi-staging-network
    env_file:
    - ./.env.staging
    labels: *id001
  swapper-service:
    container_name: dagi-staging-swapper
    ports: []
    networks:
    - dagi-staging-network
    volumes:
    - ./services/swapper-service/config/swapper_config_node1.yaml:/app/config/swapper_config.yaml:ro
    - ./logs:/app/logs
    - swapper-hf-cache-staging:/root/.cache/huggingface
    env_file:
    - ./.env.staging
    labels: *id001
  crawl4ai:
    container_name: dagi-staging-crawl4ai
    ports: []
    networks:
    - dagi-staging-network
    env_file:
    - ./.env.staging
    labels: *id001
  vision-encoder:
    container_name: dagi-staging-vision-encoder
    ports: []
    networks:
    - dagi-staging-network
    volumes:
    - ./logs:/app/logs
    - vision-model-cache-staging:/root/.cache/clip
    env_file:
    - ./.env.staging
    labels: *id001
  crewai-service:
    container_name: dagi-staging-crewai
    networks:
    - dagi-staging-network
    env_file:
    - ./.env.staging
    labels: *id001
  crewai-worker:
    container_name: dagi-staging-crewai-worker
    ports: []
    networks:
    - dagi-staging-network
    env_file:
    - ./.env.staging
    labels: *id001
  memory-service:
    container_name: dagi-staging-memory
    expose:
    - '8000'
    networks:
    - dagi-staging-network
    env_file:
    - ./.env.staging
    labels: *id001
  qdrant:
    container_name: dagi-staging-qdrant
    networks:
      dagi-staging-network:
        aliases:
        - qdrant
        - dagi-qdrant-node1
    volumes:
    - qdrant-data-staging:/qdrant/storage
    labels: *id001
  neo4j:
    container_name: dagi-staging-neo4j
    networks:
      dagi-staging-network:
        aliases:
        - neo4j
        - dagi-neo4j-node1
    volumes:
    - neo4j-data-staging:/data
    - neo4j-logs-staging:/logs
    labels: *id001
  redis:
    container_name: dagi-staging-redis
    networks:
      dagi-staging-network:
        aliases:
        - redis
        - dagi-redis-node1
    volumes:
    - redis-data-staging:/data
    labels: *id001
  dagi-postgres:
    image: postgres:15-alpine
    container_name: dagi-staging-postgres
    environment:
      POSTGRES_DB: daarion_main
      POSTGRES_USER: daarion
      POSTGRES_PASSWORD: DaarionDB2026!
    volumes:
    - postgres-data-staging:/var/lib/postgresql/data
    networks:
      dagi-staging-network:
        aliases:
        - dagi-postgres
        - postgres
    labels: *id001
  nats:
    image: nats:latest
    container_name: dagi-staging-nats
    command:
    - -c
    - /etc/nats/nats.conf
    volumes:
    - ./nats/nats.conf:/etc/nats/nats.conf:ro
    - nats-data-staging:/data
    networks:
    - dagi-staging-network
    labels: *id001
  control-plane:
    image: control-plane:latest
    container_name: dagi-staging-control-plane
    environment:
      JWT_SECRET: ${JWT_SECRET}
      SERVICE_ID: control-plane
      SERVICE_ROLE: controlplane
      SERVICE_AUD: microdao-internal
      SERVICE_ISS: microdao
    env_file:
    - ./.env.staging
    networks:
    - dagi-staging-network
    labels: *id001
volumes:
  qdrant-data-staging: null
  neo4j-data-staging: null
  neo4j-logs-staging: null
  redis-data-staging: null
  postgres-data-staging: null
  nats-data-staging: null
  vision-model-cache-staging: null
  swapper-hf-cache-staging: null
networks:
  dagi-staging-network: null
