Skip to main content

Docker install

The official image ships from GitHub Container Registry with a pre-baked embedding model, Sigstore keyless signatures, SLSA provenance, and a CycloneDX SBOM. No first-run download. No account required.

Pull and run

Open http://localhost:8100 once the container starts. The board is ready.

Why MCP_HOST=0.0.0.0 is required

Without MCP_HOST=0.0.0.0, the MCP server binds to 127.0.0.1 inside the container — a loopback address unreachable from your host even with -p 8101:8101 published. Your agent will time out trying to connect.Always set MCP_HOST=0.0.0.0 when running in Docker. The published port binding (127.0.0.1:8101:8101) ensures the MCP port is visible only to your machine, not your LAN — so setting 0.0.0.0 inside the container is safe.
The same applies to HOST=0.0.0.0 for the web board and API on port 8100.

Connect your agent

After the container starts, generate .mcp.json and copy it to your project directory:
Add .mcp.json to .gitignore — it contains a scoped agent API key. To generate config for one agent only (Claude Code, for example):
Get the API key directly if you need it for manual MCP client config:

Environment variables


Data persistence

The container writes all state to /data:
Use a named volume (survives container replacement):
Or a host path (easier to inspect and back up):
Do not mount over /opt/hf-cache. The embedding model is pre-baked into the image and the container starts offline-capable. Mounting over it forces a re-download.

Docker Compose

Two compose files ship with the okto-pulse repo. docker-compose.prod.yml installs a pinned version from PyPI. Clone only the okto-pulse repo — no sibling repo needed.
Export .mcp.json after first boot:

Build from source

docker-compose.yml builds wheels from local source. Use this when modifying okto-pulse-core or okto-pulse. Both repos must be cloned as siblings:
Export .mcp.json:

LAN access

Both compose files bind to 127.0.0.1 by default — the container is reachable from your machine only. To allow LAN access, change the ports mapping in the compose file:
Put the host behind a reverse proxy with authentication before exposing to a LAN. The MCP API key is the only auth layer Pulse provides.

Updating

With compose:

Verify


Next steps

Connect your agent

Wire Claude Code, Cursor, Cline, or Windsurf to the running MCP server.

First workflow

Ideation → spec → cards in a single session.
Last modified on May 7, 2026