Files
project-lyra/docker-compose.yml
2025-11-26 14:20:47 -05:00

152 lines
3.7 KiB
YAML

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
# ============================================================
# 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