UNPKG

claude-self-reflect

Version:

Give Claude perfect memory of all your conversations - Installation wizard for Python MCP server

110 lines (103 loc) 3.24 kB
volumes: qdrant_data: services: # Fix permissions for config directory init-permissions: image: alpine command: chown -R 1000:1000 /config volumes: - ${CONFIG_PATH:-~/.claude-self-reflect/config}:/config profiles: ["watch", "mcp", "import"] # Qdrant vector database - the heart of semantic search qdrant: image: qdrant/qdrant:v1.15.1 container_name: claude-reflection-qdrant ports: - "${QDRANT_PORT:-6333}:6333" volumes: - qdrant_data:/qdrant/storage environment: - QDRANT__LOG_LEVEL=INFO - QDRANT__SERVICE__HTTP_PORT=6333 restart: unless-stopped mem_limit: ${QDRANT_MEMORY:-2g} memswap_limit: ${QDRANT_MEMORY:-2g} # One-time import service (runs once then exits) importer: build: context: . dockerfile: Dockerfile.importer container_name: claude-reflection-importer depends_on: - init-permissions - qdrant volumes: - ${CLAUDE_LOGS_PATH:-~/.claude/projects}:/logs:ro - ${CONFIG_PATH:-~/.claude-self-reflect/config}:/config - ./scripts:/scripts:ro environment: - QDRANT_URL=http://qdrant:6333 - STATE_FILE=/config/imported-files.json - OPENAI_API_KEY=${OPENAI_API_KEY:-} - VOYAGE_API_KEY=${VOYAGE_API_KEY:-} - VOYAGE_KEY=${VOYAGE_KEY:-} - PREFER_LOCAL_EMBEDDINGS=${PREFER_LOCAL_EMBEDDINGS:-false} - EMBEDDING_MODEL=${EMBEDDING_MODEL:-voyage-3} - BATCH_SIZE=${BATCH_SIZE:-50} - CHUNK_SIZE=${CHUNK_SIZE:-10} - PYTHONUNBUFFERED=1 restart: "no" profiles: ["import"] command: python /scripts/import-conversations-unified.py # Continuous watcher service (optional) watcher: build: context: . dockerfile: Dockerfile.watcher container_name: claude-reflection-watcher depends_on: - init-permissions - qdrant volumes: - ${CLAUDE_LOGS_PATH:-~/.claude/projects}:/logs:ro - ${CONFIG_PATH:-~/.claude-self-reflect/config}:/config - ./scripts:/scripts:ro - /tmp:/tmp environment: - QDRANT_URL=http://qdrant:6333 - STATE_FILE=/config/imported-files.json - OPENAI_API_KEY=${OPENAI_API_KEY:-} - VOYAGE_API_KEY=${VOYAGE_API_KEY:-} - VOYAGE_KEY=${VOYAGE_KEY:-} - PREFER_LOCAL_EMBEDDINGS=${PREFER_LOCAL_EMBEDDINGS:-false} - EMBEDDING_MODEL=${EMBEDDING_MODEL:-voyage-3} - WATCH_INTERVAL=${WATCH_INTERVAL:-60} - PYTHONUNBUFFERED=1 restart: unless-stopped profiles: ["watch"] mem_limit: 1g memswap_limit: 1g # MCP server for Claude integration mcp-server: build: context: . dockerfile: Dockerfile.mcp-server container_name: claude-reflection-mcp depends_on: - qdrant environment: - QDRANT_URL=http://qdrant:6333 - VOYAGE_KEY=${VOYAGE_KEY:-} - PREFER_LOCAL_EMBEDDINGS=${PREFER_LOCAL_EMBEDDINGS:-true} - ENABLE_MEMORY_DECAY=${ENABLE_MEMORY_DECAY:-true} - DECAY_WEIGHT=${DECAY_WEIGHT:-0.3} - DECAY_SCALE_DAYS=${DECAY_SCALE_DAYS:-90} - PYTHONUNBUFFERED=1 restart: unless-stopped stdin_open: true tty: true profiles: ["mcp"] networks: default: name: claude-reflection-network external: false