70 lines
2.0 KiB
Markdown
70 lines
2.0 KiB
Markdown
# Jellyfin
|
|
|
|
- [Jellyfin](#jellyfin)
|
|
- [Install](#install)
|
|
- [Upgrade](#upgrade)
|
|
- [Mounting Media Directory](#mounting-media-directory)
|
|
|
|
They have podman rootless instructions!
|
|
|
|
<https://jellyfin.org/docs/general/installation/container/#managing-via-systemd>
|
|
|
|
## 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
|
|
```
|