You're reading the open-source Community docs. Plakar also offers Control Plane, the enterprise version. It's a virtual appliance with a web-based interface for centralized backup management across your infrastructure. View Control Plane docs →

OCI Registry

The OCI Registry integration enables Plakar to use any OCI-compliant container registry as a native Kloset store backend. Repository data is encoded as OCI artifacts and pushed to the registry, making it easy to host backups alongside container images while benefiting from cloud-native distribution, replication, and access controls.

Popular supported registries include Docker Hub, Amazon ECR, Google Artifact Registry, Azure Container Registry, GitHub Container Registry, and self-hosted registries such as Harbor.

The OCI Registry integration provides one connector:

Connector type Description
Storage connector Use an OCI registry as a Kloset store backend.

Installation

The OCI Registry package can be installed using pre-built binaries or compiled from source.

Pre-compiled packages are available for common platforms and provide the simplest installation method.

Logging In

Pre-built packages require Plakar authentication. See Logging in to Plakar for details.

Install the OCI Registry package:

$ plakar pkg add oci

Verify installation:

$ plakar pkg list

Source builds are useful when pre-built packages are unavailable or when customization is required.

Prerequisites:

  • Go toolchain compatible with your Plakar version

Build the package:

$ plakar pkg build oci

A package archive will be created in the current directory (e.g., oci_v1.0.0_darwin_arm64.ptar).

Install the package:

$ plakar pkg add ./oci_v1.0.0_darwin_arm64.ptar

Verify installation:

$ plakar pkg list

To list, upgrade, or remove the package, see managing packages guide.

Configuration

Configuration options

Option Required Description
location Yes OCI registry reference where the store lives, for example oci://localhost:5000/my-org/plakar-store.
Note

Authentication is not yet supported and will be added in an upcoming release.

Storage connector

The storage connector uses an OCI registry as the backend for a Kloset store. Packfiles, states, indexes, and metadata are stored as OCI artifacts under a dedicated repository namespace. Blobs map to OCI layers using content-addressed storage, enabling strong integrity guarantees and efficient deduplication.

flowchart LR

subgraph Sources["Any Source"]
  FS["Data"]
end

subgraph Plakar["Plakar"]
  Transform["Encrypt & deduplicate"]
  Connector["Store via
OCI Distribution API"] Transform --> Connector end Sources --> Transform subgraph Storage["OCI Registry"] Store["Kloset Store"] end Connector --> Store

Start a local test registry:

$ docker run -d --name oci-registry \
  -p 5000:5000 \
  -v $(pwd)/registry-data:/var/lib/registry \
  registry:2

Initialize the store and run a backup:

$ plakar at oci://localhost:5000/my-org/plakar-store create
$ plakar at oci://localhost:5000/my-org/plakar-store backup /var/www

List snapshots and restore:

$ plakar at oci://localhost:5000/my-org/plakar-store ls
$ plakar at oci://localhost:5000/my-org/plakar-store restore <snapshot_id>

Notes

  • Use dedicated repository namespaces for backup data to avoid mixing with container images.
  • Enable immutability and retention policies on the registry when available.
  • Garbage collection behaviour is registry-specific and may affect stored data.
  • Some registries enforce rate limits on pushes and pulls that can affect performance with large repositories.
  • The integration targets the OCI Distribution Specification and works with any compliant registry implementation.