2026/8/30 11:29:41

Jellyfin 部署:三种路径从零到浏览器可访问

Jellyfin 部署:三种路径从零到浏览器可访问 Jellyfin 部署三种路径从零到浏览器可访问【免费下载链接】jellyfinThe Free Software Media System - Server Backend API项目地址: https://gitcode.com/GitHub_Trending/je/jellyfinJellyfinThe Free Software Media System是一个完全开源免费的媒体服务器后端把你分散在硬盘、NAS、旧设备上的视频、音乐、照片集中管理起来通过网络在任意终端上访问和播放没有付费墙和功能阉割。适合想把闲置设备变成家庭私有服务节点、对数据归属权有要求的用户。这篇文章给你三条部署路径容器化、包管理器/一键脚本、源码构建按顺序推荐度递减10 分钟内你能从没装过走到浏览器里能打开。 部署前检查清单硬件底线、必备运行时与端口确认部署前你只需要确认三件事机器够不够格、运行环境在不在、8096 端口空不空。硬件底线单用户日常使用双核 CPU、2GB 内存即可跑通多人同时播放且涉及转码时建议四核、8GB 起步。磁盘空间要预留两块媒体文件本身所在目录以及日志、缩略图、转码缓存会持续增长的 config 与 cache 目录建议单独给 cache 留几 GB。必备运行时.NET 10 运行时仅源码构建路径需要完整 SDKdotnet --version应返回 10.0.x容器和包管理器路径已内置运行时无需单独安装。ffmpeg媒体探测与转码的核心路径 B、C 需要系统可调用ffmpeg可执行文件容器路径由镜像自带。端口确认服务默认监听8096先确认它没被占用ss -tlnp | grep 8096 # LinuxWindows 用 netstat -ano | findstr 8096有输出说明端口被占先处理占用方或部署后在config/network.xml里修改端口再重启。 路径 A容器化部署Docker默认推荐容器路径把运行时、ffmpeg、Web 客户端都封装在镜像里是三条路径里环境最干净、升级最简单的下面以 Linux 宿主机为例macOS 换 Docker Desktop 即可。先确认 Docker 可用docker version能返回客户端与服务端版本即通过。以下命令创建一个命名容器映射配置、缓存、媒体三个目录并把 8096 端口发布到宿主机--user 1000:1000请与媒体文件属主一致否则会出现权限问题docker run -d \ --name jellyfin \ --user 1000:1000 \ -p 8096:8096 \ -v /opt/jellyfin/config:/config \ -v /opt/jellyfin/cache:/cache \ -v /your/media:/media \ --restartunless-stopped \ jellyfin/jellyfin容器启动后浏览器访问http://服务器IP:8096即进入首次配置向导。之后升级只需docker pull jellyfin/jellyfin后重建容器config 目录里的数据全部保留。 路径 B包管理器与一键脚本安装系统包路径适合希望 Jellyfin 作为常驻系统服务运行、跟着 systemd 或 Windows 服务框架管理的场景。Ubuntu / Debian官方仓库提供一键安装脚本脚本会添加 apt 源并写入jellyfin与jellyfin-web两个包curl -fsSL https://repo.jellyfin.org/deb/install-debuntu.sh | sudo bash sudo apt install jellyfin装完用 systemd 管理sudo systemctl enable --now jellyfin # 开机自启并立即启动 journalctl -u jellyfin -f # 实时跟踪日志Windows安装官方安装包后 Jellyfin 自动注册为系统服务用服务命令管理即可net start jellyfin/net stop jellyfin/net restart jellyfin。程序默认落在C:\Program Files\Jellyfin\ServerWeb 客户端静态资源在其下的jellyfin-web目录。macOS推荐直接走路径 A 的 Docker 方案若坚持原生部署用 brew 安装 ffmpeg 后走路径 C。 路径 C源码构建面向有定制需求的读者源码路径适合想改代码、打私有补丁或研究实现的读者。构建入口是 Jellyfin.Server/ 项目整个解决方案文件为Jellyfin.sln构建行为以 README.md 中的 Server Development 章节为准。编译前置条件是 .NET 10 SDK 和系统级 ffmpeg。克隆、编译三步完成git clone https://gitcode.com/GitHub_Trending/je/jellyfin cd jellyfin dotnet build运行本仓库只含服务端代码Web 客户端静态资源不包含在内运行前你需要单独准备一份 jellyfin-web 的构建产物用--webdir指向它确实不需要内置 Web 界面时加--nowebclient此时根路径会重定向到 Swagger API 文档。两种方式任选其一# 方式一dotnet run 直接跑 dotnet run --project Jellyfin.Server --webdir /abs/path/to/jellyfin-web/dist # 方式二运行构建产物可自由附加命令行参数 cd Jellyfin.Server/bin/Debug/net10.0 ./jellyfin --webdir /abs/path/to/jellyfin-web/dist # Windows 下为 jellyfin.exe⚙️ 首次启动与核心参数调优服务进程启动后会先执行数据库迁移与首次运行检测控制台出现 Startup complete 即代表就绪Web 入口固定为http://localhost:8096首次访问会自动进入向导创建管理员账号、添加媒体库目录、配置网络访问。API 文档在http://localhost:8096/api-docs/swagger/index.html。启动参数速查以下参数从命令行传入也都可以用JELLYFIN_前缀的环境变量覆盖见 Jellyfin.Server/StartupOptions.cs参数作用--datadir-d数据目录存放数据库文件等--configdir-c配置目录用户设置、图片、network.xml--cachedir-C缓存目录缩略图、转码临时文件--webdir-wWeb 客户端资源目录--logdir-l日志输出目录--ffmpeg指定 ffmpeg 可执行文件路径不走 PATH--service以无头服务模式运行--published-server-url对外公告的访问地址配反向代理时使用--restore-archive从备份归档恢复整套系统常见坑端口被占Kestrel 绑定失败是启动失败最常见原因日志里会提示 Kestrel failed to start改config/network.xml中的端口后重启。webdir 无效或为空服务器默认托管 Web 客户端若你给了--webdir但目录不存在或为空进程会直接以错误码退出不想托管就加--nowebclient。媒体文件识别不到90% 是进程用户对媒体目录无读权限其次检查扩展名是否受支持。能播放不能转码ffmpeg 没找到用--ffmpeg显式指定路径。可以继续探索的方向服务器跑通后有两个方向值得继续一是在反向代理后挂 HTTPS用--published-server-url告知客户端真实入口二是启用元数据插件自动抓取影视信息仓库内已内置若干插件见 MediaBrowser.Providers/Plugins/例如 OMDb【免费下载链接】jellyfinThe Free Software Media System - Server Backend API项目地址: https://gitcode.com/GitHub_Trending/je/jellyfin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考