# aclarai Docker Compose Stack # no version: this is officially deprecated now services: postgres: # Vector DB backend for sentence embeddings and similarity checks image: ankane/pgvector restart: unless-stopped env_file: - .env environment: POSTGRES_DB: aclarai volumes: - pg_data:/var/lib/postgresql/data ports: - "5432:5432" networks: - aclarai_net profiles: - postgres - default neo4j: # Knowledge graph for claims, summaries, and concepts image: neo4j:5 restart: unless-stopped environment: NEO4J_AUTH: ${NEO4J_USER}/${NEO4J_PASSWORD} NEO4J_PLUGINS: '["graph-data-science"]' volumes: - neo4j_data:/data ports: - "7474:7474" - "7687:7687" networks: - aclarai_net profiles: - neo4j - default rabbitmq: # Message broker for inter-service communication (e.g., vault-watcher -> aclarai-core) image: rabbitmq:3-management # Includes management UI on port 15672 restart: unless-stopped environment: RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER} RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD} ports: - "5672:5672" # Standard AMQP port - "15672:15672" # Management UI networks: - aclarai_net profiles: - rabbitmq - default healthcheck: # Basic health check test: ["CMD", "rabbitmq-diagnostics", "ping"] interval: 30s timeout: 10s retries: 5 aclarai-core: # Main processing pipeline: claim extraction, summarization, linking build: context: . # Set build context to the project root dockerfile: ./services/aclarai-core/Dockerfile depends_on: postgres: condition: service_started neo4j: condition: service_started rabbitmq: condition: service_healthy volumes: - ${VAULT_PATH:-./vault}:/vault - ./settings:/settings env_file: - .env networks: - aclarai_net profiles: - aclarai-core - default vault-watcher: # Watches vault for Markdown edits and emits dirty blocks build: context: . dockerfile: ./services/vault-watcher/Dockerfile depends_on: rabbitmq: condition: service_healthy aclarai-core: condition: service_started volumes: - ${VAULT_PATH:-./vault}:/vault - ./settings:/settings env_file: - .env networks: - aclarai_net profiles: - vault-watcher - default scheduler: # Runs periodic jobs: concept hygiene, vault sync, reprocessing build: context: . dockerfile: ./services/scheduler/Dockerfile depends_on: - aclarai-core volumes: - ${VAULT_PATH:-./vault}:/vault - ./settings:/settings env_file: - .env networks: - aclarai_net profiles: - scheduler - default aclarai-ui: # Web interface for aclarai build: context: . dockerfile: ./services/aclarai-ui/Dockerfile depends_on: - aclarai-core volumes: - ${VAULT_PATH:-./vault}:/vault - ./settings:/settings env_file: - .env ports: - "7860:7860" networks: - aclarai_net profiles: - aclarai-ui - default volumes: pg_data: neo4j_data: networks: aclarai_net: