Docker¶
run engram as a container with persistent data.
quick start¶
web dashboard at http://localhost:8420.
docker compose¶
services:
engram:
build: .
ports:
- "8420:8420"
volumes:
- engram-data:/data
- ./config.yaml:/app/config.yaml:ro
environment:
- ENGRAM_DB_PATH=/data/memory.db
# - VOYAGE_API_KEY=your-key
# - OPENAI_API_KEY=your-key
restart: unless-stopped
volumes:
engram-data:
configuration¶
mount your config.yaml to /app/config.yaml. set API keys via environment variables.
the database lives in the engram-data volume at /data/memory.db.
auth¶
lock down the web dashboard:
access with ?token=your-secret-token in the URL or Authorization: Bearer your-secret-token header.
MCP over SSE¶
for remote MCP access (not stdio):
services:
engram-mcp:
build: .
ports:
- "8421:8421"
command: ["python", "-m", "engram", "serve", "--mcp-sse", "--port", "8421"]
volumes:
- engram-data:/data
environment:
- ENGRAM_DB_PATH=/data/memory.db
endpoints:
POST /mcp— JSON-RPCGET /sse— SSE streamGET /health— health check
building the image¶
the Dockerfile uses python:3.12-slim, installs all deps including API backends, and exposes port 8420.