networks: lyra_net: driver: bridge volumes: postgres_data: driver: local neo4j_data: driver: local services: # # ============================================================ # # NeoMem: Postgres # # ============================================================ # neomem-postgres: # image: ankane/pgvector:v0.5.1 # container_name: neomem-postgres # restart: unless-stopped # environment: # POSTGRES_USER: neomem # POSTGRES_PASSWORD: neomempass # POSTGRES_DB: neomem # volumes: # - ./volumes/postgres_data:/var/lib/postgresql/data # ports: # - "5432:5432" # healthcheck: # test: ["CMD-SHELL", "pg_isready -U neomem -d neomem || exit 1"] # interval: 5s # timeout: 5s # retries: 10 # networks: # - lyra_net # # ============================================================ # # NeoMem: Neo4j Graph # # ============================================================ # neomem-neo4j: # image: neo4j:5 # container_name: neomem-neo4j # restart: unless-stopped # environment: # NEO4J_AUTH: "neo4j/neomemgraph" # NEO4JLABS_PLUGINS: '["graph-data-science"]' # volumes: # - ./volumes/neo4j_data:/data # ports: # - "7474:7474" # - "7687:7687" # healthcheck: # test: ["CMD-SHELL", "cypher-shell -u neo4j -p neomemgraph 'RETURN 1' || exit 1"] # interval: 10s # timeout: 10s # retries: 10 # networks: # - lyra_net # ============================================================ # NeoMem API # ============================================================ # neomem-api: # build: # context: ./neomem # image: lyra-neomem:latest # container_name: neomem-api # restart: unless-stopped # env_file: # - ./neomem/.env # - ./.env # volumes: # - ./neomem_history:/app/history # ports: # - "7077:7077" # depends_on: # neomem-postgres: # condition: service_healthy # neomem-neo4j: # condition: service_healthy # networks: # - lyra_net # ============================================================ # Relay (host mode) # ============================================================ relay: build: context: ./core/relay container_name: relay restart: unless-stopped env_file: - ./.env volumes: - ./core/relay/sessions:/app/sessions ports: - "7078:7078" networks: - lyra_net # ============================================================ # UI Server # ============================================================ lyra-ui: image: nginx:alpine container_name: lyra-ui restart: unless-stopped ports: - "8081:80" volumes: - ./core/ui:/usr/share/nginx/html:ro networks: - lyra_net # ============================================================ # Cortex # ============================================================ cortex: build: context: ./cortex container_name: cortex restart: unless-stopped env_file: - ./cortex/.env - ./.env volumes: - ./cortex:/app ports: - "7081:7081" networks: - lyra_net # ============================================================ # Intake # ============================================================ # intake: # build: # context: ./intake # container_name: intake # restart: unless-stopped # env_file: # - ./intake/.env # - ./.env # ports: # - "7080:7080" # volumes: # - ./intake:/app # - ./intake-logs:/app/logs # depends_on: # - cortex # networks: # - lyra_net # ============================================================ # RAG Service # ============================================================ # rag: # build: # context: ./rag # container_name: rag # restart: unless-stopped # environment: # NEOMEM_URL: http://neomem-api:7077 # ports: # - "7090:7090" # networks: # - lyra_net