温馨提示×

centos与jellyfin的集成方案

小樊
53
2025-11-01 14:15:49
栏目: 智能运维

CentOS与Jellyfin集成方案

一、基础环境准备

在集成Jellyfin前,需完成以下系统级准备:

  • 系统更新:运行sudo yum update -y确保系统包为最新版本。
  • 依赖安装:安装Jellyfin运行必需的依赖包,命令为sudo yum install -y libicu fontconfig(部分版本需额外安装epel-releasesudo yum install -y epel-release)。
  • 防火墙配置:放行Jellyfin所需端口(默认HTTP 8096、HTTPS 8920、DLNA 1900、Bonjour/mDNS 5353),执行:
    sudo firewall-cmd --zone=public --add-port=8096/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=8920/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=1900/udp --permanent
    sudo firewall-cmd --zone=public --add-port=5353/udp --permanent
    sudo firewall-cmd --reload
    
  • SELinux调整(若启用):若系统启用SELinux,需设置允许Jellyfin访问媒体目录,例如:
    sudo chcon -Rt httpd_sys_rw_content_t /path/to/media
    

二、通过RPM包安装Jellyfin

1. 安装Jellyfin RPM包

  • 下载官方提供的RPM包(以CentOS 7为例):
    wget https://repo.jellyfin.org/releases/server/centos/stable/web/jellyfin-web-10.8.9-1.el7.noarch.rpm
    wget https://repo.jellyfin.org/releases/server/centos/stable/server/jellyfin-server-10.8.9-1.el7.x86_64.rpm
    wget https://repo.jellyfin.org/releases/server/centos/stable/server/jellyfin-10.8.9-1.el7.x86_64.rpm
    
  • 安装包(忽略依赖警告,Jellyfin会自行处理):
    rpm -Uvh --nodeps jellyfin-web-*.noarch.rpm jellyfin-server-*.x86_64.rpm jellyfin-*.x86_64.rpm
    

2. 启动与配置服务

  • 启动Jellyfin服务并设置开机自启:
    sudo systemctl start jellyfin
    sudo systemctl enable jellyfin
    
  • 验证服务状态:
    sudo systemctl status jellyfin
    

3. 访问Web界面

在浏览器中输入服务器IP地址及默认端口(http://<your_server_ip>:8096),按照向导完成初始化配置:

  • 设置管理员账号、密码;
  • 添加媒体库路径(如/movies/tvshows);
  • 配置网络设置(如DLNA、UPnP)。

三、通过Docker安装Jellyfin

1. 安装Docker

  • 安装Docker引擎:
    sudo yum install -y docker
    sudo systemctl start docker
    sudo systemctl enable docker
    

2. 拉取Jellyfin镜像

  • 获取最新版Jellyfin镜像:
    docker pull jellyfin/jellyfin:latest
    

3. 配置存储目录

  • 创建配置、缓存及媒体存储目录:
    mkdir -p /srv/jellyfin/{config,cache}
    mkdir -p /media  # 媒体文件存储路径
    

4. 运行Jellyfin容器

  • 启动容器并映射端口、挂载目录:
    docker run -d \
      --name jellyfin \
      --restart always \
      --privileged true \
      -p 8096:8096 \
      -v /srv/jellyfin/config:/config \
      -v /srv/jellyfin/cache:/cache \
      -v /media:/media \
      jellyfin/jellyfin:latest
    
    参数说明
    • --privileged true:允许容器访问硬件设备(如GPU,用于硬件加速);
    • -p 8096:8096:将容器端口映射到主机端口;
    • -v:挂载主机目录到容器,实现数据持久化。

5. 验证访问

  • 浏览器输入http://<your_server_ip>:8096,完成初始化配置(同RPM包方式)。

四、关键优化配置

1. 配置FFmpeg(转码支持)

  • 安装FFmpeg
    • 通过YUM安装(简单):
      sudo yum install -y ffmpeg ffmpeg-devel
      
    • 或下载静态编译版本(推荐,支持更多格式):
      wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
      tar -xvf ffmpeg-git-amd64-static.tar.xz
      sudo cp ffmpeg-git-*/ffmpeg /usr/bin/
      sudo cp ffmpeg-git-*/ffprobe /usr/bin/
      
  • 设置FFmpeg路径:编辑Jellyfin配置文件(/etc/jellyfin/jellyfin.conf),确认FFMPEG_PATH指向正确路径:
    FFMPEG_PATH=/usr/bin/ffmpeg
    

2. 配置硬件加速

  • 若服务器配备NVIDIA显卡,安装驱动及CUDA工具包,然后在Jellyfin Web界面“播放”→“转码”中启用“硬件加速”(如NVIDIA NVENC)。

3. 配置HTTPS(可选)

  • 使用Let’s Encrypt获取免费SSL证书:
    sudo yum install -y certbot python3-certbot-nginx
    sudo certbot --nginx -d your_domain.com
    
    按提示完成证书安装,Jellyfin会自动切换到HTTPS。

五、常见问题排查

  • 服务无法启动:检查日志journalctl -u jellyfin -xe,常见原因包括端口冲突、权限不足。
  • 无法访问媒体库:确认媒体目录权限(chown -R jellyfin:jellyfin /media)及挂载路径是否正确。
  • 转码失败:验证FFmpeg是否安装成功,或在Web界面“系统”→“日志”中查看转码错误详情。

0