1. easy setup: Duplicacy is built using golang. It is convenient to setup around all platforms with dependencies.
  2. support object-based storage: borgbackup needs installation in two ends. Sure with rclone, we can upload backups to clouds. But there will be no deduplication among backups. Because they are already compressed and encrypted into a different structure. #3 is a elegant way to solve this.
  3. cross machines deduplication: This means no matter how different those backups are, one single file will be only stored once.



See systemd.



Initialize repository

Add a copy for the existing repository

Backing up


Storage Selection#

  • Backblaze B2
  • Google Drive

A 3-2-1 strategy means having at least 3 total copies of your data, 2 of which are local but on different mediums (read: devices), and at least 1 copy offsite.

I'm not using 2 local backups right now. For me, Using a second local backup is only useful when the speed and the cost of restoring data matter. Currently, I use Google Drive as the second backup to reduce the cost of restoring backup from Backblaze B2.

Google Drive can be mounted as local directory using rclone. I did think about using it as a cloud storage for self-hosted services, including Jellyfin or NextCloud. But running rclone needs a server to run all day in order to be accessible on mobile devices. For such purpose, either buying a server that has big storage to avoid the need of Google Drive or buying a server that has excellent network for user experience with Google Drive mounted can be considered. For now, I go with the first plan.