[Experimental] jellyfin (plex/emby if they were open source and dotNET)

FrankNAS

Contributor
Joined
Dec 3, 2017
Messages
111
---------------------------------------------------------------------------------------
DISCLAIMER:
THIS IS AN EXPERIMENTAL PORT.
DO NOT USE IN PRODUCTION.
DO NOT USE THIS AS YOUR REPLACEMENT FOR PLEX/EMBY.
THIS APPEARS TO BE MOVING TO DOTNET6, FREEBSD DOES NOT HAVE THAT
INSTALL IN NEW JAIL!
--------------------------------------------------------------------------------------
Capslock is cruise control for cool but this still requires steering so...

General overview and demo:

Installation guide for TrueNAS (or FreeBSD users that want a guide for setting up their jail and user/group):

TL;DR: txz handles everything non-jail construction related. Read guide though plz.

Known issues also covered by the troubleshooting section in the guide:
dotNET binaries pretty much require a VNET jail
libinotify has some limitations that jellyfin will hit very quickly. If you have a large library turn OFF the file monitor
 

botham2021

Cadet
Joined
Nov 28, 2021
Messages
7
Thanks for creating this guide, very useful. I've read through and followed / verified the steps, all completed successfully. I'm still unable to see anything at http://<nas-ip>:8096.

I've vnet and nat setting, was able to fetch the package from within the jail. The jellyfin process also seems to be running, and listening on the ports. If anyone has any ideas what to look at?

Code:
  PID TT  STAT    TIME COMMAND
23421  -  IJ   0:11.75 VENDOR=amd LOGNAME=jellyfin PAGER=less OSTYPE=FreeBSD MACHTYPE=x86_64 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin://bin EDITOR=vi HOST=jail-jellyfin PWD=/ GROUP=jellyfin USER=jellyfin HOME=/ HOSTTYPE=FreeBSD RC_PID=23411 SHLVL=1 /usr/local/share/jellyfinserver/jellyfin --datadir /usr/local/share/jellyfinserver/data --cachedir /usr/local/share/jellyfinserver/data/.cache


root@jail-jellyfin:~ # netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
tcp4       0      0 *.8096                 *.*                    LISTEN
udp4       0      0 *.7359                 *.*
udp4       0      0 *.14973                *.*


 

FrankNAS

Contributor
Joined
Dec 3, 2017
Messages
111
I have not tried it with NAT but without it should come up at JAILIP:8096. Are you able to test it without NAT from JAILIP instead of NASIP?
 

botham2021

Cadet
Joined
Nov 28, 2021
Messages
7
I had to turn off NAT, and turn on 'DHCP Autoconfigure IPv4'. After this, it works with jailip:8096.

Thanks for responding quickly, appreciate the help.
 

bcaruana52

Cadet
Joined
Dec 16, 2021
Messages
2
When I follow the steps for this install, it says the Package Management Tool isn't installed do you want to install it? So I install it no problem and then when it wants to instal 70 packages including the Jellyfin one and if I say no and try to install just the Jellyfin package again it wants me to install all 70 of these packages so I say yes and when it's done I continue following the above installation method all fine and the Jellyfin server starts and when I try to go to the IP nothing shows up, it just times out even tho the Jellyfin server is running. When I ping the IP it responds fine so I am unsure of why I am getting nothing when I try to go to the IP. Any ideas of what is going on? Thanks in advance.
 

bcaruana52

Cadet
Joined
Dec 16, 2021
Messages
2
It just started working so all good. I would delete the past above but I don't know how to do that
 

JacksonSabol

Cadet
Joined
Dec 30, 2021
Messages
1
I had to turn off NAT, and turn on 'DHCP Autoconfigure IPv4'. After this, it works with jailip:8096.

Thanks for responding quickly, appreciate the help.
Everything works perfectly and smoothly after following the guide and this rec about DHCP. Thanks to you both!

One quick thing I might add for any future readers who are as new to the FreeBSD ecosystem as I am, you'll want to take a couple additional setup steps to get it working. This assumes that you have created a dedicated dataset on the NAS for your media.
  • First is to set a mount point for the Jellyfin jail to point to your movies/tv shows/music/media folder on the NAS. While the Jail is stopped, in the Jails section, click Mount Points for Jellyfin. Click Actions > Add, then set the mount point to something like this, depending on the structure of your NAS filesystem: /mnt/<your-tank-name>/media -> /mnt/<your-tank-name>/<your-jail-dataset | iocage>/jails/Jellyfin/root/media
  • If you haven't already, update the permissions of your media dataset to allow the jellyfin jail user to access your media files. Go to Storage > Pools then click on the 3 dot menu of your media dataset. Click Edit Permissions, then click Add an ACL Item. If you followed @FrankNAS 's guide exactly, put User for the Who field, then put 710 for the User field. If not, you can use a Group or User with different id, and grab the id from the Shell by just typing id jellyfin. Default options are fine for the rest of the fields:
    • ACL Type: Allow
    • Permissions Type: Basic
    • Permissions: Modify (Note: you can set this to Full Control if you want to be able to delete media from the player)
    • Flags Type: Basic
    • Flags: Inherit
  • Before clicking Save on the permissions view, click the Advanced > Apply permissions recursively checkbox. This is if you have a bunch of media in the dataset dir already. If not, you can ignore this step.
  • Then you can restart the Jellyfin jail and go to http://<Jail-IP>:8096 to follow the Jellyfin wizard setup guide and successfully load existing media in your dataset, or add a new media library if yours is already setup
Hope this helps.
 
Top