explaingit

gilbertchen/duplicacy

5,653GoAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

Lock-free cloud backup tool written in Go that deduplicates file chunks across multiple machines simultaneously, supports 15+ storage backends, and allows deleting any snapshot independently.

Mindmap

mindmap
  root((Duplicacy))
    Deduplication
      Chunk-based storage
      Content fingerprints
      Lock-free writes
    Storage Backends
      Amazon S3
      Google Drive
      Azure Backblaze
      SFTP local disk
    Backup Model
      Full snapshots
      Independent deletion
      No backup chains
    Platforms
      Windows macOS Linux
      Web GUI available
      VMware edition
    Performance
      Benchmarked vs peers
      Parallel backups
      Low redundancy cost
Click or tap to explore — scroll the page freely

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

Things people build with this

USE CASE 1

Back up files from multiple computers to a single cloud storage location without conflicts or locking issues.

USE CASE 2

Save cloud storage costs by deduplicating chunks across all machines sharing the same backup destination.

USE CASE 3

Restore or delete any individual snapshot without affecting other backups in the same storage.

USE CASE 4

Automate cross-platform backups on Windows, macOS, or Linux via command line or web GUI.

Tech stack

GoAmazon S3Google Cloud StorageMicrosoft AzureBackblaze B2DropboxSFTPWasabi

Getting it running

Difficulty · moderate Time to first run · 30min

Requires initializing a storage backend with credentials and running init/backup commands via CLI. Web GUI at duplicacy.com simplifies setup for non-terminal users.

The command-line version is open-source. A separate paid web GUI is available at duplicacy.com. License terms for the CLI are not specified in the explanation.

In plain English

Duplicacy is a command-line backup tool designed to copy your files to cloud storage in a way that saves space by avoiding storing the same data twice. When you back up your files, Duplicacy splits them into chunks and only uploads chunks that have not been stored before. If two different computers both back up similar files, the duplicate chunks only need to be stored once. This process is called deduplication. What sets Duplicacy apart from other backup tools is how it handles multiple computers backing up to the same storage location at the same time. Most other tools rely on a locking system, where one computer has to wait for another to finish before it can access the shared storage. Locks can fail in unpredictable ways over cloud storage, where network delays and outages are common. Duplicacy instead uses an approach its author calls lock-free deduplication: each chunk is saved as a separate file named after its own content fingerprint, so multiple computers can write to the same storage simultaneously without interfering with each other. The design is described in a paper published in IEEE Transactions on Cloud Computing. Because every backup is a complete snapshot rather than a chain of incremental changes, you can delete any individual backup without breaking the others. There is no requirement for periodic full backups to reset a chain. Each backup stands on its own. Duplicacy supports a wide range of storage destinations, including local disk, SFTP servers, Amazon S3, Google Cloud Storage, Microsoft Azure, Backblaze B2, Google Drive, OneDrive, Dropbox, Wasabi, DigitalOcean Spaces, and several others. Benchmark results in the README show it compares favorably in speed against other open-source backup tools when backing up the Linux source code. The tool runs on Windows, macOS, and Linux via the command line. A separate web-based graphical interface is available at duplicacy.com for users who prefer not to use the terminal. A VMware-specific edition called Vertical Backup is also available for backing up virtual machine files. The command-line version in this repository is open-source, written in Go.

Copy-paste prompts

Prompt 1
I have the Duplicacy CLI installed. Help me write a shell script that initializes a new backup repository on Amazon S3 and runs a daily scheduled backup of my home directory.
Prompt 2
Explain how to set up Duplicacy so two different Linux machines can back up to the same Backblaze B2 bucket simultaneously without corrupting each other's data.
Prompt 3
I want to prune old Duplicacy snapshots to save storage space. Show me the commands to list all snapshots and delete ones older than 90 days while keeping the latest.
Prompt 4
Help me migrate my existing Duplicacy backup storage from a local disk to Google Drive without losing any existing snapshots or deduplication history.
Prompt 5
What are the recommended Duplicacy settings and chunk sizes for backing up a large dataset with many small files versus a few very large files?
Open on GitHub → Explain another repo

← gilbertchen on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.