# Kopia — Cross-Platform Backup Tool with Encryption, Compression, and a Polished UI > Kopia is a modern backup tool that gives you Borg-style deduplication + encryption + compression, with native support for S3/GCS/Azure/B2/WebDAV/SFTP — and a polished web UI for managing snapshots on macOS, Linux, and Windows. ## Install Save in your project root: # Kopia — Modern Backup with Deduplication + Cloud Backends ## Quick Use ```bash # Install brew install kopia # macOS sudo apt install kopia # Debian/Ubuntu (via kopia's apt repo) winget install KopiaUI.KopiaUI # Windows GUI # Connect/create a repository (S3 example) kopia repository create s3 \ --bucket=my-backups \ --access-key=... --secret-access-key=... \ --region=us-east-1 # Snapshot a directory kopia snapshot create /home/alice # List snapshots kopia snapshot list --all # Restore kopia snapshot restore /path/to/snapshot/id /restore/target ``` ## Introduction Kopia is a newer, polished sibling to Borg and Restic. It focuses on friendly UX — including a desktop GUI (KopiaUI) and a web UI — while keeping the fundamentals: content-addressable storage, client-side encryption, compression, and snapshot-level policies. Native backends for S3/GCS/Azure/B2/WebDAV/SFTP avoid the rclone indirection other tools need. With over 13,000 GitHub stars, Kopia is popular with users who want "Borg's reliability but with a UI my less-technical colleague can operate". It's cross-platform and runs identically on macOS, Linux, and Windows. ## What Kopia Does Kopia splits files into variable-size blocks (content-addressable), deduplicates across all snapshots in a repository, encrypts everything with ChaCha20+Poly1305 or AES-GCM, and optionally compresses. Policies (per path) control retention (keep N hourly/daily/weekly/monthly/annual). A repository server lets many client machines share a single dedup pool without giving them direct storage credentials. ## Architecture Overview ``` [Client machine(s)] | [Kopia binary — CLI + web UI] snapshot, policy, restore | [Content-addressable storage layer] split into chunks, dedup, encrypt (AEAD) compress (zstd / s2 / pgzip / lz4) | +----+----+----+----+----+----+----+ | | | | | | | | S3 GCS Azure B2 WebDAV SFTP FS RClone | [Kopia Repository Server (optional)] client machines connect to the server, the server talks to storage per-user policies, bandwidth limits ``` ## Self-Hosting & Configuration ```bash # Set a global policy kopia policy set --global \ --keep-latest 10 \ --keep-hourly 24 --keep-daily 7 --keep-weekly 4 --keep-monthly 24 \ --compression=zstd-better-compression \ --add-ignore '*.log' --add-ignore 'node_modules' # Per-directory override kopia policy set /home/alice/projects \ --add-ignore '.git' --add-ignore '.venv' --max-file-size 100M # Repository server (multi-machine access without sharing storage creds) kopia server start --tls-generate-cert --address 0.0.0.0:51515 \ --server-username admin --server-password admin-pass # Client machine kopia repository connect server --url https://backup-server:51515 \ --server-cert-fingerprint abcdef... --username alice --password ... # Schedule (cron example) 0 * * * * kopia snapshot create /home/alice --quiet # Web UI at http://localhost:51515 (or wherever server runs) # KopiaUI desktop app bundles server + UI for solo users ``` ## Key Features - **Native cloud backends** — S3, GCS, Azure, B2, WebDAV, SFTP, local, rclone - **Strong encryption** — AEAD (ChaCha20-Poly1305 or AES-GCM-SIV) - **Compression** — zstd, s2, pgzip, lz4; per-policy selection - **Content-addressable + dedup** — same block stored once across snapshots/machines - **KopiaUI** — polished desktop app for macOS/Linux/Windows - **Web UI** — browser interface for repository servers - **Policy-based retention** — hourly/daily/weekly/monthly/annual per path - **Cross-platform** — binary for every major OS and arch ## Comparison with Similar Tools | Feature | Kopia | Borg | Restic | Duplicati | Synology Active Backup | |---|---|---|---|---|---| | Cloud backends | Native (many) | SSH-only | Native (many) | Native (many) | Synology-centric | | GUI | Yes (Kopia UI) | No | No (3rd party) | Yes | Yes | | Compression | Yes (many algos) | Yes | Yes (Zstd in v0.15) | Yes | Yes | | Repository server | Yes (multi-user) | Via SSH | Via rest-server | No | Synology server | | License | Apache-2.0 | BSD | BSD | LGPL | Proprietary | | Best For | Modern UX + cloud | Linux servers + SSH target | Cloud-target backups | Novice users + GUI | Synology ecosystems | ## FAQ **Q: Kopia vs Borg vs Restic?** A: All three are excellent. Borg is the veteran (fastest on some Linux workloads). Restic has cloud backends + simpler CLI. Kopia has cloud backends + GUI + multi-user repository server. For teams: Kopia. For servers with SSH-only targets: Borg. For script-centric cloud backups: Restic. **Q: How does Kopia compare on dedup efficiency?** A: Very similar to Borg/Restic — content-defined chunking with a ~4MB average chunk. Dedup ratios of 5-10x are typical for full-system backups. **Q: Can I share one repository across many machines?** A: Yes — that's one of Kopia's strengths. Use the Kopia Repository Server; each client authenticates with its own credentials; dedup spans everyone's data. **Q: Is KopiaUI as capable as the CLI?** A: 90%+ for everyday use. For advanced policies or scripting, drop to the CLI. KopiaUI is a friendly wrapper — the same binary powers both. ## Sources - GitHub: https://github.com/kopia/kopia - Website: https://kopia.io - License: Apache-2.0 --- Source: https://tokrepo.com/en/workflows/0754326f-3859-11f1-9bc6-00163e2b0d79 Author: AI Open Source