Koofr is a pretty good deal: it’s 1TB of storage for a lifetime through Stack Social, for around $170. If you get a discount from Stack Social (like when I wrote this, during their Black Friday special), you can get that 1TB lifetime for $102—the prevailing discount of 40% for software during Black Friday/Cyber Monday.*
The huge, major upside is that unlike other providers, they support standard protocols: WebDAV for example. They also seem to have some actually useful features: creating a guest upload link (where anyone can upload to your space) and download links (which most places have).
Most interestingly, rclone supports Koofr natively. And restic (the UNIX backup program) can use rclone as a back-end. So, you can back-up your Linux/UNIX systems to Koofr.
Now, the downside is that the speeds are pretty low. I tried an upload of 100 MB using rclone and it went at around 200 kB/s. This slowness could have been my network, but I don’t imagine it will get much faster. That said, since my ISP has a data cap, this slow speed sort of automatically limits how much.
The steps here is that I first set up (under root) an rclone configuration for Koofr, following the steps here, which just amounts to the usual rclone configuration command-line wizard, selecting Koofr as the storage type. I called the rclone configuration koofr.
Then, I created a very long password and initialized a restic back-up repo with:
rclone -r rclone:koofr:restic/server init
This Initializes the repo in a /restic/server directory within my Koofr storage. I did this indirection, in case I want to back-up a different host under the /restic directory in my Koofr storage. Then, backing up was fairly easy:
1 |
restic -r rclone:koofr:restic/server backup /tank/Users |
I put this in a cron job that calls a script called run-koofr.sh:
1 2 3 4 5 6 7 |
#!/bin/sh echo '-> RUN RESTIC (KOOFR) <-' . /root/restic/koofr.sh restic --exclude-file=/root/restic/koofr-excludes.txt --password-file /root/restic/password-koofr $* echo '-< RUN RESTIC (KOOFR) >-' |
The sourced file koofr.sh just contains:
1 2 |
#!/bin/sh export RESTIC_REPOSITORY="rclone:koofr:restic/server" |
I am storing the repo as an environmental variable. This was unnecessary, but I have a similar setup for B2 (Backblaze’s block storage). That setup requires me to set up the Backblaze credentials, which I did not want to place in a cron file, or maybe restic requires to be in an environmental variable (cannot be passed from command-line). It was a while ago, so I don’t remember.
This worked fairly well, except that 1TB wasn’t enough, so I had to pare back and only upload photos and a sub-set of documents.
The main downside to Koofr is the fixed storage. With B2 (which I will still keep as my primary back-up), you pay for what you use, and the storage grows if you need more. So, your backup won’t fail simply because you didn’t have enough storage. And the risk of getting overcharged is minimal, size B2 is so cheap.
Although, not as cheap as Koofr, if this lifetime deal pans out.
* At the time of writing, I do not have an affiliate relationship with Koofr or with Stack Social.