# Jellyfin - [Jellyfin](#jellyfin) - [Install](#install) - [Upgrade](#upgrade) - [Mounting Media Directory](#mounting-media-directory) They have podman rootless instructions! ## Install 1. Create the jellyfin user ```bash useradd jellyfin loginctl enable-linger $(id -u jellyfin) systemctl --user --machine=jellyfin@.host enable podman-restart systemctl --user --machine=jellyfin@.host enable --now podman.socket mkdir -p /home/jellyfin/.config/containers/systemd ``` 2. Update the jellyfin record in Caddy. 3. Open port 8096 in the firewall. 4. Copy the files to the server and start the service ```bash export PODMAN_SERVER=3dserver scp -r active/podman_jellyfin/quadlets/. $PODMAN_SERVER:/home/jellyfin/.config/containers/systemd/ ssh $PODMAN_SERVER chown -R jellyfin:jellyfin /home/jellyfin/.config/containers/systemd/ ssh $PODMAN_SERVER machinectl shell jellyfin@ systemctl --user daemon-reload systemctl --user restart jellyfin ``` ## Upgrade 1. Check [the blog](https://jellyfin.org/posts) for breaking changes 2. Update the `jellyfin.container` with the new image version 3. Update quadlets and restart the service ```bash # Upload quadlets and restart export PODMAN_SERVER=3dserver scp -r active/podman_jellyfin/quadlets/. $PODMAN_SERVER:/home/jellyfin/.config/containers/systemd/ ssh $PODMAN_SERVER chown -R jellyfin:jellyfin /home/jellyfin/.config/containers/systemd/ ssh $PODMAN_SERVER machinectl shell jellyfin@ systemctl --user daemon-reload systemctl --user restart jellyfin ``` ## 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 ```