version: "3.9" # ───────────────────────────────────────────────────────────────────────────── # Default stack (always-on): # docker-compose up --build # • bot — Mikachu Telegram bot # • mongo — MongoDB for history / reminders / tasks / built-in memory # # Full stack with MemoryOS (Qdrant + Neo4j + MemoryOS microservice): # docker-compose --profile memoryos up --build # # Then set in .env: # MEMORYOS_URL=http://memoryos:8000 # ───────────────────────────────────────────────────────────────────────────── services: # ── Mikachu bot ───────────────────────────────────────────────────────────── bot: build: . restart: unless-stopped env_file: .env depends_on: - mongo environment: MONGO_URI: mongodb://mongo:27017 # override to point at compose mongo networks: - mikachu # ── MongoDB (history, reminders, tasks, built-in memory) ──────────────────── mongo: image: mongo:7 restart: unless-stopped volumes: - mongo_data:/data/db networks: - mikachu # ──────────────────────────────────────────────────────────────────────────── # MemoryOS stack — start with --profile memoryos # ──────────────────────────────────────────────────────────────────────────── # Qdrant — vector store for semantic memory search qdrant: image: qdrant/qdrant:latest profiles: [memoryos] restart: unless-stopped volumes: - qdrant_data:/qdrant/storage ports: - "6333:6333" # REST - "6334:6334" # gRPC networks: - mikachu # Neo4j — graph store for episodic / relational memory neo4j: image: neo4j:5 profiles: [memoryos] restart: unless-stopped environment: NEO4J_AUTH: neo4j/memoryos_password # change in production volumes: - neo4j_data:/data ports: - "7474:7474" # browser - "7687:7687" # bolt networks: - mikachu # MemoryOS microservice # Replace the image tag with your actual MemoryOS build. memoryos: image: memoryos/memoryos:latest # ← update to your image profiles: [memoryos] restart: unless-stopped ports: - "8000:8000" depends_on: - qdrant - neo4j environment: QDRANT_URL: http://qdrant:6333 NEO4J_URI: bolt://neo4j:7687 NEO4J_USER: neo4j NEO4J_PASS: memoryos_password # MEMORYOS_API_KEYS: mk_key1:user1,mk_key2:user2 # optional in prod networks: - mikachu networks: mikachu: driver: bridge volumes: mongo_data: qdrant_data: neo4j_data: