this post was submitted on 27 Jul 2023
25 points (93.1% liked)

Selfhosted

40703 readers
449 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

Hello,

I need some help with plex/jellyfin (I have the same difficulty with both.) Note that I am brand new to Linux and Self-hosting, I'm using the home media server as a cool and useful project to learn Linux before moving away from Windows as I acknowledge I have a lot to learn in Linux before considering migrating in a smooth manner.

I'm here to learn and I don't request to be spoon-fed a solution because I would ideally like to end up knowing more and be able to solve this myself next time.

Description of project: I'm trying to setup a local home media server running on 192.168, nothing fancy online.


Update


The comments below helped. My docker run was wrong and missing a source:target. Eventually I got it working and on my way also learned how to map an NTFS external drive with fstab! My media server is up and running!


Distro


Debian Bookworm

Goal


Install Plex on the Debian bookworm laptop and access music library locally

Issue


Library /home/user/media/data is seen and added to Plex but no actual files or sub-directory are then located |

Notes


Ran in docker container


How I setup plex's docker:

sudo docker run \
-d \
--name plex \
--network=host \
-e TZ="<timezone>" \
-e PLEX_CLAIM="*My claim got I got online*" \
-v /home/*user*/.config/plex/config \
-v /home/*user*/plex/transcode \
-v /home/*user*/media/data \
plexinc/pms-docker

What I have tried/noticed:

  • I tried two versions of the above, one with "config" instead of ".config" but after running the container, no folder was created. I saw the ".config" and thought it was logical to have my config files go into the existing ".config" so I tried again with the new directory. However, no plex related config exist in there?
  • I tried messing with the permissions on the directories. The data directory (/home/user/media/data) is currently on 777. If I understood permissions correctly, it means the user, every user in the group of the directory, and everyone else have read, write and execute permissions. Correct?
  • I thought maybe it was an issue with name or file format. I tried with a file named 1.mp3 and then a.mp3 but in any case, the file was not seen.
  • I found this https://trash-guides.info/Hardlinks/How-to-setup-for/Unraid/ and copied the directory setup.
  • Reinstalled from scratch
  • Reboot
  • apt update/upgrade even though I don't think it would do anything?
  • I ignored the "timezone" field in the docker run, is that bad? I'm not sure what format to input.

I'm out of ideas with my limited and new knowledge. Can you help me out? I can provide screenshots and more detailed information, just tell me what you need.

top 8 comments
sorted by: hot top controversial new old
[–] [email protected] 18 points 1 year ago (4 children)

Your volume mounts seems to be incorrect. According to Plex docker readme, the volume mounts should be like this:

-v <path/to/plex/database>:/config \
-v <path/to/transcode/temp>:/transcode \
-v <path/to/media>:/data \
[–] TwinTurbo 8 points 1 year ago

That's it! If you don't specify a host path, i.e. the path before the colon, Docker will create an volume which saves any changes you make to that path in the container, but won't mount any existing path from the host to the container.

[–] Natal 2 points 1 year ago (1 children)

Thanks, that helped.

Can I create several -v paths for different media locations or should I just move all data into the one folder mapped?

[–] [email protected] 1 points 1 year ago

That's up to you how to organize it, just do whatever thing most logical for you. I myself usually went with this setup:

  • mounted a dedicated SSD partition for docker /var/lib/docker path. That docker directory tend to grow larger and larger over time so I don't want it to suddenly fill up my root partition when I'm not looking. You may not need to do this if you plan to create just a handful of containers in your machine.
  • mounted data partitions in /var/lib/host-path. Depending on what kind of disks available in the host, I may have an SSD or HDD partition mounted inside that directory (or both, or not at all so it'll use the root partition).
  • container data directory live inside the data partitions, e.g. /var/lib/host-path/HDD/Plex. If the container requires multiple volumes, just put them as a sub directory there, e.g. /var/lib/host-path/HDD/Plex/Movies, /var/lib/host-path/HDD/Plex/configs etc.
[–] cory_lowry 2 points 1 year ago
[–] [email protected] 2 points 1 year ago

I'll add that you should consider putting the database on a SSD in a separate location for better performance and so you can make backups more easily. That's one of the benefits of docker in that you can easily make your own dir structure that suits your needs.

I use /containers/appdata/ for config data but you can use any structure you like. I wouldn't use ~/.config as that may conflict with non-container data.

[–] [email protected] 5 points 1 year ago (1 children)

Your want your media volume to link to your media folder outside of docker.

Below volume definition line is outside:inside

-v /home/user/media/data:/media

docker run -d
--name my_container
-v my_volume:/path/inside/container
image_name

[–] Natal 2 points 1 year ago

Thanks, that was the problem. I read the docs and I got it.