Skip to main content

Docker install

The published Docker image bundles the runtime, all dependencies, and the local embedding model (BAAI/bge-small-en-v1.5, baked at build time so the first serve does not download). The image is published to GitHub Container Registry at ghcr.io/arun-kc/schemabrain for linux/amd64 and linux/arm64. The activation wizard is still the recommended path for most users — start there if you haven’t yet. This page is for operators who prefer running SchemaBrain as a container.
The published image is headless: it serves the MCP firewall (index / serve) and does not bundle the web dashboard. For the dashboard, install natively with pip install schemabrain[ui] and run schemabrain dashboard — it binds to localhost only and reads the same store.

1. Quick index against a Postgres source

2. Claude Desktop config (containerised serve)

The serve subcommand needs -i (interactive stdio) so Claude Desktop can talk to it. Drop the following into your ~/Library/Application Support/Claude/claude_desktop_config.json (macOS path; the file lives next to other Claude config on Linux / Windows):
Notes:
  • Replace /Users/YOU/.schemabrain with your real home directory. Claude Desktop does not expand ~ inside config arguments.
  • The env block carries the password into the container as a Docker-side environment variable. The URL never lands in argv on the host or in argv inside the container; --url-env DATABASE_URL reads it from the in-container env. This is the same discipline as the non-Docker setup.
  • The mounted store volume (-v .../.schemabrain:/data) persists across container restarts. Without it, every serve rebuilds the in-memory retriever from zero and you lose mine-queries history.
  • The image runs as uid 1000. If you indexed natively before switching to Docker, run chown -R 1000:1000 ~/.schemabrain once so the container can read the store.

3. Tags

For production-style pinning, use a specific patch (:0.6.0) rather than :latest.

What’s next

  • Wire your MCP host — per-host setup pages (~60 seconds each).
  • Manual flow — for explicit control over each step, plus logs, troubleshooting, and an SQL-validation ladder.
  • First 5 queries — exercises each load-bearing firewall property.