I’m planning on setting up a nas/home server (primarily storage with some jellyfin and nextcloud and such mixed in) and since it is primarily for data storage I’d like to follow the data preservation rules of 3-2-1 backups. 3 copies on 2 mediums with 1 offsite - well actually I’m more trying to go for a 2-1 with 2 copies and one offsite, but that’s besides the point. Now I’m wondering how to do the offsite backup properly.

My main goal would be to have an automatic system that does full system backups at a reasonable rate (I assume daily would be a bit much considering it’s gonna be a few TB worth of HDDs which aren’t exactly fast, but maybe weekly?) and then have 2-3 of those backups offsite at once as a sort of version control, if possible.

This has two components, the local upload system and the offsite storage provider. First the local system:

What is good software to encrypt the data before/while it’s uploaded?

While I’d preferably upload the data to a provider I trust, accidents happen, and since they don’t need to access the data, I’d prefer them not being able to, maliciously or not, so what is a good way to encrypt the data before it leaves my system?

What is a good way to upload the data?

After it has been encrypted, it needs to be sent. Is there any good software that can upload backups automatically on regular intervals? Maybe something that also handles the encryption part on the way?

Then there’s the offsite storage provider. Personally I’d appreciate as many suggestions as possible, as there is of course no one size fits all, so if you’ve got good experiences with any, please do send their names. I’m basically just looking for network attached drives. I send my data to them, I leave it there and trust it stays there, and in case too many drives in my system fail for RAID-Z to handle, so 2, I’d like to be able to get the data off there after I’ve replaced my drives. That’s all I really need from them.

For reference, this is gonna be my first NAS/Server/Anything of this sort. I realize it’s mostly a regular computer and am familiar enough with Linux, so I can handle that basic stuff, but for the things you wouldn’t do with a normal computer I am quite unfamiliar, so if any questions here seem dumb, I apologize. Thank you in advance for any information!

      • huquad@lemmy.ml
        link
        fedilink
        English
        arrow-up
        7
        ·
        edit-2
        2 months ago

        My most critical data is only ~2-3TB, including backups of all my documents and family photos, so I have a 4TB ssd attached which the pi also boots from. I have ~40TB of other Linux isos that have 2-drive redundancy, but no backups. If I lose those, i can always redownload.

    • dave@lemmy.wtf
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 months ago

      using a meshVPN like tailscale or netbird would another option as well. it would allow you to use proper backup software like restic or whatever, and with tailscale on both devices, it would allow restic to be able to find the pi device even if the other person moved to a new house. (although a pi with ethernet would be preferable so all they have to do is plug it in to their new network and everything would be good. if it was a pi zero then someone would have to update the wifi password)

      • huquad@lemmy.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 months ago

        Funny you mention it. This is exactly what I do. Don’t use the relay servers for syncthing, just my tailnet for device to device networking.

  • Matt The Horwood@lemmy.horwood.cloud
    link
    fedilink
    English
    arrow-up
    22
    ·
    2 months ago

    There’s some really good options in this thread, just remember that whatever you pick. Unless you test your backups, they are as good as not existing.

    • Showroom7561@lemmy.ca
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 months ago

      How does one realistically test their backups, if they are doing the 3-2-1 backup plan?

      I validate (or whatever the term used is) my backups, once a month, and trust that it means something 😰

      • Appoxo@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 months ago

        Deploy the backup (or some part of it) to a test system. If it can boot or you can get the files back, they work.

  • doodledup@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    1
    ·
    2 months ago

    I’m just skipping that. How am I going to backup 48TB on an off-site backup?!

    • Appoxo@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      15
      ·
      2 months ago

      Only back up the essentials like photos and documents or rare media.
      Don’t care about stuff like Avengers 4K that can easily be reaquired

      • dave@lemmy.wtf
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        2 months ago

        a “poor mans” backup can be useful for things like this, movie/tv/music collections, and will only be a few MB instead of TB.

        if things go south at least you can rebuild your collection in time. obviously if theres some rare files that were hard to get then you can backup those ones, but even at that it will probably still be a small backup

      • nfreak@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        2 months ago

        This is what I’m currently doing, I use backblaze b2 for basically everything that’s not movies/shows/music/roms, along with backing up my docker stacks etc to the same external drive my media’s currently on.

        I’m looking at a few good steps to upgrade this but nothing excessive:

        • NAS for media and storing local backups
        • Regular backups of everything but media to a small USB drive
        • Get a big ass external HDD that I’ll update once a month with everything and keep in my storage unit and ditch backblaze

        Not the cleanest setup but it’ll do the job. The media backup is definitely gonna be more of a 2-1-Pray system LMAO but at least the important things will be regularly taken care of

    • Censed@lemmy.zip
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      You ought to only be 3-2-1ing you irreplaceable/essential files like personal photos, videos, and documents. Unless you’re a huge photography guy i can believe that takes up 48TB

    • ryannathans@aussie.zone
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      3
      ·
      2 months ago

      Get a tiny ITX box with a couple 20TB refurbished HDDs, stick it at a friend’s house

      • doodledup@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        2
        ·
        edit-2
        2 months ago

        In theory. But I already spent my pension for those 64TB drives (raidz2) xD. Getting off-site backup for all of that feels like such a waste of money (until you regret it). I know it isn’t a backup, but I’m praying the Raidz2 will be enough protection.

        • SayCyberOnceMore@feddit.uk
          link
          fedilink
          English
          arrow-up
          5
          ·
          2 months ago

          Just a friendly reminder that RAID is not a backup…

          Just consider if something accidentally overwrites some / all your files. This is a perfectly legit action and the checksums will happily match that new data, but your file(s) are gone…

          • doodledup@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            2 months ago

            I do weekly ZFS snapshots though and I’m very diligent on my smart tests and scrubs. I also have a UPS and a lot of power surge protection. And ECC Ram. It’s as safe as it gets. But having a backup would definitely be better, you’re right. I just can’t afford it for this much storage.

        • cwista@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 months ago

          The cost of storage is always more than double the sticker price. The hidden fee is that you need a second and maybe a third one and a system to put it all in. Most our operational lab cost is backups. I can’t replace the data if it’s lost.

    • Carol2852@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      Just recently moved from an S3 cloud provider to a storagebox. Prices are ok and sub accounts help clean things up.

  • merthyr1831@lemmy.ml
    link
    fedilink
    English
    arrow-up
    8
    ·
    2 months ago

    Rsync to a Hetzner storage box. I dont do ALL my data, just the nextcloud data. The rest is…linux ISOs… so I can redownload at my convenience.

  • Onomatopoeia@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    2 months ago

    As others have said, use tools like borg and restic.

    Shop around for cloud storage with good pricing for your use-case. Many charge for different usage patterns, like restoring data or uploading.

    Check out storj.io, I like their pricing - they charge for downloading/restore (IIRC), and I figure that’s a cost I can live with if I need to restore.

    Otherwise I keep 3 local copies of data:

    1 is live, and backed up to storj.io

    2 is mirrored from 1 every other week

    3 is mirrored from 1 every other week, opposite 2

    This works for my use-case, where I’m concerned about local failures and mistakes (and don’t trust my local stores enough to use a backup tool), but my data doesn’t change a lot in a week. If I were to lose 1 week of changes, it would be a minor issue. And I’m trusting my cloud backup to be good (I do test it quarterly, and do a single file restore test monthly).

    This isn’t an ideal (or even recommended approach), just works with the storages I currently have, and my level of trust of them.

    • qjkxbmwvz@startrek.website
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      Same — rsync to a pi 3 with a (single) ZFS drive at family’s house. Retain some daily/weekly/monthly snapshots.

      I have a (free) VPS with static IPv4 which is how I connect everything.

      Both the VPS and the remote site have limited network speed (I think 50Mbps for VPS), so the initial sync was done sneakernet (well…“airplane net”). Nightly rsync is no problem bandwidth-wise, and is mostly just any new videos I’ve uploaded to my local Immich instance.

  • irmadlad@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    1
    ·
    2 months ago

    so if any questions here seem dumb

    Not dumb. I say the same, but I have a severe inferiority complex and imposter syndrome. Most artists do.

    1 local backup 1 cloud back up 1 offsite backup to my tiny house at the lake.

    I use Synchthing.

  • I used to say restic and b2; lately, the b2 part has become more iffy, because of scuttlebutt, but for now it’s still my offsite and will remain so until and unless the situation resolves unfavorably.

    Restic is the core. It supports multiple cloud providers, making configuration and use trivial. It encrypts before sending, so the destination never has access to unencrypted blobs. It does incremental backups, and supports FUSE vfs mounting of backups, making accessing historical versions of individual files extremely easy. It’s OSS, and a single binary executable; IMHO it’s at the top of its class, commercial or OSS.

    B2 has been very good to me, and is a clear winner for this is case: writes and space are pennies a month, and it only gets more expensive if you’re doing a lot of reads. The UI is straightforward and easy to use, the API is good; if it weren’t for their recent legal and financial drama, I’d still unreservedly recommend them. As it is, you’d have you evaluate it yourself.

    • foobaz@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      I’m running the same setup, restic -> b2. Offsite I have a daily rclone job to pull (the diffs) from b2. Works perfectly, cost is < 1€ per month.

  • hendrik@palaver.p3x.de
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    2 months ago

    Next to paying for cloud storage, I know people who store an external hdd at their parent’s or with friends. I don’t do the whole backup thing for all the recorded TV shows and ripped bluerays… If my house burns down, they’re gone. But that makes the amount of data a bit more manageable. And I can replace those. I currently don’t have a good strategy. My data is somewhat scattered between my laptop, the NAS, an external hdd which is in a different room but not off-site, one cheap virtual server I pay for and critical things like the password manager are synced to the phone as well. Main thing I’m worried about is one of the mobile devices getting stolen so I focus on having that backed up to the NAS or synced to Nextcloud. But I should work on a solid strategy in case something happens to the NAS.

    I don’t think the software is a big issue. We got several good backup tools which can do incremental or full backups, schedules, encryption and whatever someone might need for backups.

  • iknowitwheniseeit@lemmynsfw.com
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 months ago

    I just use restic.

    I’m pretty sure it uses checksums to verify data on the backup target, so it doesn’t need to copy all of the data there.

  • ryannathans@aussie.zone
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    2 months ago

    I use syncthing to push data offsite encrypted and with staggered versioning, to a tiny ITX box I run at family member’s house

    • rumba@lemmy.zip
      link
      fedilink
      English
      arrow-up
      4
      ·
      2 months ago

      The best part about sync thing is that you can set it to untrusted at the target. The data all gets encrypted and is not accessible whatsoever and the other side.

      • SayCyberOnceMore@feddit.uk
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        This is exactly what I’m about to do (later this week when I visit their house)

        I’ve been using syncthing for years, but any tips for the encryption?

        I was going to use SendOnly at my end to ensure that the data at the other end is an exact mirror, but in that case, how would the restore work if it’s all encrypted?

        • rumba@lemmy.zip
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 months ago

          https://www.youtube.com/watch?v=hT373XZHNvk

          You add another node to the untrusted node (or the reinstalled current node) and let it sync back.

          alternatively there’s a decrypt command, you could go to the untrusted mode, copy the data off to a disk and decrypt it with the tool but I think that f’s up the structure.

  • WeirdGoesPro@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 months ago

    My ratchet way of doing it is Backblaze. There is a docker container that lets you run the unlimited personal plan on Linux by emulating a windows environment. They let you set an encryption key so that they can’t access your data.

    I’m sure there are a lot more professional and secure ways to do it, but my way is cheap, easy, and works.