🔒 4 more in the full analysis
Searchable transcript of the BEST Home Server Backup App I've Used - ZeroByte — TechHut (17:03). Search for a phrase, then click its timestamp to jump straight to that moment in the video.
Captions sourced from the original video on YouTube, published by TechHut. The video, its captions and all related intellectual property remain the property of their respective owners; AINotes claims no ownership. Provided for research, accessibility and search — see the Transcript Notice and Copyright Policy.
00:00 So, I recently set up Duplicati in a video, and there was definitely some feedback and some really good suggestions on alternatives to that, but I want to do you something better. This is Zero Byte. It is a very new backup solution that you can run in your home lab that can do just about everything that we saw in services like Duplicati. Do note, it's early version, so do pair this with another backup solution at least until they get out of their early development stages.
00:24 If I go down here to features, you can see we have automated backups, flexible scheduling, end-to-end encryption, and multi-protocol support with a lot included by default, but then if I scroll down, they have additional support for items such as Rclone remotes right here. It's a bit more involved to set up, but they do support 40+ cloud providers via Rclone, and then of course some of these just right out of the gate.
00:49 So, what we're going to be doing in this video is setting all this up, getting some backups going, and showing you how powerful this little tool actually is. But first, we need to thank our sponsor, Floppy Data. If you're somebody who needs a proxy, whether that's residential, data center, mobile, with over 195 locations, Floppy Data is a great option for you.
01:07 For specific use cases, proxies can solve a lot of issues much better than VPNs, especially for tasks that require multiple IP addresses such as data scraping, account management, or accessing geo-restricted content without getting flagged. For example, if you're trying to do something like self-host Firebase without some of their proprietary technology, just doing it with your single residential IP address, you're probably going to run into some problems.
01:29 Floppy Data has you covered again with millions of global IP addresses, flexible proxy options, including rotating or static IP addresses, and it's cost-effective with data center proxies starting at 60 cents with a dollar per gigabyte giving you some of the best prices on the market. They have top-tier security and easy team management, so you can manage team access from one place, and they do integrate with GoLogin, the anti-detect web browser.
01:55 So, with that, I do highly recommend Floppy Data. It is a fast, performant, reliable proxy solution. So, if you're interested in Floppy Data, do go ahead and check out the first link down in the video description. So, first what I'm going to do is I'm going to get this set up on a or that Fedora machine that I set up in my previous video. So, we are just going to grab this compose file right here.
02:15 Now, I already did a video on this on the Netbird channel if you're interested in like hooking it up to offsite resources such as VPSs. So, on this one, I really dive into the REST server setup, but on this one, we're going to more focus on backing up to like a cloud provider. But REST server is really cool. I do recommend you check this out and subscribe to the Netbird channel if you haven't already.
02:36 And I am going to be doing this on Fedora server, the same server we set up in the previous video, but I already gave up on Podman and switched it out for Docker, so sorry. And what I'm going to do is I'm just going to make a new directory called Zero Byte, CD into that directory, and then make a new compose.yaml just like that. And then I'm going to drop in this compose.
02:56 Now, I have better luck with privileged true being on, but you shouldn't need that variable. Basically, what we have going on, we have the container name, I enable that. We're cap adding the assist admin, and that in the fuse is mostly for like SMB file shares, things like that. This is going to be running on the port 4096. We will quickly change the time zone to America/Los Angeles, and we want the local time.
03:23 We have the location, or at least the default location for our local directory, which is going to be right here, and then we can add more locations if we'd like to. For example, in that previous video, we made a backups folder, so if I go data/backups, I think it might be backup, and we did Zero Byte just like that. I'll just put this in a data folder within the container, and I'm going to make sure real quick that the folder is correct.
03:48 So, it is backups, just like that. I'll put that, and then all I'm going to do is a docker compose up. Uh just to make sure, I just want to jump right into the log and see it boot up, so I make sure there's no issues or anything like that, which it does look like it's good to go. So, I'm going to hit D to detach myself from that instance, and then we have welcome to Zero Byte.
04:11 So, let's go ahead and full screen this guy, and give ourselves a username, and then a password, and then we'll create the admin user, type in our password once again, and then download our recovery key, save that, back it up somewhere, and here we are. We're in. This is Zero Byte. One thing that you'll first notice that it is a absolutely beautiful piece of software.
04:34 I do like the kind of design philosophy of it. And basically, what we have going on here is first the volumes. So, this is going to be the data that you want to get backed up, and they do support a couple different protocols here, including NFS, SMB, WebDAV, and Rclone. And then we have repositories, which this one they support a little bit more. This is local, S3, Cloudflare, SFTP, REST, which again I cover in the Netbird video, and Rclone.
05:01 We have our backups here, nothing set up yet. We have some notification settings, and then our settings settings. Now, the first thing that I'm going to do is just create a backup of my image directory that's currently on my Unraid machine. I'm going to make a secondary copy of it here on this machine that has Zero Byte on it. So, kind of step two in the 1-2-3 backup methodology, in which I have two copies on two different platforms, at least locally.
05:25 So, under volumes, we're going to create a volume, and this is going to be an SMB share. This I'm going to call image, and then punch in our server IP address. So, mine's 173.10.10. Share is going to be images, and then our credentials here. And if I test the connection, you could see the connection is successful. Of course, you're going to need to have shares and all that set up, but we are good to create this volume.
05:52 So, now we could see my capacity, how much space I'm using. We're good to go. So, from there, we're going to create a repository. This one's going to be a local repository. So, I'm just going to call it local, and for here, we'll go local, and you can see it filled in the var/lib/zerobyte/repositories, but that will put it on the SD card, which isn't too big on my system.
06:13 So, I'm going to go ahead and change this, and I understand I already have something mounted, specifically under data here. That is the directory I mounted earlier, which points to the repositories in the backup directory of my spinning disk drives. So, I can hit done, and that looks good. So, let's create our repository, and then we could see all the settings.
06:31 see existing snapshots. We don't have any yet, so we'll run our first backup job. So, if I create a new backup job, first we're going to select the volume, which I only have image here. We can just call this image local backup, and for our repository, we'll select local. Backup frequency, maybe daily. Daily should be fine. Execution time, let's say 1:00 a.m., and then for our backup paths, we could see within that image share or the image share that I added, we have a bunch of stuff.
07:01 For image itself, I really only need to back up the library folder, cuz that's kind of like the raw data. It's actually kind of neatly organized. So, from there, everything else looks good. You could see we do have a ton of other options that you could go ahead and pick from, including our retention policy. The examples here are pretty good, so keep daily, I'll keep seven days a week, and then four for weekly, six for monthly, and that should really be good.
07:28 And this works just how like like snapshots would work with ZFS, where it's not going to store like copies of data. It's really only going to store the changes, so it's really efficient when it comes to actual storage capacity and how much it uses. So, let's go ahead and click on create, and there we go. We're good. We're good to go. It's enabled. And just to go ahead and start it, we can run a backup now, and there is a lot of data, so it's actually running.
07:51 This might not have been the best idea, but you could see it's going. It's got a lot of files, a lot of storage, but it is going relatively quick. It's going about as quick as a 1 gig NIC is going to do, at least on my network. But I'll go ahead and stop that backup, and we'll dive more into those after we set up Rclone. And at least this step of the process is going to be kind of new territory for me.
08:12 I haven't personally set this up yet. So, now we're going to be doing this together. Hopefully it works. If you're watching this video, it did. Right here, using Rclone for storage. I did mention in my previous Duplicati video that I have the misfortune of paying for a Google Workspace subscription. I never used the Drive functionality because I don't like to have my data there, but if it's encrypted and broken up, and the providers really don't actually have control of the data or can use it for their own purposes, I
08:43 don't mind uploading some things to the cloud, especially things that are really important, as long as they're encrypted. What we're going to want to do is install Rclone. We have a little curl script here. So, let's just run it. Actually, let's go do this in my home directory, and drop it on in. And I'm going to get rid of sudo bash. I just kind of want to skim the SH file, which I highly recommend because it's never a good idea just to run a random SH script that you copy-paste from the internet, and this one looks
09:13 pretty good. So, I'm going to paste that in again, and actually run it. There we go. Wasn't really cooperating, so I had to run a sudo SH and point it to the downloaded file after I ran wget. So, do note that. From there, we're going to go to the Rclone config, drop that on in, and now we're going to set up a new remote. So, let's hit N, continue. I could call this GDrive, enter, and now look at that.
09:35 We got a bunch of different options. So, we're going to find a Google Drive somewhere. Ah, there it is, number 22. So, let's hit enter. I am going to go to the Google Cloud Console, and under APIs and Services, you can see I'm already in a project here called Automations. Just so I go through the entire thing, I could do a new project, call it GDrive backup, and create that.
10:04 There we go. Make sure we have the right project selected. And then under clients, we could click get started here. Application type, this is going to be web, Rclone web, something like that. So from there, let's go to make sure we have the drive API. So Google Drive API, within GDrive backup, we'll enable it. There we go. And now let's go over to I believe it's credentials.
10:26 So credentials right here. Let's create a credential, and we're going to need the OAuth client ID. So here, we're going to select desktop app, and this will just be my uh Rclone client, and then hit create, and then there we go. We got some stuff. So I'm going to grab my client ID. Uh under OAuth, we'll go audience. I'm going to publish the app, confirm, and then drop that in right here.
10:54 Hit enter. And then we'll grab the client secret, drop that in right here, and hit enter. I am going to give it full access. And now here, I think we could just leave this empty, and we are not going to edit the advanced config. For this option right here, I can't really access my browser, so we are going to say no. I'm going to copy this string here.
11:13 So let's give that a copy. Um and let's open a new tab, and I'm just going to do brew install Rclone. See if that's just already in there for us. So we're going to need to run this on a local machine. Good. And from there, we'll paste this on in, and look at that, it opened up the web browser for us. So if I click on this, theoretically, everything should work.
11:37 Success, you're done. Please go back to Rclone. Paste the following on the remote machine. So I'm going to grab this, copy, and then drop her on in here. So hit enter. Uh this is not a shared drive, and yes, we'll keep it. And there we go. Well, I think we're rocking and rolling. So let's go ahead and quit out of there. Now if we go back to ZeroByte here, and let's see if we just create a new repository.
12:00 Oh, it's still not showing. We need to add the Rclone configuration to ZeroByte. So we're going to CD into ZeroByte, nano that compose file, and drop her on into the volumes, just like that. Looking good. So let's control O to output that, and then restart the container. So let's docker compose down, and then compose up. And now, if I go in here, let's give this a refresh.
12:29 If I select my back-end, well, what do we have there? We have Rclone, and we should have GDrive right there. And within drive, you can see I have my duplicati folder, but I'm going to make a new folder. Let's go folder. I'm going to call this one ZeroByte, and click on create. So now, I should be able to just go ZeroByte right here, and all of this looks good.
12:52 I'm going to call this um Google Drive, and then create that repo. Hopefully, hopefully, it works. It's thinking about it. Hey, repository successfully created. Let's uh let's test this out, shall we? So for that, let's go ahead and create a new backup, and I'm going to call this um image offsite. We'll select Google Drive as our repository, and might as well have it do it daily, with kind of some of the same stuff.
13:19 I'll go a little little later on this one. Select our library, and then change some of the retention policy stuff. So let's do seven, four, six, and then we can create. So there we go, it's created. Let's start the backup and see if it works. And it looks like it's in progress, it's got some things moving. If I go over here and open up my ZeroByte folder, yay!
13:44 It worked. And now what I'm going to do is show you how to actually restore some of this data. So we have our backups right here. We see image local and the offsite. So I'm going to open up this local one cuz it is completed, or completed the first backup. And I could actually go down and view the snapshot just by clicking on it, and then I could go right into the file browser here if I would like to, and skim and see what's actually in there.
14:09 Or if I go ahead and click on the restore, I can do this. So if I go like library, for example, admin, and let's just say this picture right here. And then what we would do is change the location, so you can back up directly to the original location, or if I picked custom location, we can change this, and we could throw it somewhere else if we would like to.
14:29 And then that backup will be dropped in. Now we do have some notifications and mirrored repositories here. First for notifications, if I add a notification, you can see I've already added a way to get notifications with Slack. So that's under here notifications, we have the notification types or locations. For the Slack one, all you need really is a webhook URL, give it a username, and you're good to go.
14:54 Most people use Discord and all that, of course, but you can see here I tested it out. Test notification, it's working completely fine. And if I go back to notifications, create a destination, you could see the types. So you have email, Slack, Discord, um Telegram, and some others right there. So if I went to backups, to this image local one, let's add a notification for Slack, and we will do success and start.
15:21 Actually, I don't care if it starts, I just care if it succeeds. So I would save that, and then I would get notified in that regard. And just to give an example, if I did backup now, starting the backup process, and then you can see the backup has completed successfully right there on Slack, or whatever notification platform that you want to use. I'm not a a fan of Slack, I just have to use it for a couple different things, so I already have it open all the time, might as well set things up there.
15:49 And then, down here, we have mirror repositories. This is really cool. This will kind of help you do the uh 3-2-1 situation, which actually, if I have image local backup and image offsite, with mirrors, I shouldn't even really need to have two separate backup jobs, cuz I could just drop it in local, and yeah. So that's really cool. I didn't notice that before, so this might be a new feature since last time I uh tried around it and played with this in the uh Netbird video.
16:19 So I'm definitely going to rethink or redo how I do this. But anyways, this is a phenomenal tool. I do recommend you go and check it out. So far, it's working so good, or at least everything's working for me. Now, again, this is incredibly early development software, so I wouldn't count on using this as your sole and only backup solution, at least as of now.
16:40 This application is definitely going places. The developer seems like he's passionate, loves the project, it's open source, so I think as time goes on, this will get more and more reliable as more and more features are added. I am looking forward to it. And really, with all that, I do hope you have an absolutely beautiful day. Please subscribe so you don't miss my future videos. And goodbye.