 Tell me here from learning systems and central launch of TrueNAS scale, there's been a lot of confusion about the applications. I've ranked a little bit in the past and some of the early ones, just how kind of broken the system was, but come all the way here to February of 2023. This system works a lot better. Matter of fact, some of the applications now don't have some of the bugs I complained about before and are able to be reinstalled without you having a bunch of data problems or having a lot of challenges in recovering that data. Now that being said, the goal of this video is to give you a framework for how the applications work and how to set them up. And we're not going to be talking as much about any specific application as video. Of course, I'm going to be using one as a demo, just use syncing because it's easy to deploy and it works perfectly fine. But I also want to make sure people are clear on why and how you map, config and map data and map shares into an application. Now the concept of the applications is TrueNAS being a NAS first as a great place to store data and the applications should be essentially ephemeral, meaning they can go away at any time. We can rebuild them. We can delete them. It doesn't matter. We don't need to back up our applications. That's a very old school and way people did things and probably for good reason, because applications were kind of intertwined with your data very frequently, especially if you think about things in the windows world, but by separating things and the way it does it with the underlying frameworks of TrueNAS is the applications can be reloaded. We just point them at the config files and we can reload them on another NAS. We only have to back up the data we care about, which is going to be the configuration or any shared data within. This simplifies things a lot because then you can rebuild apps, change them out and move things over to another systems and rebuild the apps, point them at the config file. And it's really simple to do. The problem, and this is where some of the confusion, you don't have to map any storage and you don't have to map a place for configs. Now this is really convenient for testing, but for some people, they assume that once you install the app, it's already done the under the hood parts and it has not. So if you deploy an application and just next year, yes, your way through, you're going to end up with an application that will go away along with all the data and configuration that you put into it, unless you map that storage. So that's a really important part. And it's sometimes where I think people get confused because they see it working and assume, Hey, it's on an asset, must be backed up. And that's not necessarily true. So we're going to walk you through the processes step by step for me, clean install. So let's get started. This is a fresh load of TrueNAS scale, 22.12, latest version available as of February 11th, 2023. We're going to hear to apps and we're going to hear to settings, advanced settings. One of the things you have to do in order to map the data in here is the enable host pass safety checks has to be unchecked. Now, when you uncheck this, it does come up with a warning that when you turn this off and very specifically the note down here is a little bit ominous. It says as such disconfiguration is unsupported and bug reports in which disconfiguration plays a role may be closed as a user configuration error without further investigation. Now, this is only needed to map extra data, not just mapping the configuration part of this. It's done with warning that you may not be able to get any support in reforms if you do so, because if the problem is created by this, well, you're kind of on your own. Now, the other thing I did customize here and this is going to be on a case by case basis. If the IP ranges that are in use by Kubernetes by default overlap with your network, which in my case they do, you will have to customize these as well. If they don't, and it's not a problem for you, then nothing you have to worry about. I'm going to hit save and make sure you do this before you start setting up any applications. Now let's go through the data sets and show you that there's really nothing here. We have just this pool I created and the I X applications, which is the place it chose. When you go to the applications and ask which pool you'd like to put them in. Now, you don't need to back this up. You could back this up, but there's not any easy way to restore it. So it's not that it's an impossible task. It's just not a recommended task. What we need to do is create a place to put our application data. So that's actually going to be our first step. We want to add a data set and my app data is the first one I'm going to put, because theoretically I'm going to load more than one thing. So for good housekeeping and please know, I left everything else at default. I like to create a one data set and then have it nested underneath, such as the one we're going to demo next sync thing. So to put sync thing underneath here, same thing. Everything's just generic settings. This is going to be where we store sync things data. So we have the my app data. And if we want to add another one, let's see if we're going to do something with next cloud. For example, we would then have one called next cloud. It just keeps things nice and neat. It's completely an optional step, but I like doing it this way and hit save. All right. So we have sync thing is the one we're going to demo because it's an easy app to set up, but concepts is the same for different applications. We're going to hear to apps available applications. We're going to go ahead and go to sync thing, which is down here at the bottom. I'm going to call this one sync thing one. Why not go down here? And as I mentioned, it will let you create this without actually storing the data somewhere. But of course, when you rebuild the app, it will go away. So you want to make sure you point the app at a data somewhere. So we're given to sync thing, we hit save. It's installing the catalog item. And now the app is up and running. We can go to the web portal and start customizing sync thing. We'll go here to settings, actually say yes to this. It's going to prompt me a couple of things, change our settings. And I really like the dark theme way better. We should probably put a username and password is going to bug us. So put the username and password on there, dark theme. Oh, HTTPS. Yep, hit save. It'll restart the application. It'll just use a self-signed certificate. That's fine for this use case. And, you know, now we've got it set up and we can probably delete this. I don't need this particular folder removed. Yes. So now sync thing is all set up and configured. And the configuration data has been stored in the location that we pointed at. Now let's do a trust but verify. I trust I set it there. Let's verify there's some data there. Go to the config. Yeah, here's here's all the XML data and customization that I put in there. I can probably find my username and the password I set in there. So there's the config data. If I need to look at it, we can validate it here and great. We have this data. Now that means the data is now separated from our application. So if we go here to the application and we'll look at it real quick and see it's right here and we'll just copy this to make it quick. And we delete the application. So we're just going to delete confirm. We've now purged it. Sync thing is dead and gone. Now we can validate that those customizations will come back by going here to available applications. We'll go back over here to sync thing and click install. We'll call this one sync thing to doesn't really matter what you call it. It matters where the data is. So if we go here to the enable host path, let's paste that back in save. It's going to redeploy it. Now it's deployed. We're going to go to the web portal and our customizations are all intact. It remembered all of that. Now in terms of backing up that data, we would go here to datasets and you can see the data is right here under sync thing. There's 460 kilobits data to back that up as well to use something like data protection. You could do some type of cloud sync backup task. You could do an R sync task to send it somewhere. You could do a replication task and send it to another system that's running TrueNAS. So all that data gets synced somewhere. And that's usually my preferred method to send it to another one of my TrueNAS boxes to have it replicated. I mean, yes, you could take a TrueNAS scale and replicate it even still to a TrueNAS core. So you can go back and forth to the data. I've got videos on how replication works and some of these other tasks. Link down below. Now let's cover how to map a shared storage that we want to be able to use as an SMB share, but also share with this application. The first thing you have to do is have a user and I do. So we go over here to credentials. We're going to go over here to local users. There's our user Tom that we already added. Add whichever user you'd like, though. Make sure it's not matching one of the built-in users, but hopefully your name doesn't match something that's already in the system and add that user. So user Tom has already been set up. Then we're going to go over here to data set and we want to add a data set. Now you can create another nested data set if you want. But even though my app data is here, let's create our share outside of it. So it doesn't have to be there. We'll just call it shared data. Now worth noting is don't put spaces in a name that can sometimes cause problems. We'll just call it shared data. And go down to the bottom here. And this is a very important step. Check SMB. Please do that or you will have some problems and the shares won't work properly when you get to the ACL part. Right now we're going to edit the permissions and build our ACL. So we hit edit. And we want to put the user Tom right here. The user Tom right here. Apply owner, apply group. So we have Tom, allow for control group, allow for control built-in users, built-in administrators. All this is perfectly fine. And we have to add one more. We're going to add one item and that item is going to be a user. And that user is called apps. This is a built-in user. I didn't have to create this. This is the apps user that is also with sync thing. We're going to give it full control over here. This allows the user apps, which is the user that sync thing is running as to have full control to read and write into this particular share. Now one more thing I will note and I always check these by default. I don't have any data in there. But in case you do, applying the permissions recursively saves you some headache of having some files that may have different permissions because you were monkeying with this and didn't have these set up when you added data. So we go ahead and apply it and save access control list. Once the permissions are applied, I like to go back in there and click them again and edit. I just want to make sure they all look the same and I didn't goof anything up or change a user. But I hit edit again, looks the same. Great. Now we need to go ahead and create a share. So we'll go over to share. We're going to add a share, choose our shared data again, and we'll leave it the name shared data. So name and path, they don't have to match. But I recommend they do to save yourself some headaches. So hit save, restart the service because had to enable to share. I'm doing this in Linux, but it works the same in Windows. We have the share name. We'll go to the share data folder here. Folder is empty. We got to put a few things in here. Let's just grab some random documents that I have right here. We'll copy those and we'll just paste them in. All right, we have a few documents in here. Let's go over and now map that into our app. So we go here to the application. We have syncing up and running. And this is pretty simple. We're going to go here and edit. Now this is going to vary a little bit between applications. And I say a little bit because some applications may not be able to read things in exactly the same path. But syncing has no problem reading things out of the root path provided you have the permission set. So we're going to here to mount the puddle, the shared data. And then we're going to mount this and make sure there's a slash in front of it here inside the application. It's just in route. It may have to go in different places for different applications. That's going to be on an application by application basis. But for here, we just want to mount it right here. And the external part is this host path here, shared data. And if we did everything right, we should be able to hit save. It'll rebuild the application. We go over to the web portal, add the folder and hit slash. And we see shared data because it's able to see the root there. And we'll call it that same thing here. Shared data folder labels shared data. It's going to scan it and find the seven files that we put in here. Now we're ready to start using syncing. And we have this folder that we have an SMB share on to add files to and syncing will also be able to read it and share it with other instances of syncing for synchronization. Now, I hope this video provided some clarification on how the apps work, how you can map storage within them. But please note, I use syncing as an example because it's an easy one to set up. But on each application, there may be different places where you have to put the mount points on there or different user setups. So you have to do. So hopefully this serves as a framework to get you started. Leave your thoughts and comments down below. If you find an application, it isn't working properly. Head over to the Chirinaz forums. That is where you would be reporting that of note. When you check that box, it does warn you that there may not be a lot of support for that host path mapping in there. That's going to be on an application by application basis. It does work fine with syncing as of today when I tested it. It's not something I use very often, but I wanted to give people the framework to understand how to use it. And of course, the knowledge for when you're setting these apps up, how you should validate them by putting some sample data in there, going through the rebuild process and making sure that you can delete the app and just point it back at the same folders and it works. This is a challenge I've run into in the past and why I complained about the next cloud app because in the early versions of it, next cloud wasn't working properly. If you pointed it at the same datasets that you had mapped it to when you originally set it up, it wouldn't read the configuration. As of February 11th, 2023 today, it does read that configuration and will reset itself back up. But if there's a future where an update breaks something back over to the TrueNAS forums is a great place to report that type of bug if you run into it. But I just want to make sure people don't lose data. I never liked the, well, when someone reaches out going, can I recover all the data? I didn't map any host paths. I rebuilt the application and now all my data is gone. I feel bad, but a little bit of pre-planning here and a little bit of pre-testing will go a long way to help protecting and understanding where your data is and where it lives on the TrueNAS scale application and where all that is at. All right. Once again, leave your thoughts and comments down below and thanks.