BorgBackup vs Kopia: CLI Power vs Web UI

Two Philosophies for the Same Problem

BorgBackup and Kopia both deduplicate, encrypt, and compress your backups. The difference is how you interact with them. BorgBackup is a Unix-philosophy CLI tool — do one thing well, compose with scripts. Kopia ships a web UI, a desktop app, and speaks directly to S3, B2, Google Cloud, Azure, and SFTP without needing rclone or other glue.

Pick Kopia if you want a graphical interface, native cloud storage support, and a single binary that handles everything. Pick BorgBackup if you want battle-tested deduplication, SSH-based repos, and the flexibility to wrap it with Borgmatic or custom scripts.

Feature Comparison

FeatureBorgBackup 1.4.3Kopia 0.19.0
DeduplicationVariable-length chunking (content-defined)Content-defined chunking
EncryptionAES-256-CTR + HMAC-SHA256AES-256-GCM or ChaCha20-Poly1305
CompressionLZ4, ZSTD, ZLIB, LZMAZSTD, S2, pgzip, gzip
Web UINoneBuilt-in (port 51515)
Desktop appNoneKopiaUI (Windows, macOS, Linux)
Cloud storageVia rclone mountNative S3, B2, GCS, Azure, SFTP
Local reposFilesystem, SSHFilesystem
Remote reposSSH (borg serve)Kopia Repository Server
Docker imageNo official imagekopia/kopia:0.19.0
SchedulingExternal (cron, systemd)Built-in policy-based scheduling
Retention policiesManual borg prune or BorgmaticPolicy-based, per-directory
Restore granularityFile-level, mount as FUSEFile-level, mount as FUSE, web UI browse
Active developmentBorg 2.0 in betaActive (monthly releases)
LicenseBSD-3-ClauseApache-2.0

Storage Backend Flexibility

This is where the tools diverge most. BorgBackup speaks SSH natively and expects a filesystem-like target. Want S3 or B2? You need rclone to mount cloud storage as a local path — doable, but adds complexity and a potential failure point.

Kopia talks to cloud providers directly:

# Kopia: connect directly to S3
kopia repository create s3 \
  --bucket=my-backups \
  --access-key=AKIAXXXXXXXX \
  --secret-access-key=xxxxxxxx

# BorgBackup: needs rclone mount first
rclone mount b2:my-backups /mnt/b2-backup --daemon
borg init --encryption=repokey /mnt/b2-backup/borg-repo

If your backup destination is cloud storage, Kopia eliminates an entire layer of tooling.

User Experience

BorgBackup is strictly CLI. You learn the commands, write scripts or use Borgmatic, and check logs for status. There’s no dashboard showing backup health at a glance.

Kopia gives you options. The web UI shows repository status, snapshot history, estimated next backup time, and storage usage. You can browse snapshots and restore individual files through the browser. Or ignore the UI entirely and use kopia snapshot create from the CLI — it’s equally capable both ways.

For a self-hoster managing backups for 10+ services, Kopia’s dashboard is genuinely useful. For a single-server setup with good automation, BorgBackup’s CLI is sufficient.

Performance

Both tools are fast. BorgBackup’s Cython-optimized chunking engine is slightly faster for large file trees (millions of files). Kopia’s Go implementation is more consistent across platforms and handles concurrent operations better.

MetricBorgBackupKopia
Initial full backup (100 GB mixed files)~15-25 min~15-30 min
Incremental backup (1% changed)~30-90 sec~30-120 sec
Deduplication ratio (typical)3-10x3-10x
Memory during backup200-500 MB150-400 MB
CPU usageModerate (Cython)Moderate (Go)
Concurrent snapshotsNot supportedSupported

Real-world performance depends on your storage I/O more than the tool itself.

Maturity and Trust

BorgBackup has been around since 2015 (forked from Attic, 2010). It’s used by universities, research institutions, and has survived real data recovery scenarios thousands of times. The codebase is audited and well-understood.

Kopia is newer (2019) but has matured rapidly. It’s backed by a growing community and has its own repository format. The 0.x version number concerns some people, but it’s been stable in production for years.

If “proven in disaster recovery” matters most to you, BorgBackup has the longer track record. If “actively developed with modern features” matters more, Kopia is moving faster.

Docker Setup Comparison

Kopia has an official Docker image with the web UI:

services:
  kopia:
    image: kopia/kopia:0.19.0
    restart: unless-stopped
    ports:
      - "51515:51515"
    volumes:
      - kopia-config:/app/config
      - kopia-cache:/app/cache
      - /path/to/backup-source:/data:ro
      - /path/to/backup-repo:/repository
    environment:
      - KOPIA_PASSWORD=your-repo-password
    command: server start --insecure --address=0.0.0.0:51515

volumes:
  kopia-config:
  kopia-cache:

BorgBackup doesn’t have an official Docker image. Most self-hosters use Borgmatic for containerized backups instead:

services:
  borgmatic:
    image: ghcr.io/borgmatic-collective/borgmatic:1.9.14
    restart: unless-stopped
    volumes:
      - ./borgmatic/config.yaml:/etc/borgmatic/config.yaml:ro
      - borg-cache:/root/.cache/borg
      - /path/to/backup-source:/data:ro
      - /path/to/backup-repo:/repository
    environment:
      - BORG_PASSPHRASE=your-repo-passphrase

volumes:
  borg-cache:

FAQ

Can I migrate from BorgBackup to Kopia?

Not directly — different repository formats. You’d need to create a new Kopia repository and re-backup your data. Both support FUSE mounting, so you could mount the borg repo and back it up with Kopia.

Which uses less disk space?

Comparable. Both achieve similar deduplication ratios. Kopia’s default ZSTD compression may edge out BorgBackup’s default LZ4 in size, but LZ4 is faster.

Can I use Kopia with Borgmatic?

No. Borgmatic is specifically a BorgBackup wrapper. Kopia has its own policy engine and scheduling built in.

Which is better for backing up to a remote server?

BorgBackup via SSH is simpler — borg serve on the remote end, no additional software. Kopia requires a Kopia Repository Server on the remote end, which is more setup but supports multiple clients writing concurrently.

Final Verdict

Kopia is the better choice for most self-hosters starting fresh. The web UI, native cloud storage support, and built-in scheduling reduce the number of moving parts. You get a single tool instead of BorgBackup + Borgmatic + rclone + cron.

BorgBackup is the better choice if you already use it and it works, you need SSH-based remote repos (simpler than Kopia Repository Server), or you trust the longer track record for critical data.

Both tools will protect your data reliably. The choice comes down to whether you prefer a graphical dashboard or a CLI-first workflow.