TrueNAS SCALE
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
Jellyfin 可安装在 iX-systems 的 TrueNAS SCALE 系统上。
本文档适用于 TrueNAS SCALE v24.10.0 (Electric Eel) 或更高版本。
如果您此前未在系统中配置过应用,建议查阅 TrueNAS 应用文档。
- 注意:TrueNAS CORE 与 TrueNAS SCALE 是不同的系统。Jellyfin 不支持在 TrueNAS CORE 上运行。
准备工作
TrueNAS SCALE 支持通过 Docker 运行应用程序。
在 TrueNAS SCALE 服务器上安装 Jellyfin 有两种官方支持的方式:
-
自定义应用
-
ix-systems 提供的社区第三方应用
两种方法均使用 Jellyfin 官方提供的 Docker 镜像。 本文将涵盖这两种 安装方式。
您可以在应用部署完成后随时配置环境变量。
建议将 TrueNAS SCALE 应用系统设置在由 SSD 组成的存储池上。
数据集与 Jellyfin
官方 Jellyfin Docker 镜像在容器内部会自动创建以下必需目录:
-
cache(缓存)
-
config(配置)
-
cache/transcodes(转码缓存)
若使用社区应用,您可在安装过程中允许 SCALE 自动为 Jellyfin 创建所需的数据集。 您也可选择创建静态的 transcodes 数据集,或使用磁盘临时存储或内存(系统 RAM)进行转码。
- 注意:使用 RAM 进行转码可能存在问题,因为转码会占用大量空间。若 RAM 中没有足够内存进行转码,转码过程将失败。建议将转码目录放置在具有充足可用空间的驱动器上以避免此问题。考虑使用 SSD 替代 HDD 以防止性能下降。
您也可创建自定义数据集,在安装过程的 存储配置 环节将其作为 host paths 使用。
您可将数据集组织为父数据集加子数据集的形式,例如 /mnt/tank/jellyfin/config、/mnt/tank/jellyfin/cache 等。
使用 Docker 时,只要将这些数据集以正确的名称挂载到容器,您可以自由组织目录结构。
建议将 Jellyfin 的配置目录设置在可访问的数据集上。 这将便于您备份/恢复服务 器。
同时建议将 Jellyfin 的配置和缓存数据存放在 SSD 存储池的数据集上。
用户与权限
您可在设置 Jellyfin 时指定运行容器的用户和组。 若需使用默认应用用户/组(568)以外的身份运行,请立即创建相应用户/组。
请确保您的数据集已设置适当权限,以允许 Jellyfin 容器用户访问。
以自定义应用方式安装
使用 YAML
进入 SCALE 的「应用」版块。

点击页面右上角的 Discover Apps 按钮,这将带您进入社区应用商店。

在该页面中,点击右上角的三点菜单,然后选择 Install via YAML。
- 注意:您也可以使用 SCALE 的引导式应用启动器 GUI 安装自定义应用。请参考安装社区应用的步骤,因为布局大致相同。
- 如果选择此方法,您的 Jellyfin 容器最终只能通过此 GUI 进行编辑。如果您希望之后能够访问 Compose YAML 编辑器,则需要使用 YAML 选项启动容器。
- 根据您在引导式 GUI 中选择的设置,您可能需要将 Jellyfin 的镜像拉取到 SCALE 服务器上。
- 对于 Repository(仓库)字段,只需输入
jellyfin/jellyfin。然后指定要从 Docker Hub 拉取的 Tag(版本)。 - 有关 SCALE 上的容器镜像的更多信息,请参见此处
- 对于 Repository(仓库)字段,只需输入
页面右侧将打开一个选项卡,您可以在其中使用 Docker Compose 文件启动自定义应用。
Compose YAML 文件

在此处为自定义应用命名,并编写/粘贴您的 compose 文件内容。
请参阅使用 Docker Compose 运行 Jellyfin 的文档。或者,这里有一个基本的 compose 文件示例,您应编辑其中的卷(volumes)以匹配您的系统,然后将其复制并粘贴到编辑器中以启动 Jellyfin:
services:
jellyfin:
container_name: jellyfin
image: ghcr.io/jellyfin/jellyfin:latest
user: '568:568'
# group_add:
# - '107'
# devices:
# - /dev/dri/renderD128:/dev/dri/renderD128
# - /dev/dri/card0:/dev/dri/card0
environment:
- TZ=America/Los_Angeles
network_mode: bridge
ports:
- 8096:8096/tcp
# cpus: '8' # optional
# mem_limit: 16G # optional
restart: unless-stopped
volumes:
- /mnt/path/to/config:/config:rw
- /mnt/path/to/cache:/cache:rw
# rw = read & write
# ro = read only
-
请记住在您的 compose 文件中将媒体数据集添加为额外的卷,以便容器可以访问它们。
-
您设置的用户和组仅用于运行容器,不会用于创建 Jellyfin 账户。
-
请确保每个选项的缩进正确。Compose 文件使用缩进来正确解析选项。
-
您可以在 Wikipedia 上查找您所在地区的时区标识符。
-
请注意,以
#开头的行表示注释。在删除该符号之前,这些行不会生效。 -
如果您拥有 GPU 并希望使用硬件加速,请取消
group_add和devices选项的注释。- 如果您拥有 NVIDIA GPU,请阅读此部分。
- 除非您将容器设置为以 root 用户运行,否则需要使用
group_add将渲染组的 ID 添加到容器中。 - 如果渲染组的 ID 并非在所有 SCALE 服务器上默认为
107,请前往系统 shell 并运行以下命令以获取您的渲染组 ID:cat /etc/group | grep render
-
如果可能,还应配置 Jellyfin 的自动发现端口。查看更多信息
Docker Compose Options
| Option | Usage | Description |
|---|---|---|
| container_name | "jellyfin" | The name of your Docker container. |
| image | ghcr.io/jellyfin/jellyfin:latest | The Docker image to use for the container. |
| user | 'UID:GID' | The user:group IDs of the user that will run the container. |
| group_add | GID | ID of additional group to add. |
| devices | <host-path>:<container-path> | Devices (ex. GPU) to pass into the container. |
| environment | TZ=<timezone-name> | Environment variables that affect the container. You can set variables here such as TZ for declaring a time zone. See more environment configs here. |
| network_mode | bridge, host | Network mode to use for the container. If set to host, remove your forwarded ports. |
| ports | host-port:container-port | Forward the host port to the container port. Refer to the TrueNAS default port list for a list of assigned port numbers. |
| cpus | '#' | Assign # amount of CPU threads to the container. You can't assign more threads than there exists on the installed CPU. |
| mem_limit | #G | Limit memory usage by the container. Can also specify different units: K=KB, M=MB, G=GB |
| restart | no, always, failure, unless-stopped | Declare how to handle automatic container restarts. |
| volumes | /mnt/tank/jellyfin/my-config-dataset:/config:rw | Host mount paths on the host system onto the container |

安装完成后,您将返回到主应用屏幕。在此处,您可以查看 Jellyfin 容器的状态,以及编辑用于启动它的现有 compose 文件,以便为容器添加更多配置。
- TrueNAS SCALE 的 YAML 界面会重新排列并删除您 YAML 文件中的所有注释。
一旦 Jellyfin 容器的状态图标在 UI 上变为绿色的 Running 图标,即表示您的 Jellyfin 服务器已启动并运行。
现在您可以通过本地网络中的网页浏览器访问 Jellyfin 服务器,使用 SCALE 服务器的 IP 地址和您为 Jellyfin 设置的端口号(默认 HTTP 端口为 8096)。如果使用之前的 compose 文件示例且服务器 IP 地址为 192.168.1.10,则应在浏览器中使用此 URL:http://192.168.1.10:8096

在浏览器中访问您的服务器后,您便进入了 Jellyfin 服务器环境。请按照首次设置向导完成服务 器配置。您也可以查阅 Jellyfin 文档获取更多帮助。
为自定义应用添加 Jellyfin 徽标
在 SCALE 上安装自定义应用时,应用会显示通用的 SCALE 图标而非官方徽标。
您可通过以下步骤恢复 Jellyfin 徽标:
-
进入系统 shell
-
使用以下命令切换至 root 权限(以访问 Docker 应用文件夹):
sudo -i -
导航至应用配置目录(目录名称应与编辑 YAML 文件时指定的 Jellyfin 容器名一致):
cd /mnt/.ix-apps/app_configs/jellyfin/ -
使用 VIM 编辑 metadata.yaml 文件:
vim metadata.yaml -
输入
i进入插入模式,将光标移至host_mounts: []末尾,按ENTER键新建一行 -
添加两个空格使光标与元数据选项对齐,写入此行:
icon: https://media.sys.truenas.net/apps/jellyfin/icons/icon.svg -
按
ESC退出插入模式,输入:wq后按ENTER保存并退出
- 注意:
- SCALE Shell 中可使用
SHIFT + INSERT粘贴内容 - 在 vim 中可通过按下
ESC后输入:q!强制退出而不保存
- SCALE Shell 中可使用
文件内容此时应如下所示:
custom_app: true
human_version: 1.0.0_custom
metadata:
app_version: custom
capabilities: []
description: This is a custom app where user can use his/her own docker compose
file for deploying services
home: ''
host_mounts: []
icon: https://media.sys.truenas.net/apps/jellyfin/icons/icon.svg
maintainers: []
name: custom-app
run_as_context: []
sources: []
title: Custom App
train: stable
version: 1.0.0
migrated: false
notes: null
portals: {}
version: 1.0.0
完成后,前往应用页面找到该自定义应用。在应用信息中打开编辑选项,点击底部的保存按钮。此操作将使用 Jellyfin 徽标更新自定义应用的图标。
通过 SCALE 社区应用安装
安装 Jellyfin 应用时,请进入应用 > 发现应用,在搜索框中输入 Jellyfin 或向下滚动查找 Jellyfin 应用小部件。若结果中未显示 Jellyfin 应用,请点击"刷新目录"。

点击小部件打开 Jellyfin 应用详情界面。

点击安装打开 Jellyfin 应用配置界面。
应用配置设置分为多个部分(下文将详细说明)。查找特定字段时,可在搜索输入框中检索,或通过右上角导航区域跳转到对应章节。

应用名称设置
接受默认值或在应用名称字段中输入新名称。多数情况下使用默认名称即可,但部署第二个应用实例时必须更改此名称。
在 版本 字段接受默认版本号。当有新版本可用时,应用会显示更新标记。已安装应用 界面会显示应用更新选项。
Jellyfin 配置设置
可接受 Jellyfin 配置 中的默认设置,或输入您需要的自定义配置。
可为 UDP 自动发现功能输入 已发布服务器 URL,或留空。
如需定义 额外环境变量,请点击 添加,选项参考配置文档。
用户与组设置
可接受 用户 ID 和 组 ID 的默认值 568 (apps),或自定义设置。

此用户和组仅用于运行 Jellyfin 容器,不可用于登录 Jellyfin Web 界面。请通过 Jellyfin 初始化向导创建管理员用户访问 UI。
网络设置
若使用 DLNA,请在 网络配置 下选择 主机网络 以绑定主机网络设置。否则请勿勾选 主机网络。

可接受 WebUI 端口 的默认值 30013。
可更改为 8096 端口。多数 Jellyfin 客户端内置的扫描功能默认检测 8096 端口。
端口分配列表请参考 TrueNAS 默认端口文档。