Currently I am using my Terra Master NAS to run docker and I have several docker containers running (Sonarr\Raddar king of thing). In the docker configuration I have the config stored elsewhere, obviously for when the image is updated to not lost anything, pretty standard, using"
<path on host>:/config
I am currently playing with TrueNAS as I might buy some new hardware. I am trying to figure out how TrueNAS Scale is doing the apps, it appears it just runs docker in the system and the apps are docker containers? Sort of acting like Portainer?
In the storage Config, in TrueNAS, I set the “Sonarr Config Storage” to “Host Path” and pointed it to a Dataset I created. That would be the same thing, yes? That setting is not where the app is installed, it’s where the config is stored? So if the app gets updated or I have to delete it I can point it right back to that local folder and everything is saved?
I am 99.999% sure I am right but I am just looking for confirmation.
Anyone have any other tips on installing apps? Things to set for proper install and opterations?
Exploring more and finding “Volume Mounts” in the App details confirms I am correct. For something like Sonarr\Radarr, I assume I would add “additional storage” to mount to my media?
Since Electric Eel 24.10, yes.
The apps in the included repository have some GUI features to make them easier to deploy but the underlying structure is basic Docker and you can run your own custom apps using every day containers, even using your own yaml.
That is a recommended way of doing it yes, do not use the alternative “iXvolume” as that is only for things you don’t need to retain
Correct, well config and other things that the app needs access to, like the media files for Jellyfin or similar.
There is a setting that lets you control which pool containers are installed to, but it’s a single setting for all the apps.
Yup, absolutely.
A recurring issue I see here is when someone makes a dataset and points an app to it using host paths but haven’t set the permissions up correctly, causing the app to fail. It’s probably one of the first things you should verify if a new app fails to deploy correctly. What the correct permissions are vary from app to app.
The UI shows you the UID/GID of the main app container and service, but to my knowledge not of all additional containers which might be different. E.g. postgres.
Custom app would just be adding the docker image from Docker Hub manually, right? You would install it like you would from Portainer vs the apps in TrueNAS are maintained by someone?
From various posts after DF to EE migrations who had permission issues with postgres, i remember that the build in apps, that use postgress needed permissions for user 999 for postgres, if this is also true for custom apps i don’t know
Correct. I found out myself by looking up the source on Github. My question is if this information is also somewhere available in the UI when setting up the respectve app.
I too use custom apps installed with yaml giving apps user and group 568 appropriate access. Love it. BUT I noticed the TrueNas GUI does not seem to notify when the container (plex, qbittorrent) has update. I’m I alone with this issue? As Steve Jobs would say: I’m holding it wrong ?
Yes, you either use the wizard asking you for things like repository, tag and pull policy or you use a yaml and implicitly set what container(s) you want to use there.
The official documentation is a very good starting point.
If you use the Enable ACL checkbox when setting up a host path in the app install configuration, you can add an ACL entry for any UID/GID, regardless of whether that account exists on the TrueNAS host. If the app wants 1001:1001 for some container, that user is not built in on TrueNAS, but you can still enter an ACE for 1001 and the container run-as user will have permission to access it.