I run a QNAP NAS, and for a long time its HBS3 handled my backups to Azure. Or tried to. Every so often something strange would surface in the Azure job, and every fix meant days of back-and-forth with support before anything moved. Eventually the arithmetic flipped: with AI helping me write it, building my own tool became cheaper than waiting for theirs to work.
So I did — and I added the things HBS3 never gave me. The one I wanted most is encrypted file names: archives are written with 7-Zip AES-256 including the header, so the storage container holds opaque pack blobs, not a readable map of my directory tree.
What it does today:
- Incremental backups — unchanged files are never reopened; a file whose timestamp moved but whose content didn’t is re-hashed, not re-uploaded.
- Small files packed, large files split into volumes, with per-extension rules for what not to compress.
- Versions, retention, and Hot/Cool/Archive tiers.
- Pause, Suspend, Resume. Every confirmed upload is journalled to disk, so an interrupted run — including a container upgrade — picks up where it stopped instead of resending terabytes.
- Network hiccups back off and retry rather than failing the run.
- Scheduled jobs, integrity checks, repair from your local copy, and restore.
- One multi-arch Docker image (amd64 + arm64), web UI on a single port. Built for a NAS: 7-Zip runs at lowest CPU priority by default.
It only targets Azure Blob Storage, because that is all I need. If your destination is S3, Backblaze or a box in your basement, the engine is the part worth having — fork it and swap the back end. MIT licensed.
Try it: https://github.com/SecretNest/AzureStorageBackup
Issues and pull requests welcome.