ReaperCI Documentation

ReaperCI documentation

Embedded OCI registry

ReaperCI serves a Distribution-compatible OCI registry on the same HTTPS origin as the dashboard. Dockerfile pipeline steps push immutable build images to it, and deployment runners authenticate immediately before pulling the selected image. The hub does not mount the host Docker socket.

Inventory

The dashboard Registry page lists repositories, current tags, manifest digests, media types, and manifest sizes. It is a read-only operational view: builds publish through the OCI /v2/ protocol, while tag deletion and garbage collection remain deliberate maintenance operations.

Agents and other clients can request the same paginated inventory:

GET /api/v1/registry/repositories?limit=50
GET /api/v1/registry/repositories?limit=50&last=team/example

The optional next response field is the last cursor for the next page. The host field is the configured pull host used to construct deployable image references; it can differ from the dashboard origin in development. Viewer identities may read inventory, but registry writes require the private hub-managed robot credential used by BuildKit and deployment runners. That credential is encrypted at rest and is never returned by the management API. Repository responses include at most 100 tags; tagsTruncated signals that additional tags exist.

Windows development starts a Docker-volume-backed registry because host filesystem uploads do not provide the required Linux rename semantics. The development scripts set REAPERCI_REGISTRY_CATALOG_URL to its loopback URL so the same Registry page shows the images BuildKit actually pushed. Production normally leaves this variable unset and inventories the embedded registry root.

Storage and recovery

Registry data lives below <data>/registry in the same durable data volume as the hub state. Production backup and restore includes the complete registry root. On supported Linux hosts, use a Docker volume or a filesystem whose rename, locking, and durability semantics have passed the release upload test.

After restoring, verify both the management inventory and an authenticated manifest pull before reopening builds or deployments. Run offline garbage collection only with the hub stopped:

reaperci registry gc --root <data>/registry --dry-run
reaperci registry gc --root <data>/registry

The first command is mandatory evidence for the maintenance record. Never run mark-and-sweep while uploads, builds, or deployment pulls are active.