Media Service

ROLES media-srv, jellyfin, plex

The media service configuration is primarily handled by either "jellyfin" or "plex" roles. These applications are installed using the latest docker images and export the standard ports.

The docker-compose files for this are in /srv/jellyfin, and several volumes for the config, cache, and media are mounted there. Plex is configured similarly. The docker compose file is set to automatically pull the latest every time it is started. You can refresh the image at any time with:

$ cd /srv/jellyfin
$ docker-compose down
$ docker-compose up -d

To get a shell in a running container and look around, just exec a shell in the container id shown by docker ps.

$ docker ps    list running containers
$ docker exec -it <container-id> sh

Variables

The media_servers variable is a list of servers to install, currently limited to 'jellyfin' and 'plex'.

media_servers: [ 'jellyfin', 'plex' ]

The Jellyfin install has variables for the user/group to run under, as well as cache, config, and content volumes. Multiple content volumes can be specified.

jellyfin_user:     nas-data
jellyfin_group:    nas-data

jellyfin_cfgdir:   /vault/jellyfin/config
jellyfin_cachedir: /var/cache/jellyfin

jellyfin_volumes:
  - "/data/media:/media"

The Plex install has variables for cache, config, and a content volume. This role is currently quite basic, as Plex has changed packaging to require an account for install

plex_libdir:   /data/media
plex_cfgdir:   /vault/plex/config
plex_transdir: /var/cache/plex

Why These Packages?

I ran the Plex server on a Windows box for quite a few years, and was planning to do so on a NAS box when I discovered that they no longer let servers run completely standalone. At that point I switched to Jellyfin, so the Plex role should be seen as more of a starting point than a finished install.

Anytime Is Movie Time
The average 4K TV may actually be approaching the size of the old mall multiplex screens.