Jellyfin跨平台部署:Windows/Linux/macOS全攻略
你还在为不同设备间的媒体文件同步烦恼吗?想搭建个人专属的媒体中心却被复杂的部署步骤劝退?本文将带你一站式搞定Jellyfin在Windows、Linux和macOS三大主流操作系统上的部署流程,从环境准备到服务配置,让你轻松拥有私人媒体服务器。
关于Jellyfin
Jellyfin是一款自由开源的媒体系统(Media System),让你能够集中管理和流式传输视频、音频和图片,完全掌控自己的媒体数据。与传统的商业解决方案不同,Jellyfin没有隐藏费用或功能限制,代码完全透明,确保你的隐私安全。
项目核心优势:
- 跨平台支持:Windows、Linux、macOS及多种嵌入式系统
- 丰富客户端:支持网页、手机、智能电视等多种设备访问
- 强大转码:自动适配不同设备的播放能力
- 隐私优先:所有数据存储在自己的服务器上
官方文档:README.md
部署前准备
硬件要求
| 用途 | 最低配置 | 推荐配置 |
|---|---|---|
| 个人使用 | CPU双核2.0GHz,2GB内存,50GB存储 | CPU四核2.8GHz,4GB内存,100GB SSD |
| 家庭共享 | CPU四核3.0GHz,8GB内存,500GB存储 | CPU六核3.5GHz,16GB内存,1TB SSD |
软件依赖
Jellyfin运行需要以下基础组件:
- .NET 9.0 SDK(编译源码时需要)
- ffmpeg(媒体转码必备)
Windows系统部署
方法一:安装包部署(推荐)
- 访问Jellyfin下载页面,获取最新Windows安装包
- 双击安装文件,按照向导完成安装
- 安装完成后,Jellyfin服务会自动启动
默认安装路径:C:\Program Files\Jellyfin\Server,包含Web客户端文件:C:\Program Files\Jellyfin\Server\jellyfin-web
方法二:源码编译部署
- 克隆代码仓库:
git clone https://gitcode.com/GitHub_Trending/je/jellyfin
cd jellyfin
- 构建项目:
dotnet build
cd Jellyfin.Server/bin/Debug/net9.0
- 运行服务:
jellyfin.exe
服务管理
Windows系统中,Jellyfin以Windows服务形式运行,可通过以下命令管理:
- 启动服务:
net start jellyfin - 停止服务:
net stop jellyfin - 重启服务:
net restart jellyfin
配置文件路径:C:\ProgramData\Jellyfin\config\system.xml
Linux系统部署
方法一:包管理器安装
Ubuntu/Debian系统:
# 添加官方仓库
curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash
# 安装Jellyfin
sudo apt install jellyfin
CentOS/RHEL系统:
# 添加官方仓库
sudo dnf install https://repo.jellyfin.org/jellyfin_rpm/jellyfin.repo
# 安装Jellyfin
sudo dnf install jellyfin
方法二:Docker容器部署
- 安装Docker:
sudo apt install docker.io
sudo systemctl enable --now docker
- 运行Jellyfin容器:
docker run -d \
--name jellyfin \
--user 1000:1000 \
--net=host \
-v /path/to/config:/config \
-v /path/to/cache:/cache \
-v /path/to/media:/media \
--restart=unless-stopped \
jellyfin/jellyfin
方法三:源码编译部署
- 安装依赖:
sudo apt install git dotnet-sdk-9.0 ffmpeg
- 克隆并编译代码:
git clone https://gitcode.com/GitHub_Trending/je/jellyfin
cd jellyfin
dotnet build
cd Jellyfin.Server/bin/Debug/net9.0
- 运行服务:
./jellyfin
服务配置文件:Jellyfin.Server/StartupOptions.cs
常用命令
# 启动服务
sudo systemctl start jellyfin
# 设置开机自启
sudo systemctl enable jellyfin
# 查看服务状态
sudo systemctl status jellyfin
# 查看日志
journalctl -u jellyfin -f
macOS系统部署
方法一:Docker部署(推荐)
- 安装Docker Desktop for Mac
- 打开终端,执行以下命令:
docker run -d \
--name jellyfin \
--user $(id -u):$(id -g) \
-p 8096:8096 \
-v /path/to/config:/config \
-v /path/to/cache:/cache \
-v /path/to/media:/media \
--restart=unless-stopped \
jellyfin/jellyfin
方法二:源码编译部署
- 安装依赖:
brew install dotnet-sdk ffmpeg git
- 克隆并编译代码:
git clone https://gitcode.com/GitHub_Trending/je/jellyfin
cd jellyfin
dotnet build
cd Jellyfin.Server/bin/Debug/net9.0
- 运行服务:
./jellyfin
基础配置
首次访问设置
- 打开浏览器,访问服务器地址:
http://服务器IP:8096 - 按照向导完成初始设置:
- 创建管理员账户
- 添加媒体库
- 设置网络访问
API文档可通过访问 http://服务器IP:8096/api-docs/swagger/index.html 查看。
核心配置选项
Jellyfin提供丰富的命令行参数用于自定义部署:
| 参数 | 说明 | 示例 |
|---|---|---|
| --datadir | 指定数据目录路径 | --datadir /var/jellyfin/data |
| --webdir | 指定Web客户端目录 | --webdir /opt/jellyfin-web |
| --cachedir | 指定缓存目录 | --cachedir /tmp/jellyfin |
| --nowebclient | 不托管Web客户端 | --nowebclient |
| --ffmpeg | 指定ffmpeg路径 | --ffmpeg /usr/local/bin/ffmpeg |
配置文件:Jellyfin.Server/Program.cs
常见问题解决
端口冲突
若启动时提示"地址已在使用",可修改默认端口:
- 编辑配置文件:
config/network.xml - 修改
<Port>8096</Port>为其他端口,如8097 - 重启服务
媒体文件无法识别
- 检查文件权限,确保Jellyfin用户有访问权限
- 确认文件格式受支持(参考官方文档)
- 检查文件名是否符合规范,可参考命名规则:Emby.Naming/
转码性能问题
- 确保安装了Jellyfin专用ffmpeg:
sudo apt install jellyfin-ffmpeg - 在管理界面启用硬件加速:设置 > 播放 > 硬件加速
- 降低转码质量或分辨率
高级部署选项
自定义服务配置
通过修改启动参数自定义服务行为,以Linux系统为例:
- 编辑服务文件:
sudo nano /etc/systemd/system/jellyfin.service - 修改ExecStart行添加参数:
ExecStart=/usr/bin/jellyfin --datadir /mnt/external/jellyfin/data --cachedir /dev/shm/jellyfin
- 重启服务:
sudo systemctl daemon-reload && sudo systemctl restart jellyfin
反向代理设置
推荐使用Nginx作为反向代理,实现HTTPS访问和负载均衡:
server {
listen 80;
server_name media.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name media.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8096;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
数据备份与恢复
使用内置备份功能:
# 创建备份
jellyfin --backup /path/to/backup.zip
# 恢复备份
jellyfin --restore-archive /path/to/backup.zip
备份实现代码:Jellyfin.Server.Implementations/FullSystemBackup/BackupService.cs
总结与展望
通过本文介绍的方法,你可以在Windows、Linux或macOS系统上轻松部署Jellyfin媒体服务器。根据你的使用场景选择合适的部署方式:
- 普通用户推荐使用系统原生安装包或Docker容器
- 开发者可选择源码编译方式,方便自定义功能
未来Jellyfin还将持续改进,提供更好的用户体验和更多功能。你可以通过以下方式参与项目:
- 提交Issue:报告bug或提出建议
- 贡献代码:提交Pull Request改进项目
- 翻译工作:通过Weblate参与多语言翻译
感谢阅读本文,希望它能帮助你搭建理想的个人媒体中心!如果觉得有用,请点赞收藏,以便日后查阅。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



