Jellyfin 媒体服务器部署教程
1. 系统要求与准备
1.1 硬件要求
- CPU:建议至少 2 核,用于媒体转码时可能需要更强的性能。
- 内存:建议至少 2 GB。
- 存储:根据媒体库大小而定,同时需要预留空间用于元数据和转码缓存。
1.2 软件前提
- .NET 10 SDK(用于源码运行)或 .NET 运行时(仅运行)。
- FFmpeg:Jellyfin 依赖 FFmpeg 进行媒体转码和处理。
- Git(如果从源码部署)。
- 支持的平台:Windows、Linux、macOS(不支持 FreeBSD)。
2. 安装与部署方法
Jellyfin 提供了多种安装途径,推荐大多数用户使用官方安装包或Docker。
2.1 使用官方安装包(推荐)
这是最简单、最常用的方式。
下载:访问 Jellyfin 下载页面,选择您的操作系统。
Windows:
- 下载
.exe安装程序并运行。 - 安装后,Jellyfin 会作为 Windows 服务运行。
- 启动后,通过
http://localhost:8096访问 Web 界面。
- 下载
Linux:
Debian/Ubuntu:使用 APT 仓库。
1
2
3
4
5sudo apt install curl gnupg
curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/jellyfin.gpg
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
sudo apt update
sudo apt install jellyfin启动:
sudo systemctl start jellyfin并设置开机自启sudo systemctl enable jellyfin。
macOS:
- 下载
.dmg文件并安装。 - 将 Jellyfin.app 拖入 Applications 文件夹并运行。
- 下载
2.2 使用 Docker(适合容器化环境)
Docker 部署非常便捷,适合隔离运行和快速迁移。
1 | # 拉取并运行官方镜像 |
- 端口:
--net=host直接使用宿主机网络,Web UI 默认端口8096。 - 卷挂载:将配置文件、缓存、媒体库和转码目录挂载到宿主机,便于持久化。
- 用户ID:
--user 1000:1000需匹配宿主机用户权限,以避免文件权限问题。
2.3 从源码构建和运行(面向开发者)
如果您想运行开发版本或贡献代码,可以按以下步骤操作。
前提条件
- 安装 .NET 10 SDK。
- 安装 FFmpeg。
- 安装 Git。
步骤
克隆仓库:
1
2git clone https://github.com/jellyfin/jellyfin.git
cd jellyfin获取 Web 客户端(重要):
服务器需要 Web 界面文件。您需要从 jellyfin-web 仓库构建或获取已编译的文件。- 选项A:从已有的 Jellyfin 安装中复制
jellyfin-web文件夹(例如 Windows 下位于C:\Program Files\Jellyfin\Server\jellyfin-web)。 - 选项B:从源码构建 Web 客户端(参考 jellyfin-web 仓库的 README)。
- 选项A:从已有的 Jellyfin 安装中复制
运行服务器:
1
2# 指定 web 客户端目录路径运行
dotnet run --project Jellyfin.Server --webdir /path/to/jellyfin-web/dist访问:浏览器打开
http://localhost:8096进入初始设置向导。
3. 初始配置与使用
3.1 首次启动向导
- 通过浏览器访问
http://localhost:8096。 - 跟随向导设置管理员账户(用户名和密码)。
- 添加您的媒体库:选择包含电影、电视节目、音乐等媒体的文件夹。Jellyfin 会自动扫描并获取元数据。
- 设置元数据语言和首选项。
3.2 后续管理
- 管理员控制台:登录后点击右上角头像 > “管理”进入后台。
- 用户管理:创建和管理多个用户,设置访问权限。
- 插件:通过“插件”菜单安装和启用各种功能扩展(如刮削器、字幕插件等)。
- 转码设置:在“播放”设置中配置硬件加速(如果支持)和转码参数。
4. 高级配置(开发者/进阶用户)
4.1 独立托管 Web 客户端(分离前后端)
对于前端开发或特殊部署,可以分开托管 Web 客户端:
- 设置环境变量
JELLYFIN_NOWEBCONTENT=true或启动参数--nowebclient来禁用服务器托管 Web 内容。 - 然后单独运行开发中的 Web 客户端指向后端 API。
4.2 使用 Visual Studio / VS Code 调试
- 打开解决方案文件
Jellyfin.sln。 - 在 Visual Studio 中按
F5运行并调试。 - 在 VS Code 中安装推荐的 C# 扩展,然后按
F5选择调试配置启动。
4.3 运行单元测试
在仓库根目录执行:
1 | dotnet test |
5. 常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 无法访问 Web 界面 | 服务未启动或防火墙阻止 | 检查服务状态(systemctl status jellyfin),确认端口 8096 是否开放。 |
| 媒体文件不显示 | 文件夹权限不足或未正确添加媒体库 | 确保运行 Jellyfin 的用户(或 Docker 用户)有读取媒体文件的权限。 |
| 播放时卡顿/转码失败 | FFmpeg 未安装或路径不正确 | 确保 FFmpeg 已安装且 ffmpeg 命令在系统 PATH 中。在 Jellyfin 管理后台可指定 FFmpeg 路径。 |
| 安装后初始化设置页面无法加载 | Web 客户端文件缺失或未正确指定 | 确认启动命令中 --webdir 参数指向了包含 Web 客户端文件的正确文件夹。 |
| Docker 容器中文件权限错误 | 映射卷的用户 ID 与宿主机不匹配 | 使用 --user $(id -u):$(id -g) 将容器用户映射到当前宿主机用户。 |
6. 总结
Jellyfin 是一个功能强大、高度可定制的开源媒体服务器。部署它的核心路径是:
- 选择部署方式:官方安装包(推荐)、Docker 或源码。
- 完成安装:根据操作系统执行相应命令。
- 初始配置:通过 Web UI 设置管理员账户并添加媒体库。
- 日常使用:通过浏览器或客户端应用访问媒体。
对于大多数用户,建议从官方安装包或Docker开始,这两种方式最成熟、维护成本最低。成功启动后,您将拥有一个完全自主控制的家庭媒体中心。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论







