Skip to content

gitdeath/media_server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 

Repository files navigation

Jellyfin Docker Swarm stack that allows for fault tollerant rffmpeg.

  NOTE: This isn't fully functioning at this time - Do not use

Host System Assumptions:

  • Intel QSV CPU
  • Debian or Ubuntu
  • Intel specific setup is followed including fixing all limitations of various kernels
    https://jellyfin.org/docs/general/administration/hardware-acceleration/intel#linux-setups
    
  • Low Power Mode is setup
    https://jellyfin.org/docs/general/administration/hardware-acceleration/intel#lp-mode-hardware-support
    
  • OpenCL is installed
    intel-opencl-icd
    
  • NFS/NFSD is installed
    sudo apt install nfs-common
    sudo apt install nfs-server
    sudo sh -c "echo 'nfsd' >> /etc/modules"
    sudo sh -c "echo 'nfs' >> /etc/modules"
    sudo modprobe nfsd nfs
    
  • Apparmor is removed
    sudo systemctl stop apparmor.service
    sudo systemctl disable apparmor.service
    sudo apt purge apparmor
    
  • Directory /transcodes exists with group ownership to users
    mkdir /transcodes
    chgrp users /transcodes  
    
  • SSD with enough space to handle transcodes
  • Docker swarm is already setup and running
  • Nodes are running a local container that allows for device mapping within swarm
    Original:
    docker run -i --restart always -d --name device-manager --privileged --cgroupns=host --pid=host --userns=host -v /sys:/host/sys -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/allfro/allfro/device-mapping-manager:latest
    
    Note: the below includes a fix that will map devices for containers already running.
    docker run -i --restart always -d --name device-manager --privileged --cgroupns=host --pid=host --userns=host -v /sys:/host/sys -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gitdeath/device-mapping-manager:master
    
  • Nodes within the swarm that meet all assumptions have a label 'transcode' with a value of '1'

Testing

dmesg | grep -iE "huc|guc|dmc"

[    1.425611] Setting dangerous option enable_guc - tainting kernel
[    1.478689] i915 0000:00:02.0: firmware: direct-loading firmware i915/kbl_dmc_ver1_04.bin
[    1.479020] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[    1.479478] i915 0000:00:02.0: firmware: direct-loading firmware i915/kbl_guc_70.1.1.bin
[    1.479582] i915 0000:00:02.0: firmware: direct-loading firmware i915/kbl_huc_4.0.0.bin
[    1.483515] i915 0000:00:02.0: [drm] GuC firmware i915/kbl_guc_70.1.1.bin version 70.1.1
[    1.483521] i915 0000:00:02.0: [drm] HuC firmware i915/kbl_huc_4.0.0.bin version 4.0.0
[    1.507042] i915 0000:00:02.0: [drm] HuC authenticated
[    1.507051] i915 0000:00:02.0: [drm] GuC submission disabled
[    1.507055] i915 0000:00:02.0: [drm] GuC SLPC disabled

About

Stack

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published