TL;DR — Quick Summary

Set up Kopia for encrypted, deduplicated backups to S3, B2, SFTP, or local storage. Includes web UI, snapshot policies, retention rules, and Restic comparison.

What Is Kopia?

Kopia is a fast, open-source backup tool that provides encrypted, deduplicated, compressed snapshots of your files to any storage backend. It is the modern alternative to Restic and BorgBackup, with a built-in web UI and native snapshot policies.

Key features:

  • Client-side encryption — AES-256-GCM, zero-knowledge
  • Content-level deduplication — across all snapshots and machines
  • Compression — zstd, gzip, s2 (default: zstd)
  • Incremental snapshots — only changed data is uploaded
  • Built-in web UI — manage backups from the browser
  • Snapshot policies — retention, scheduling, ignore rules
  • Server mode — centralized backup management for multiple machines
  • 40+ storage backends — via native support and Rclone

Storage Backends

Backend Command Best For
Local / NAS kopia repo create filesystem --path /mnt/backup Fast, simple
S3 / MinIO kopia repo create s3 --bucket=name Cloud, self-hosted S3
Backblaze B2 kopia repo create b2 --bucket=name Cheap cloud ($0.005/GB)
SFTP kopia repo create sftp --host=server Remote server
Google Cloud kopia repo create gcs --bucket=name GCP users
Azure Blob kopia repo create azure --container=name Azure users
Rclone kopia repo create rclone --remote-path=name:path 40+ providers

Quick Start

Install

# Ubuntu/Debian
curl -s https://kopia.io/signing-key | sudo gpg --dearmor -o /etc/apt/keyrings/kopia-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kopia-keyring.gpg] http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources.list.d/kopia.list
sudo apt update && sudo apt install kopia

# macOS
brew install kopia

# Docker
docker pull kopia/kopia:latest

Create Repository & First Snapshot

# Create local repository
kopia repository create filesystem --path /backup/kopia

# Create first snapshot
kopia snapshot create /home/user/documents

# List snapshots
kopia snapshot list

# Restore a snapshot
kopia restore <snapshot-id> /tmp/restore/

Snapshot Policies

# Set retention policy
kopia policy set /home/user/documents \
  --keep-latest 10 \
  --keep-hourly 24 \
  --keep-daily 30 \
  --keep-weekly 8 \
  --keep-monthly 12 \
  --keep-annual 3

# Set automatic snapshot interval
kopia policy set /home/user/documents --snapshot-interval 4h

# Ignore patterns
kopia policy set /home/user --add-ignore "node_modules" --add-ignore ".cache"

Web UI

kopia server start --ui --address=0.0.0.0:51515

Access at http://localhost:51515 for visual management of repositories, snapshots, policies, and restoration.

Docker Compose (Server Mode)

services:
  kopia:
    image: kopia/kopia:latest
    container_name: kopia
    restart: always
    ports:
      - "51515:51515"
    command: server start --ui --address=0.0.0.0:51515 --server-control-username=admin --server-control-password=changeme
    volumes:
      - /backup/kopia:/repository
      - kopia-config:/app/config
      - /home:/sources:ro

volumes:
  kopia-config:

Kopia vs. Restic vs. BorgBackup

Feature Kopia Restic BorgBackup
Encryption ✅ AES-256-GCM ✅ AES-256 ✅ AES-256
Deduplication ✅ Content-level ✅ Content-level ✅ Block-level
Compression ✅ zstd, gzip, s2 ❌ (v0.16+ only) ✅ lz4, zstd, zlib
Web UI ✅ Built-in ❌ (3rd party) ❌ (Borgmatic)
Snapshot policies ✅ Built-in ❌ (manual) ❌ (Borgmatic)
Server mode ✅ (append-only)
S3 support ❌ (via Rclone)
Speed Fast Fast Moderate
Maturity Newer (2019) Mature (2015) Mature (2015)

Summary

Kopia is the modern backup tool that combines Restic’s cloud flexibility with BorgBackup’s compression and adds a built-in web UI and snapshot policies. Its client-side encryption and content deduplication make it ideal for self-hosted backup infrastructure.