# 织忆 MemoryWeave — Docker Compose 一键部署 # 用法: docker compose up -d services: # ── 核心服务 ────────────────────────────────────── zhiyid: image: zhiyid:latest container_name: zhiyid restart: unless-stopped ports: - "7821:7821" environment: PORT: 7821 STORAGE_BACKEND: lancedb SQLITE_PATH: /var/lib/memoryweave/memoryweave.db GRAPH_PATH: /var/lib/memoryweave/graph.db LANCEDB_SOCKET: /tmp/zhiyi-ipc.sock API_KEY: ${API_KEY:-zhiyi-dev-key-2026} VLLM_ENDPOINT: ${VLLM_ENDPOINT:-http://bge-m3:8000/v1/embeddings} RERANK_ENDPOINT: ${RERANK_ENDPOINT:-} LLM_ENDPOINT: ${LLM_ENDPOINT:-} LLM_MODEL: ${LLM_MODEL:-} LLM_API_KEY: ${LLM_API_KEY:-} MOLIFANG_API_KEY: ${MOLIFANG_API_KEY:-} STATIC_DIR: /app/static ZHIYI_WEB_UI_ROOT: /app/web-ui/index.html volumes: - zhiyi-data:/var/lib/memoryweave - zhiyi-logs:/home/appuser/.logs - ./web-ui:/app/web-ui:ro - ./static:/app/static:ro healthcheck: test: ["CMD", "curl", "-sf", "http://localhost:7821/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s networks: - zhiyi-net # ── Redis(可选,事件流用)────────────────────────── redis: image: redis:7-alpine container_name: zhiyi-redis restart: unless-stopped command: redis-server --appendonly yes --maxmemory 256mb volumes: - zhiyi-redis:/data networks: - zhiyi-net healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 5s retries: 3 # ── BGE-M3 Embedding 模型(可选)─────────────────── # 如已有外部 embedding 服务,可注释此节 bge-m3: image: ghcr.io/ggerganov/llama.cpp:latest container_name: zhiyi-bge-m3 restart: unless-stopped entrypoint: [] command: > python3 -m http.server 8000 --directory /models # 如需真正加载 BGE-M3 模型,取消注释下面的 volumes # 并将 bge-m3 模型文件放到 ./models/bge-m3/onnx/ # volumes: # - ./models:/models:ro ports: - "8000:8000" networks: - zhiyi-net healthcheck: test: ["CMD", "curl", "-sf", "http://localhost:8000/v1/models"] interval: 60s timeout: 10s retries: 3 start_period: 30s deploy: resources: limits: memory: 4G networks: zhiyi-net: driver: bridge volumes: zhiyi-data: driver: local zhiyi-logs: driver: local zhiyi-redis: driver: local