TrueNAS apps access to datasets

I have create a dataset called “plex”, and I have shared it using SMB… so I can upload content. So far so good, content uploaded.

I then install Plex, and have the media server installed, but when I go to add a media folder for Plex to scan … I go to /mnt and it is empty. None of my datasets show up.

I have tried to update permissions, so I created a group called “plex_access” (GID: 3001); and a plex user (UID: 3002). I added that group to the ACL list for the ShareACL and the FileSystem ACL, but can not access that dataset / share from within Plex.

I have even tried to redeploy the app with ownership being the plex user and group being the plex_access. This did not help either.

I can only create shares and datasets within /mnt, and also noticed that the root level permissions for /mnt are: Owner: root; Group: root with unix permissions of: root: (U) Read | Write | Execute; (G) root: Read | Execute; O: Read | Execute

There is no option to modify these permissions.

So how can I get an app like Plex to see my media I have uploaded?

Hello there. For a dataset to be used with an app, except for config datasets, permissions must include the group “builtin-users” and “apps” must be set as a user. Suggest you add the group first then go back in and add the user. I haven’t taken the risk of applying these permission changes recursively to child datasets/folders out fear of messing up the all the permissions in the dataset.

I appreciate the response. Those permissions where already been applied. As I should have before, I have enclosed screenshots.

Ok, so it will not let me attach screenshots, and it will not let me include links either in my reply. Sheeeshh… that is locked down… must have been some abusers on this forum! :frowning:

OK, so old school…

  • You can not edit the permissions of a pool, not an option, and those are owned by “root” (owner/group).
  • Verified that the “Access Control List” had:
Group - builtin_users             Allow | Full Control
User - apps                       Allow | Full Control
  • Even changed the "ACL Editor Path: /mnt/SmallMirror/plex
Owner: apps
Owner Group: builtin_users

No help, still unable to access anything in /mnt/... Nothing shows up, not even the pool names, let alone anything within.

Hey Greg,

What did you map your datasets to inside the docker container? For example, in my Jellyfin install, my host path of /mnt/cobia-raidz2/Media/Movies is mapped to just /Movies - so that’s where I tell Jellyfin to seek it out.

Posting a screenshot (I’ll give you the ability, hang tight!) of your current Apps config will likely help here.

Hmm… OK, maybe I need to do some more reading (maybe you can point me to some links?)

I realized that apps are running in a containerized solution, but was not aware that those settings could be updated. When deploying the “plex” app, do I modify the settings post deployment or pre-deployment?

You can modify the settings before or after deployment - the key piece is that the Apps won’t have access to your data unless you let them.

For example, in the Storage section of Plex (or Emby, or Jellyfin) you’ll see options for the Configuration, Cache, and maybe a Transcodes section. Those come built-in with the application, and might be set up now as an “ixVolume” or other config setting. That’s fine - but if you want to let the App see something on your pool, you’ve got to give it a “window” to “see” it.

Taking my Jellyfin as an example:

image

I’ve configured additional storage of a Host Path type (and made it Read Only for safety) which tells the app service to take a host (TrueNAS) path, and map it into the container.

The Mount Path is what the container will see. It thinks it’s running in a separate system, so we can fool it into thinking whatever we want. (Mostly.) So in there, it’s /Movies.

On my host, though, the path is /mnt/cobia-raidz2/Media/Movies - which indicates that it’s on my pool named cobia-raidz2, under a dataset path of Media/Movies

So from the perspective of Jellyfin, when it’s running, it needs to be told to look in the path /Movies:

Now, in addition to that, I need to make sure that the apps user has the ability to read (or write) to the dataset. If you create the dataset and choose the “Apps” preset, then it will auto-assign the correct permissions - but if not, you’ll need to adjust them and add the apps user with read (or write, as necessary) permissions:

image

2 Likes

That is fantastic detailed steps! THANK YOU!!!

I did not follow exactly, and went through a couple of times, before I figured out that you referring to “Additional Storage”, not the other “Plex Data Storage”, “Plex Configuration Storage”, or “Plex Transcode Storage”. So I left them as the defaults.

Now, I had already deleted and was in the middle of re-installing, since I thought I had to change those fields, only to learn that it was “Additional Storage” was what I needed to add/change. Meh, I had not configured anything yet, just playing around… so I did not lose anything.

…and of course you can add additional storage, and that was the piece I was missing, along with permissions being set correctly on all the media files themselves.

THANK YOU!! Plex now sees the media I placed in there!!
Now to play around with it!

1 Like