{"id":1138,"date":"2020-11-28T23:33:03","date_gmt":"2020-11-29T05:33:03","guid":{"rendered":"https:\/\/tech.poojanblog.com\/blog\/?p=1138"},"modified":"2025-11-18T11:01:39","modified_gmt":"2025-11-18T17:01:39","slug":"backing-up-to-koofr-using-restic-rclone","status":"publish","type":"post","link":"https:\/\/tech.poojanblog.com\/blog\/unix-linux\/backing-up-to-koofr-using-restic-rclone\/","title":{"rendered":"Backing up to Koofr using Restic\/Rclone"},"content":{"rendered":"\n<p><a href=\"https:\/\/koofr.eu\/\">Koofr<\/a> is a pretty good deal: it&#8217;s 1TB of storage for a lifetime <a href=\"https:\/\/stacksocial.com\/sales\/koofr-cloud-storage-plans-lifetime-subscription-1tb\">through Stack Social, for around $170<\/a>. 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\u2014the prevailing discount of 40% for software during Black Friday\/Cyber Monday.*<br><br>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).<br><br>Most interestingly, <a href=\"https:\/\/koofr.eu\/blog\/posts\/learning-the-basics-of-koofr-with-rclone\">rclone supports Koofr natively<\/a>. And restic (the UNIX backup program) can use rclone as a back-end. So, you can back-up your Linux\/UNIX systems to Koofr.<br><br>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&#8217;t imagine it will get much faster. That said, since my ISP has a data cap, this slow speed sort of automatically limits how close I get to that monthly cap.<\/p>\n\n\n\n<p>The steps here is that I first set up (under root) an rclone configuration for Koofr, following the <a href=\"https:\/\/koofr.eu\/blog\/posts\/learning-the-basics-of-koofr-with-rclone\">steps here<\/a>, which just amounts to the usual rclone configuration command-line wizard, selecting Koofr as the storage type. I called the rclone configuration koofr.<\/p>\n\n\n\n<p>Then, I created a very long password and initialized a restic back-up repo with:<\/p>\n\n\n\n<p>rclone -r rclone:koofr:restic\/server init<\/p>\n\n\n\n<p>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:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>restic -r rclone:koofr:restic\/server backup \/tank\/Users<\/code><\/pre>\n\n\n\n<p>I put this in a cron job that calls a script called run-koofr.sh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/sh\n\necho '-> RUN RESTIC (KOOFR) <-'\n. \/root\/restic\/koofr.sh\n\nrestic --exclude-file=\/root\/restic\/koofr-excludes.txt --password-file \/root\/restic\/password-koofr $*\necho '-< RUN RESTIC (KOOFR) >-'<\/code><\/pre>\n\n\n\n<p>The sourced file koofr.sh just contains:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/sh\nexport RESTIC_REPOSITORY=\"rclone:koofr:restic\/server\"<\/code><\/pre>\n\n\n\n<p>I am storing the repo as an environmental variable. This was unnecessary, but I have a similar setup for B2 (Backblaze&#8217;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&#8217;t remember.<\/p>\n\n\n\n<p>This worked fairly well, except that 1TB wasn&#8217;t enough, so I had to pare back and only upload photos and a sub-set of documents.<\/p>\n\n\n\n<p>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&#8217;t fail simply because you didn&#8217;t have enough storage. And the risk of getting overcharged is minimal, size B2 is so cheap.<\/p>\n\n\n\n<p>Although, not as cheap as Koofr, if this lifetime deal pans out.<\/p>\n\n\n\n<p>* At the time of writing, I do not have an affiliate relationship with Koofr or with Stack Social.<\/p>\n<\/p><div class='wp_likes' id='wp_likes_post-1138'><a class='like' href=\"javascript:wp_likes.like(1138);\" title='' ><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/tech.poojanblog.com\/blog\/wp-content\/plugins\/wp-likes\/images\/like.png\" alt='' border='0'\/><\/a><span class='text'>Be the first to like.<\/span><div class='like' ><a href=\"javascript:wp_likes.like(1138);\">Like<\/a><\/div><div class='unlike' ><a href=\"javascript:wp_likes.unlike(1138);\">Unlike<\/a><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Koofr is a pretty good deal: it&#8217;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\u2014the prevailing discount of 40% for software during Black Friday\/Cyber Monday.* [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[10],"tags":[16,262,190,259,260,261],"class_list":["post-1138","post","type-post","status-publish","format-standard","hentry","category-unix-linux","tag-backup","tag-cloud-storage","tag-linux","tag-restic","tag-unix","tag-webdav"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/1138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/comments?post=1138"}],"version-history":[{"count":16,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/1138\/revisions"}],"predecessor-version":[{"id":1163,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/1138\/revisions\/1163"}],"wp:attachment":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/media?parent=1138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/categories?post=1138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/tags?post=1138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}