# Jellyfin They have podman rootless instructions! ## Install ### Create jellyfin btrfs volume ```bash btrfs sub create /btrfs/jellyfin ``` Add /home/jellyfin mount to /etc/fstab ```bash systemctl daemon-reload mount -a --mkdir ``` ### Create the jellyfin user ```bash export JF_USER=jellyfin useradd $JF_USER su -l $JF_USER ssh-keygen exit cp ~/.ssh/authorized_keys /home/$JF_USER/.ssh/authorized_keys chown $JF_USER:$JF_USER /home/$JF_USER/.ssh/authorized_keys loginctl enable-linger $(id -u $JF_USER) ``` SSH into the server as jellyfin ```bash systemctl --user enable podman-restart systemctl --user enable --now podman.socket mkdir -p ~/.config/containers/systemd mkdir jellyfin-config jellyfin-cache jellyfin-media ``` ### Install jellyfin ~/.config/containers/systemd/jellyfin.container ```bash # Copy the files to the server scp -r active/podman_jellyfin/quadlets/. jellyfin:~/.config/containers/systemd/ ssh jellyfin systemctl --user daemon-reload ssh jellyfin systemctl --user start jellyfin ssh jellyfin journalctl --user -xeu jellyfin ssh jellyfin systemctl --user enable --now podman-auto-update.timer ``` Update the jellyfin record in Caddy. Open port 8096 in the firewall. ## Mounting Media Directory Update /etc/fstab with the smb disk details. Note: - `x-systemd.automount` which only mounts the device when it's accessed. - `x-systemd.mount-timeout=30` allows a 30 second timeout - `_netdev` ensures the device won't be mounted until after the network is available ```conf UUID=... /btrfs/some-name btrfs subvolid=5,compress=zstd:1,x-systemd.automount,x-systemd.mount-timeout=30,_netdev 0 0 ```