In Docker

Stack config: https://github.com/one137/dockerhost-stacks/blob/main/stacks/50-jellyfin.yml

In Alpine LXC w/ video mount

💡 In separate LXC container instead of on dockerhost, in case we’d want (and succeed…) to pass the iGPU through.

Setup

First |mount the shares for Alpine on the Proxmox host (tricky).

Then in the Alpine LXC:

# In Proxmox console
 
apk update && apk add openssh && rc-update add sshd
reboot
 
# Logged in as root through ssh
 
ls -al /mnt/nas-video* # Check content of both folder
touch /mnt/nas-video/qq && rm /mnt/nas-video/qq
touch /mnt/nas-video-nfs/qq && rm /mnt/nas-video-nfs/qq
 
echo "@community <http://dl-cdn.alpinelinux.org/alpine/latest-stable/community>" >> /etc/apk/repositories
apk add vim jellyfin@community jellyfin-web@community
 
rc-update add jellyfin
rc-service jellyfin start

Jellyfin should now be accessible on http://<your_server_ip>:8096. If Swagger API instead, remove opts="--nowebclient” from /etc/conf.d/jellyfin.

Debug

In case Jellyfin crashes upon startup with error message “no such table: ActivityLog” in its logs:

  • sudo -u dockeruser vim /srv/docker/volumes/jellyfin/library/system.xml
  • Set IsStartupWizardCompleted to true
  • Restart server
  • Set it back to false