Last updated: March 15, 2026

I lost a week of work to a failed SSD two years ago. Since then, I’ve tested every encrypted backup tool I could find – restic, BorgBackup, Duplicati, Arq, and Kopia. My requirements are simple: encrypted, versioned, automated, and able to back up dotfiles, SSH keys, and project directories without manual intervention. available? Free alternatives exist for most tool categories, though they typically come with limitations on features, usage volume, or support.

Restic is an open-source backup program that provides secure, efficient, and easy-to-use backups.

Why Encryption Matters for Developer Backups

Developer backups differ from typical user backups because they often contain sensitive credentials, API keys, private repositories, and environment-specific configurations. Standard cloud storage solutions like Google Drive or Dropbox offer encryption at rest, but they also hold the decryption keys, meaning a compromised account or insider threat could expose your entire backup history.

End-to-end encrypted backups ensure that only you hold the decryption keys. Even if the backup service is breached, your data remains unreadable without your password or key file.

Beyond credentials, consider what else your development environment contains: private SSH keys, GPG keys, .env files with database passwords, and configuration files that document your internal infrastructure. A backup that exposes these is worse than no backup at all because it creates a single archive that an attacker can enumerate offline at leisure.

Threat Model for Developer Backups

Before selecting a solution, identify what you are protecting against:

Threat Likelihood Mitigation
Hard drive failure High Any backup solution
Ransomware encryption Medium Immutable or versioned backups
Cloud provider breach Low Client-side encryption
Insider threat at provider Low Client-side encryption
Account compromise Medium Strong key management
Supply chain attack on backup tool Very Low Open-source, audited tools

For most developers, the realistic threats are hardware failure and ransomware. Client-side encryption addresses both: even if ransomware reaches your cloud destination through a synced drive, it cannot re-encrypt data that the backup client already encrypted and uploaded.

Key Criteria for Evaluating Solutions

When selecting an encrypted backup solution, developers should prioritize:

Top Encrypted Backup Solutions for Developers

  1. Restic: Open-Source Deduplicated Backup

Restic is an open-source backup program that provides secure, efficient, and easy-to-use backups. It uses AES-256 encryption in CTR mode with authenticated encryption, ensuring both confidentiality and integrity.

Installation:

macOS
brew install restic

Linux
sudo apt-get install restic

Verify installation
restic version

Initializing a Repository:

Initialize a local encrypted repository
restic init --repo /backup/mycode

Initialize with a password (will prompt)
restic init --repo s3:minio.example.com/bucket

Basic Backup Workflow:

Set repository password
export RESTIC_PASSWORD="your-secure-password-here"

Back up a project directory
restic backup /path/to/your/project

List snapshots
restic snapshots

Restore from a specific snapshot
restic restore latest --target /restore/here

Restic’s deduplication is particularly valuable for developers working with large repositories or multiple projects. It only stores unique data chunks, significantly reducing storage costs while maintaining full encryption.

Restic with S3-compatible storage:

Using Backblaze B2 (cost-effective S3 alternative)
export RESTIC_REPOSITORY="b2:bucketname:/path"
export RESTIC_PASSWORD="your-repo-password"
export B2_ACCOUNT_ID="your-account-id"
export B2_ACCOUNT_KEY="your-application-key"

restic init
restic backup ~/projects

Restic supports S3, Azure Blob, Google Cloud Storage, Backblaze B2, and SFTP backends. This flexibility means you can store encrypted backups across multiple providers without changing your workflow.

  1. Borg Backup: Deduplicated and Compressed

Borg Backup offers similar deduplication capabilities to Restic with additional compression options. It’s particularly well-suited for Linux servers but works across platforms.

Installation:

macOS
brew install borgbackup

Ubuntu/Debian
sudo apt-get install borgbackup

Creating a Backup Repository:

Initialize an encrypted repository
borg init --encryption=repokey /backup/repo

Verify encryption is enabled
borg info /backup/repo

Backup and Restore Commands:

Create a backup archive
borg create /backup/repo::project-{now} /path/to/code

List archives
borg list /backup/repo

Extract a specific archive
borg extract /backup/repo::project-2026-03-15 /restore/path

Borg excels at incremental backups. After the initial backup, subsequent runs only transfer changed files, making it bandwidth-efficient for large codebases.

Borg encryption modes comparison:

Mode Key Location Use Case
repokey In repository Convenient, requires strong passphrase
keyfile Local file Better separation, back up the keyfile separately
repokey-blake2 In repository Faster on modern hardware
none N/A Development/testing only, never production

For production developer backups, repokey-blake2 provides a good balance of security and performance on x86-64 hardware.

  1. Cryptomator: Cloud Storage Encryption

If you primarily use cloud storage (Dropbox, Google Drive, OneDrive), Cryptomator adds client-side encryption as a layer on top. Unlike Restic and Borg which handle backup and encryption together, Cryptomator creates an encrypted vault that syncs via your existing cloud client.

Installation:

macOS
brew install --cask cryptomator

Or use the CLI version
brew install cryptomator-cli

Creating an Encrypted Vault:

Create a new vault directory
mkdir -p ~/Dropbox/DeveloperVault

Use Cryptomator CLI to unlock (requires GUI for initial setup)
cryptomator unlock ~/DeveloperVault --password "your-password"

The advantage of Cryptomator is transparency, your workflow remains unchanged. You edit files in the decrypted mount, and changes sync automatically with encryption happening in the background.

  1. Tarsnap: Online Backup with Deduplication

Tarsnap is a secure online backup service specifically designed for Unix-like systems. It provides deduplication across all users, meaning even smaller accounts offer substantial storage through shared chunk storage.

Installation:

macOS
brew install tarsnap

Configure
sudo tarsnap --keyfile /etc/tarsnap.key --registered-user email@example.com

Basic Operations:

Create a backup
tarsnap -cvf project-backup-$(date +%Y%m%d) /path/to/project

List backups
tarsnap --list-archives

Restore a backup
tarsnap -xvf project-backup-20260315

Tarsnap’s pricing model is pay-per-use based on compressed, deduplicated data stored, making it cost-effective for developers with variable backup sizes.

Solution Comparison

Feature Restic Borg Cryptomator Tarsnap
Client-side encryption Yes Yes Yes Yes
Deduplication Yes Yes No Yes
Compression No Yes No Yes
CLI support Yes Yes Partial Yes
Multiple backends Yes SFTP only Via cloud client Tarsnap only
Open source Yes Yes Yes Partially
Cost Storage only Storage only Storage only ~$0.25/GB/mo
Best for Cloud flexibility Linux servers Existing cloud users Unix purists

Automating Backups with Cron

For reliable protection, automate your backup workflow:

Edit crontab
crontab -e

Add daily backup at 2 AM
0 2 * * * RESTIC_PASSWORD="your-password" restic backup /path/to/code --repo /backup/mycode

Weekly cleanup of old snapshots (keep last 7 daily, 4 weekly)
0 3 * * 0 RESTIC_PASSWORD="your-password" restic forget --keep-daily 7 --keep-weekly 4 --prune --repo /backup/mycode

For a more complete automation script with alerting:

#!/bin/bash
backup.sh. encrypted backup with error notification

set -euo pipefail
export RESTIC_REPOSITORY="s3:s3.amazonaws.com/my-backup-bucket"
export RESTIC_PASSWORD_FILE="/etc/restic/password"

restic backup ~/projects ~/dotfiles 2>&1 | logger -t restic-backup

if [ $? -ne 0 ]; then
  # Send alert via Signal CLI or email
  signal-cli send -m "Backup failed on $(hostname) at $(date)" +1234567890
fi

Prune old snapshots
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Protecting Backup Credentials

The backup repository password is now as critical as the data it protects. Apply the same discipline to it:

Best Practices for Developer Backups

  1. Separate credentials from backups: Store your backup repository password in a password manager, not in environment variables that might be logged
  2. Test restores regularly: Verify your backup actually works by performing test restores quarterly
  3. Use multiple destinations: Store encrypted backups in at least two locations, local external drive and cloud storage
  4. Version control your dotfiles: Include shell configurations, SSH keys (encrypted), and editor settings in your backup strategy
  5. Encrypt before cloud sync: Always use client-side encryption when backing up to third-party services
  6. Include .env files explicitly: Many backup tools exclude dotfiles by default; configure them to include your environment files
  7. Monitor backup freshness: Set up a check that alerts you if no successful backup has run in the past 25 hours

Related Reading

Built by theluckystrike. More at zovo.one

Frequently Asked Questions

Who is this article written for?

This article is written for developers, technical professionals, and power users who want practical guidance. Whether you are evaluating options or implementing a solution, the information here focuses on real-world applicability rather than theoretical overviews.

How current is the information in this article?

We update articles regularly to reflect the latest changes. However, tools and platforms evolve quickly. Always verify specific feature availability and pricing directly on the official website before making purchasing decisions.

Are there free alternatives available?

Free alternatives exist for most tool categories, though they typically come with limitations on features, usage volume, or support. Open-source options can fill some gaps if you are willing to handle setup and maintenance yourself. Evaluate whether the time savings from a paid tool justify the cost for your situation.

Can I trust these tools with sensitive data?

Review each tool’s privacy policy, data handling practices, and security certifications before using it with sensitive data. Look for SOC 2 compliance, encryption in transit and at rest, and clear data retention policies. Enterprise tiers often include stronger privacy guarantees.

What is the learning curve like?

Most tools discussed here can be used productively within a few hours. Mastering advanced features takes 1-2 weeks of regular use. Focus on the 20% of features that cover 80% of your needs first, then explore advanced capabilities as specific needs arise.