mempalace Docker & Self-Hosted Deployment

GitHub

The best-benchmarked open-source AI memory system. And it's free.

58,330 stars Python Python 1 file ยท ~3,571 tokens #ai#chromadb#llm#mcp#memory#python
RAW Compose
1. Pull Image (DOCKERHUB) docker pull library/mempalace
2. Docker Run (1-Click Launch) docker run -d --name mempalace --restart always mempalace:local
3. Podman Run podman run -d --name mempalace --restart always mempalace:local
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/library/mempalace:local
5. ORAS Pull (OCI Artifact) oras pull mempalace:local
6. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
# MemPalace via Docker Compose.
#
# The MCP server speaks JSON-RPC over stdio, so the `mcp` service is meant to
# be driven interactively (`docker compose run`), not left running detached:
#
#   docker compose build
#   docker compose run --rm mcp                       # MCP server over stdio
#   docker compose run --rm mcp cli search "GraphQL"  # one-off CLI command
#
# The named volume `mempalace-data` is mounted at /data and holds the palace,
# config, and the cached embedding model across runs.

services:
  mcp:
    build:
      context: .
      dockerfile: Dockerfile
    image: mempalace:local
    # stdio transport: keep STDIN open and allocate no TTY (raw JSON-RPC).
    stdin_open: true
    tty: false
    volumes:
      - mempalace-data:/data
    # Everything defaults correctly from HOME=/data (palace ->
    # /data/.mempalace/palace, config -> /data/.mempalace, model cache ->
    # /data/.cache), so no environment block is needed. Uncomment the key
    # *together with* an entry under it for non-default locations โ€” a bare
    # `environment:` with only comments beneath parses as null, and Compose
    # rejects the whole file with "services.mcp.environment must be a mapping".
    # environment:
    #   MEMPALACE_EMBEDDING_MODEL: embeddinggemma   # multilingual (default: minilm)
    #   MEMPALACE_PALACE_PATH: /data/custom/palace

volumes:
  mempalace-data: