https://community-scripts.github.io/ProxmoxVE/scripts?id=jellyfin
This is the way I'd imagine. I used this for Plex and this should make iGPU a lot easier.
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:
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
No spam posting.
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.
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
https://community-scripts.github.io/ProxmoxVE/scripts?id=jellyfin
This is the way I'd imagine. I used this for Plex and this should make iGPU a lot easier.
I run jellyfin on an LXC, so first get jellyfin installed personally I would separate jellyfin and your other docker containers, I have a separate VM for my podman containers. I need jellyfin up 100% of the time so that's why its separate.
Work on the first problem, getting jellydin installed I wouldn't use docker, just follow the steps for installing it on Ubuntu directly.
Second, to get the unprivileged lxc to work with your nas share follow this forum post: https://forum.proxmox.com/threads/tutorial-unprivileged-lxcs-mount-cifs-shares.101795/
Thirdly, read through the jellyfin docs for hardware acceleration. Its always best practice to not just run scripts blindly on your machine.
Lastly take a break if you can't figure it out, when I'm stuck I always need to take a day and just think stuff over and I usually figure out why its not working by just doing that.
If you need any help let me know!
So I got Jellyfin running last night as an unprivileged LXC using a community script. It's accessible via web browser, and I could connect my NAS. Now I'm having NAS-server connection issues and "fatal player" issues on certain items. I appreciate the support, I'm going to need a lot of it haha
This is most likely because of encoding. Did you change any settings in jellyfin for hardware acceleration? Have you passed theough your GPU? You will need to find out what codecs your GPU supports and enable those in the jellyfin hardware encoding spot.
I tried taking a screenshot of the full page to show you, but yes it's set to QSV and /dev/dri/renderD128. I've tried QSV and VAAPI with similar results, I'm sticking with QSV for now as it's Jellyfin's official recommendation. I've enabled decoding for H264, HEVC, VP9, and AVI. I've enabled hardware encoding for H264 and HEVC. If I disable transoding completely it works fine, but some of the streaming devices need 720p functionality (ideally to transcode down to 4:3 480i).
curl doesn't work on my machine, most install scripts don't work, nano edits crash, and mounts are inconsistent.
If your system is that fucked, I would wipe it and start over. And don't run any scripts or extra setup guides, they're not necessary.
Personally I run all my containers in a Debian VM because I haven't bothered migrating them to anything proxmox native. But gpu accel should work fine if you follow the directions from jellyfin: https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/
Just make sure you follow the part about doing it in docker.
It may be better now but I’ve always had problems with Docker in LXC containers; I think this has to do with my storage backend (Ceph) and the fact that LXC is a pain to use with network mounts (NFS or SMB); I’ve had to use bind mounts and run privileged LXCs for anything I needed external storage for.
Proxmox is about managing VMs and LXCs. I’d just create a VM and do all your docker in there. Perhaps make a second VM so you can shuffle containers around while doing upgrades.
If you plan to have your whole setup be exclusively Docker and you have no need for VMs or LXCs, then Proxmox might be a bunch of overhead you don’t need.
I use the LXCs for simple stuff that does a bare-metal type install within them, and I use the VMs for critical services like OPNSense firewall/routers. I also have a Proxmox cluster across three machines so I can live-migrate VMs during upgrades and prevent almost any downtime. For that use case it’s rock solid. It’s a great product and it offers a lot.
If you just need a single machine and only Docker, it’s probably overkill.
How should Jellyfin be set up, lxc or vm
Either way. I prefer lxc, personally, but to each their own. lxc I think is drastically easier, in part because you don't need to pass through the whole GPU....
Is there a way to enable iGPU to pass to an lxc or VM without editing a .conf in nano?
You don't need to pass the igpu, you just need to give the LXC access to render and video groups, but yes, editing the conf is easiest. I originally wrote out a bunch here, then remembered there is a great video.
https://www.youtube.com/watch?v=0ZDr5h52OOE
My Synology NAS is mounted to the host, but making mount points to the lxc doesn’t actually connect data
Do they show up as resources? I add my mount points at the CLI personally, this is the best way imo:
pct set 100 -mp0 /mnt/pve/NAS/media,mp=/media
This is done from the host, not inside the LXC.
Does your host see the mounted NAS? After you added the mount point, did you fully stop the container and start it up again?
Edit: You can just install curl/wget/etc BTW, its just Debian in there.
apt install curl
Edit 2: I must have glossed over the mount part.
Dont add your network storage manually, do it through proxmox as storage, by going to Datacenter > Storage > Add, and enter the details there. This will make things a lot easier.