Jellyfin Forum
SOLVED: No media appears in new Jellyfin setup - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: SOLVED: No media appears in new Jellyfin setup (/t-solved-no-media-appears-in-new-jellyfin-setup)



No media appears in new Jellyfin setup - Tr33MuggeR - 2024-10-22

I have what appears to be a fully functioning Jellyfin 10.9.11 setup, complete with {Things we don't talk about, unnecessary to question - TDP}.  I'm running it with Docker on Ubuntu 24.04.1 LTS.  It's a headless server that I remote into using xRDP and xfce.

All of the latter containers are communicating perfectly, proven to myself by having .mvf movies and shows, along with some stored .mp3 music, in my Jellyfin media database.

The issue is that the Jellyfin portal shows no media, no matter how many times I scan the database, re-assign folder paths, and double-check permissions.

Every container in my docker-compose.yaml uses the same PUID:PGID, and I've performed
Code:
sudo chown -R uid:gid /media
and
Code:
sudo chown -R /jellyfin/docker-compose.yaml


In my troubleshooting, I've tried changing PUID:PGID for everything (even attempted 0:0 for fun), and changing permissions, and performing sudo chmod -R 777 on the same folders.

Nothing changes, and the logs still only say the media folders are "inaccessible or empty".


Folder structure is as follows:

-SSD
---/home/[user]/jellyfin/
------docker-compose.yaml
------[all config files]

-HDD
---/media/[user]/[drive folder]/Jellyfin/...
------/media/[movies/tv/music/books folders]


Any help would be greatly appreciated.


RE: No media appears in new Jellyfin setup - TheDreadPirate - 2024-10-22

Can you share your full docker compose for Jellyfin? Also, since you mentioned PUID and PGID, I'm assuming you're using the linuxserver image for Jellyfin?

What file system is your hard drive using? And since it is mounted in /media/[user]/[drive folder] I am assuming you allowed Linux to auto-mount this drive, correct? Consider manually mounting it in a different location since /media/[user] is protected by an ACL that is likely the reason that Jellyfin is unable to access the contents.

I wrote up a guide for doing that at the link below.

https://forum.jellyfin.org/t-mounting-local-storage-in-linux-linux-permissions-primer


RE: No media appears in new Jellyfin setup - Tr33MuggeR - 2024-10-23

(2024-10-22, 09:40 PM)TheDreadPirate Wrote: Can you share your full docker compose for Jellyfin?  Also, since you mentioned PUID and PGID, I'm assuming you're using the linuxserver image for Jellyfin?

What file system is your hard drive using?  And since it is mounted in /media/[user]/[drive folder] I am assuming you allowed Linux to auto-mount this drive, correct?  Consider manually mounting it in a different location since /media/[user] is protected by an ACL that is likely the reason that Jellyfin is unable to access the contents.

I wrote up a guide for doing that at the link below.

https://forum.jellyfin.org/t-mounting-local-storage-in-linux-linux-permissions-primer

I followed your document, which was very helpful.  The system used is ext4,and the drive is now mounted manually.  Unfortunately, I am still running into the same issue.  I probably just don't have a good enough understanding of permissions.

docker-compose.yaml:
Code:
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Americas/New_York
    volumes:
      - ./jellyfin_config:/config
      - /media/[name]/big/jellyfin/media/books
      - /media/[name]/big/jellyfin/media/movies
      - /media/[name]/big/jellyfin/media/music
      - /media/[name]/big/jellyfin/media/shows
    ports:
      - "8096:8096"
    restart: 'unless-stopped'



RE: No media appears in new Jellyfin setup - TheDreadPirate - 2024-10-23

Two things. First, the folder you mounted it in is protected by an ACL, /media/[name]. You COULD remove the ACL, but you should move it out of /media/[name] since all removable media gets mounted there. To remove the possibility of a naming collision or udisk2 (what mounts storage in that directory) could possibly re-apply the ACL.

So I strongly recommend moving your drive mount elsewhere. Even /media is fine. /media/big.

Second, you need to provide a container path for the volumes in your docker compose.

Code:
volumes:
      - ./jellyfin_config:/config
      - /media/[name]/big/jellyfin/media/books
      - /media/[name]/big/jellyfin/media/movies
      - /media/[name]/big/jellyfin/media/music
      - /media/[name]/big/jellyfin/media/shows

Should be something like this, after you've changed where it is mounted.

Code:
volumes:
      - ./jellyfin_config:/config
      - /media/big/jellyfin/media/books:/books
      - /media/big/jellyfin/media/movies:/movies
      - /media/big/jellyfin/media/music:/music
      - /media/big/jellyfin/media/shows:/shows

If you're still having issues, we can double check the permissions. Remember, from my guide, the user that runs the container needs to have, at a minimum, r-x permissions to navigate the folder structure. FOR EVERY FOLDER IN THE PATH.

A tip for Linux permissions. Noobies make it out to be too complex. It is really simple. Ask yourself two questions: 1) What am I trying to do? 2) What are the permissions for my ownership level for my current location.

For 1, the three possible answers are read, write, and executing. Some actions require more than one of these. Like "cd", as I described in my guide, requires reading and executing permissions.

For 2, the three ownership levels are "user", "group", and "other". Which are you in? What are the permissions for that ownership level? Does my ownership level have sufficient permissions for the desired action and/or target file/folder?

Also, since you are using the official jellyfin image, you don't use PUID and PGID.

Code:
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: 1000:1000   # you use this to have the container run as your user.
    environment:
      - TZ=Americas/New_York
    volumes:
      - ./jellyfin_config:/config
      - /media/big/jellyfin/media/books:/books
      - /media/big/jellyfin/media/movies:/movies
      - /media/big/jellyfin/media/music:/music
      - /media/big/jellyfin/media/shows:/shows
    ports:
      - "8096:8096"
    restart: 'unless-stopped'



RE: No media appears in new Jellyfin setup - Tr33MuggeR - 2024-10-23

(2024-10-23, 02:19 AM)TheDreadPirate Wrote: Two things.  First, the folder you mounted it in is protected by an ACL, /media/[name].  You COULD remove the ACL, but you should move it out of /media/[name] since all removable media gets mounted there.  To remove the possibility of a naming collision or udisk2 (what mounts storage in that directory) could possibly re-apply the ACL.

So I strongly recommend moving your drive mount elsewhere.  Even /media is fine.  /media/big.

Second, you need to provide a container path for the volumes in your docker compose.

Code:
    volumes:
      - ./jellyfin_config:/config
      - /media/[name]/big/jellyfin/media/books
      - /media/[name]/big/jellyfin/media/movies
      - /media/[name]/big/jellyfin/media/music
      - /media/[name]/big/jellyfin/media/shows

Should be something like this, after you've changed where it is mounted.

Code:
    volumes:
      - ./jellyfin_config:/config
      - /media/big/jellyfin/media/books:/books
      - /media/big/jellyfin/media/movies:/movies
      - /media/big/jellyfin/media/music:/music
      - /media/big/jellyfin/media/shows:/shows

If you're still having issues, we can double check the permissions.  Remember, from my guide, the user that runs the container needs to have, at a minimum, r-x permissions to navigate the folder structure.  FOR EVERY FOLDER IN THE PATH.

A tip for Linux permissions.  Noobies make it out to be too complex.  It is really simple.  Ask yourself two questions: 1) What am I trying to do? 2) What are the permissions for my ownership level for my current location.

For 1, the three possible answers are read, write, and executing.  Some actions require more than one of these.  Like "cd", as I described in my guide, requires reading and executing permissions.

For 2, the three ownership levels are "user", "group", and "other".  Which are you in?  What are the permissions for that ownership level?  Does my ownership level have sufficient permissions for the desired action and/or target file/folder?

Also, since you are using the official jellyfin image, you don't use PUID and PGID.

Code:
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: 1000:1000  # you use this to have the container run as your user.
    environment:
      - TZ=Americas/New_York
    volumes:
      - ./jellyfin_config:/config
      - /media/big/jellyfin/media/books:/books
      - /media/big/jellyfin/media/movies:/movies
      - /media/big/jellyfin/media/music:/music
      - /media/big/jellyfin/media/shows:/shows
    ports:
      - "8096:8096"
    restart: 'unless-stopped'



Ohhhhh. That makes sense.  I didn't fully understand how the /media/[user] permissions worked.

I made the changes and it works!!  Thank you so much!