whatisgithub

What is kopiur?

home-operations/kopiur — explained in plain English

Analysis updated 2026-05-18

27RustAudience · ops devopsComplexity · 4/5LicenseSetup · hard

In one sentence

A Rust-built Kubernetes operator that turns Kopia backups into native, schedulable Kubernetes objects.

Mindmap

mindmap
  root((Kopiur))
    What it does
      Kubernetes backup operator
      Wraps Kopia snapshots
      Native Kubernetes objects
    Tech stack
      Rust
      kube-rs
      Helm
      Kubernetes CRDs
    Core concepts
      Recipe
      Invocation
      Schedule
      Repository
    Use cases
      Scheduled PVC backups
      Restore to PVC
      Cluster wide maintenance
    Audience
      Platform teams
      DevOps engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Back up persistent volumes in a Kubernetes cluster on an automatic cron schedule.

USE CASE 2

Restore a Kopia snapshot straight back onto a Kubernetes persistent volume claim.

USE CASE 3

Trigger backups from Argo Events, Helm hooks, or plain kubectl commands.

USE CASE 4

Run scheduled maintenance on a shared Kopia repository across a whole cluster.

What is it built with?

RustKubernetesKopiakube-rsHelm

How does it compare?

home-operations/kopiurhellanglez/zsparkgeekgineer/needle-rs
Stars272726
LanguageRustRustRust
Setup difficultyhardhardmoderate
Complexity4/54/54/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires a running Kubernetes cluster (1.24+) and optionally cert-manager to install via Helm.

You can use and modify this freely, but if you distribute it or run a modified version as a network service, you must share your source code too.

So what is it?

Kopiur is a backup operator for Kubernetes, the system used to run containerized applications at scale. It is written in Rust and uses Kopia as the actual backup engine underneath. Kopia is a backup tool that can store encrypted snapshots in remote locations like cloud object storage. Kopiur makes Kopia a native part of Kubernetes by expressing backup concepts as custom resource types, meaning you manage backups the same way you manage other Kubernetes objects. The project introduces seven custom resource types, each covering a distinct concern. A Repository defines a backup destination owned by a single namespace, including the backend storage location, encryption settings, and credentials. A ClusterRepository does the same but is shared across the whole cluster for platform teams. A BackupConfig describes what to back up, including which storage volumes to include, how long to retain snapshots, and any hooks to run before or after. A Backup represents a single snapshot as a Kubernetes object and is the main trigger point. A BackupSchedule defines when backups run, using a cron expression with optional jitter and timezone. A Restore initiates the recovery of a snapshot into a storage volume. A Maintenance object schedules Kopia's housekeeping routines. Separating the recipe from the invocation from the schedule means that the same backup configuration can be triggered multiple ways: on a schedule, by applying a Backup object manually, through an event system, or as a step in a deployment process. When a Backup object is deleted, its associated Kopia snapshot is cleaned up according to the configured deletion policy. Installation uses Helm, the Kubernetes package manager, and requires Kubernetes version 1.24 or later. Certificate management tooling is optional but supported. The project is in alpha, meaning the custom resource definitions may change between releases. The license is AGPL-3.0, which requires that modifications be shared under the same license.

Copy-paste prompts

Prompt 1
Explain how Kopiur's Repository, BackupConfig, and BackupSchedule custom resources fit together.
Prompt 2
Write a Kubernetes manifest to schedule a nightly backup of a PVC using Kopiur.
Prompt 3
Show me how to restore a PVC from a Kopia snapshot using Kopiur's Restore resource.
Prompt 4
Walk me through installing Kopiur into a cluster with Helm and cert-manager enabled.
Prompt 5
What does Kopiur's alpha status mean for using it in a production cluster?

Frequently asked questions

What is kopiur?

A Rust-built Kubernetes operator that turns Kopia backups into native, schedulable Kubernetes objects.

What language is kopiur written in?

Mainly Rust. The stack also includes Rust, Kubernetes, Kopia.

What license does kopiur use?

You can use and modify this freely, but if you distribute it or run a modified version as a network service, you must share your source code too.

How hard is kopiur to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is kopiur for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.