Claude Transcripts docs GitHub
Work in progressUnder active development — not tested as ready for use. Breaking changes land without notice, stored data may need to be discarded between revisions, and there is no auth or security model. These docs describe the intended design as much as the current state.

Containers & images

How the project is packaged. Two themes: the single combined application image (what you deploy) and a planned set of base images we maintain and build everything else from.

The combined application image

One container serves the whole front door — webapi + the built webui SPA + Swagger + the static HTML docs (rendered from docs/*.md by build-docs, served at /docs) — under one origin (ADR 0002, routes.md). It also bundles the CLI binary, which the webui offers as a download link (cli.md).

Deployment topologies

The app container needs only to know where its backends are:

Dev stack vs deployment stack

There is one deploy/ Docker Compose definition, used two ways:

So the only difference between dev and deploy is where the app runs — on the host (dev) or as a container in the stack (deploy); the backing services are the same Compose services either way.

Build & release

Components are built separately, then combined into the deployment image, and versioned together (lockstep semver) — ADR 0023:

  1. Build each component independently, in parallel Docker stages: webui SPA dist/, the static docs (build-docs), and (planned) the CLI binary.
  2. Release those artifacts.
  3. Combine them into the single app image (serves /api, /app, Swagger, /docs, and the bundled CLI download).

Driven by scripts + CI (dev-automation.md).

Mirrored backing images

All third-party backing-service images (CouchDB, Garage, Meilisearch + admin UIs) are mirrored into the GitHub Container Registry (GHCR) and referenced from there, pinned — ADR 0024. The bundled stack uses the mirrored images by default so the whole system is reproducible from a registry we control.

Base images (planned)

Status: plan / future scope. We intend to maintain a small family of base images and build the rest from them, so versions are pinned and reproducible.

ImagePurpose
Bun runtimePinned Bun + toolchain; base for the app image and CLI builds.
Claude Code runtimeBun base with Claude Code pre-installed — for running/automating agent sessions in-container.
CLI utilsA container full of the operational CLIs (tools.md, cli.md).
OpenHackThe OpenHack cybersec toolset bundled for security workflows (future, see below).
Fossil / SCM / code-search utilOptional Fossil (or git-like) + source-code search utility container (future).
CouchDB / Meilisearch / GarageOur own pinned builds of the backing services, so the stack is fully self-maintained.

Future: extensibility & bundled tooling (Tier 3)

Beyond the core, the roadmap envisions bundling additional capability and exposing our own integration points so third parties can extend the system:

These are explicitly Tier-3 / future scope (tiers.md) — listed here so the image strategy accounts for them, not committed for Tier 1.