如何在 Ubuntu 上安装 Jellyfin 媒体服务器

Jellyfin 是一个开源的媒体服务器软件,让你可以整理、管理和流式传输你的个人媒体收藏,比如电影、音乐、电视节目和照片,而且完全免费,没有订阅费用或数据收集的担忧。

简介

  • 媒体管理:Jellyfin 整理媒体库,自动获取元数据,提供丰富的细节,比如封面、描述和演员表。
  • 多平台访问:服务器可以在各种设备上访问,包括智能电视、手机(通过 Android/iOS 应用)、网页浏览器和流媒体设备。
  • 直播电视和 DVR:借助电视调谐器,你可以观看直播电视,甚至录制内容。
  • 注重隐私:Jellyfin 不收集用户数据,不需要在线账户,提供完全的隐私控制。
  • 开源:Jellyfin 完全开源,遵循 GPLv3 许可,没有付费墙后的特殊功能。

流行用例

  • 家庭媒体中心:创建一个媒体中心,可以访问电影、电视节目和音乐,并且可以从任何连接的设备上访问。
  • 远程访问:通过网页浏览器或支持的应用,从任何地方访问你的媒体。
  • 家庭档案:创建多个用户档案,每个都有自己的媒体偏好和家长控制。

Jellyfin 是那些想要一个完全免费且自托管的媒体流解决方案,而不牺牲隐私的用户的首选。

必要前提

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一个指向服务器 IP 的域名(可选)。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。本文将以雨云为例进行演示。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便尝试本篇文章的内容。

注册链接: https://rainyun.ivwv.site/

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

点击 云产品云服务器立即购买

image

选择距离你较近的区域,以保证低延迟。

image

选择配置。

image

选择 Ubuntu 22.04 版本。

image

最后点击 立即购买,并按照提示进行购买。购买后等待机器部署完毕,点击购买的服务器,进入管理面板,找到远程连接相关信息。

image

image

使用 PowerShell 进行远程连接。

image

输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

image

到此为止,我们的云服务器就创建好了。

开始安装

1.安装所需包

更新你的系统并安装必要的包:

apt install apt-transport-https ca-certificates gnupg curl -y

创建 keyrings 目录并添加 Jellyfin GPG 密钥:

mkdir -p /etc/apt/keyrings
curl -fsSL <https://repo.jellyfin.org/jellyfin_team.gpg.key> | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg

2.添加 Jellyfin 仓库

创建一个 Jellyfin 仓库文件:

cat <<EOF | tee /etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: <https://repo.jellyfin.org/$>( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )
Suites: $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )
Components: main
Architectures: $( dpkg --print-architecture )
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF

更新包列表:

apt update

3.安装 Jellyfin

使用以下命令安装 Jellyfin:

apt install jellyfin -y

4.验证 Jellyfin 服务

检查 Jellyfin 服务的状态:

systemctl is-enabled jellyfin
systemctl status jellyfin

5.管理 Jellyfin 服务

使用以下命令管理 Jellyfin 服务:

  • 启动 Jellyfin
systemctl start jellyfin
  • 停止 Jellyfin
systemctl stop jellyfin
  • 重启 Jellyfin
systemctl restart jellyfin

6.配置防火墙

安装 UFW 并配置它以允许必要的服务(也可以直接在云服务器Web面板中开启对应的端口):

apt install ufw -y
ufw allow OpenSSH
ufw enable
ufw allow "WWW Full"
ufw status

7.安装 Apache 和 Certbot

安装 Apache 和 Certbot 用于 SSL 配置:

apt install apache2 certbot python3-certbot-apache -y

检查 Apache 状态:

systemctl is-enabled apache2
systemctl status apache2

启用所需的 Apache 模块:

sudo a2enmod proxy proxy_http ssl proxy_wstunnel remoteip http2 headers
systemctl restart apache2

8.设置 Apache 作为反向代理

创建 Jellyfin 的 web 根目录并设置权限:

mkdir -p /var/www/html/jellyfin/public_html
chown -R www-data:www-data /var/www/html/jellyfin/public_html

使用 Certbot 为你的域名获取 SSL 证书:

certbot certonly --agree-tos --email you_email@gmail.com --no-eff-email --webroot -w /var/www/html -d your_domain

9.配置 Apache 虚拟主机

创建一个新的 Apache 虚拟主机配置:

nano /etc/apache2/sites-available/jellyfin.conf

插入以下配置,根据需要更改域名(your_domain)、SSL 证书路径和服务器 IP 地址:

<VirtualHost *:80>ServerName your_domain# Comment to prevent HTTP to HTTPS redirectRedirect permanent / https://your_domain/ErrorLog /var/log/apache2/your_domain-error.logCustomLog /var/log/apache2/your_domain-access.log combined
</VirtualHost><IfModule mod_ssl.c>
<VirtualHost *:443>ServerName your_domainDocumentRoot /var/www/html/jellyfin/public_htmlProxyPreserveHost OnProxyPass "/.well-known/" "!"RequestHeader set X-Forwarded-Proto "https"RequestHeader set X-Forwarded-Port "443"ProxyPass "/socket" "ws://0.0.0.0:8096/socket"ProxyPassReverse "/socket" "ws://0.0.0.0:8096/socket"ProxyPass "/" "http://0.0.0.0:8096/"ProxyPassReverse "/" "http://0.0.0.0:8096/"SSLEngine onSSLCertificateFile /etc/letsencrypt/live/your_domain/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/your_domain/privkey.pemProtocols h2 http/1.1SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5SSLHonorCipherOrder onSSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1ErrorLog /var/log/apache2/your_domain-error.logCustomLog /var/log/apache2/your_domain-access.log combined
</VirtualHost>
</IfModule>

10.启用 Jellyfin 站点并重启 Apache

启用 Jellyfin 站点配置:

a2ensite jellyfin.conf
apachectl configtest
systemctl restart apache2

11.访问 Jellyfin Web 界面

打开你的网页浏览器,访问你的 Jellyfin 安装的域名,比如 https://your-domain.com/。如果配置成功,你应该可以看到 Jellyfin 安装向导,然后可以继续设置你的媒体服务器。

首先,选择你的 Jellyfin 安装的默认语言,然后点击 Next

image.png

现在,为你的 Jellyfin 安装创建一个新的管理员用户。输入你的用户名和密码,然后点击 Next

image.png

对于媒体库,你可以稍后配置。点击 Next 继续。

image.png

选择你的首选语言,然后点击 Next

image.png

检查允许远程连接的选项以启用对你的 jellyfin 媒体服务器的远程访问。此外,你可以通过检查选项来启用端口映射。然后,点击 Next

image.png

如果你的配置成功,你应该得到 You’re Done! 的消息。点击 Finish 完成 jellyfin 安装。

image.png

现在,你应该被重定向到 Jellyfin 登录页面。输入你的管理员用户名和密码,然后点击 Sign In

image.png

如果一切顺利,你应该得到像这样的 Jellyfin 管理仪表板:

image.png

最后,点击 Administration 部分的 Dashboard 菜单。你应该可以看到关于你的 Jellyfin 媒体服务器安装的详细信息:

image.png

Jellyfin 现在已经成功安装在你的服务器上。通过配置 Apache 作为反向代理,你可以通过 HTTPS 安全地访问 Jellyfin。

相关链接
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTEzMTM1_?s=blog
面试鸭:https://mianshiya.com/?shareCode=sq29yv
我的博客:https://blog.ivwv.site

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472788.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构(初阶4)---循环队列详解

循环队列 1.循环队列的结构  1).逻辑模式 2.实现接口  1).初始化  2).判断空和满  3).增加  4).删除  5).找头  6).找尾 3.循环队列的特点 1.循环队列的结构 1).逻辑模式 与队列是大同小异的&#xff0c; 其中还是有一个指向队列头的head指针&#xff0c; 也有一个指向尾…

Qwen2.5-Coder-32B-Instruct Docker 部署openai接口

Qwen2.5-Coder-32B-Instruct 模型下载,国内快捷方式: conda create -n modelscope python=3.10 conda activate modelscopepip install modelscopemodelscope download --model Qwen/Qwen2.5-Coder-32B-Instruct --local_dir /ssd/xiedong/Qwen/Qwen2.5-Coder-32B-I

图形几何之美系列:二维凸包艺术赏析

“凸包是计算几何中的概念&#xff0c;凸包在多个领域中有广泛的应用&#xff0c;主要包括几何计算、图形处理、优化问题、路径规划等。” 1.前言 凸包话题包括二维凸包、三维凸包以及高维凸包。对于平面点集&#xff0c;探究如何构造可以覆盖给定点集最小的凸多边形&#xff1…

速通前端篇 —— HTML

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;速通前端 目录 HTML的介绍 如何创建HTML文件 HTML 文件基本结构 HTML常用标签 title标签 标题标签 h1-h6 段落标签 p 换行标签 b…

shell编程--永久环境变量和字符串显位

环境变量 echo $HOME 在终端输出后会显示家目录有个root变量 我们会提出个疑问为什么平时我们在终端输入sl 或者which等等命令会输出一些内容呢&#xff0c;这是因为这些命令都有对应的环境变量。 我们查看一下环境变量 在终端输入&#xff1a; echo $PATH 我们看一下输出…

Python毕业设计选题:基于django+vue的二手物品交易系统

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 店铺管理 二手物品管理 广告管理 留言反馈 订单…

Spring:bean的配置

对于bean的配置中&#xff0c;主要会讲解bean基础配置,bean的别名配置,bean的作用范围配置(重点),这三部分内容&#xff1a; bean基础配置 id与class配置 bean的name属性 bean的别名配置 bean作用范围scope配置 scope使用后续思考 介绍完scope属性以后&#xff0c;我们…

前端无感刷新token

摘要&#xff1a; Axios 无感知刷新令牌是一种在前端应用中实现自动刷新访问令牌&#xff08;access token&#xff09;的技术&#xff0c;确保用户在进行 API 请求时不会因为令牌过期而中断操作 目录概览 XMLHttpRequestAxiosFetch APIJQuni.request注意事项&#xff1a; 访问…

图形 2.6 伽马校正

伽马校正 B站视频&#xff1a;图形 2.6 伽马校正 文章目录 伽马校正颜色空间传递函数 Gamma校正校正过程为什么需要校正&#xff1f;CRT与转换函数 为什么sRGB在Gamma 0.45空间&#xff1f; 人对亮度的敏感韦伯定律中灰值 线性工作流不在线性空间下进行渲染的问题统一到线性空…

【redis】—— 环境搭建教程

上一节&#xff0c;我们大致了解了Redis的几个重要版本&#xff0c;在本教程中&#xff0c;我们选择了5.0版本&#xff0c;因为5.0已经具备了大部分的功能特性&#xff0c;并且与7.0版本相比&#xff0c;其安装使用过程更为简便。 Redis的官方并不直接支持微软的Windows操作系统…

Springboot采用jasypt加密配置

目录 前言 一、Jasypt简介 二、运用场景 三、整合Jasypt 2.1.环境配置 2.2.添加依赖 2.3.添加Jasypt配置 2.4.编写加/解密工具类 2.5.自定义加密属性前缀和后缀 2.6.防止密码泄露措施 2.61.自定义加密器 2.6.2通过环境变量指定加密盐值 总结 前言 在以往的多数项目中&#xff0…

【机器学习导引】ch6-支持向量机

参考链接 【数之道】支持向量机SVM是什么&#xff0c;八分钟直觉理解其本质 间隔与支持向量 **问题引入&#xff1a;**在样本空间中寻找一个超平面&#xff0c;将不同类别的样本分类 超平面&#xff1a;在支持向量机中&#xff0c;模型的目标是找到一个能够分开不同类别的平…

详解map与multimap容器

目录 一、map简介 1.map构成 2.map本质 3.map的优点 4.map和multimap区别&#xff1a;map不允许容器中有重复key值元素。multimap允许容器中有重复key值元素。 5.map的构建 6.map的赋值 1️⃣赋值法 2️⃣拷贝赋值法 7.map的成员函数 &#xff08;1&#xff09;inse…

PyAEDT:Ansys Electronics Desktop API 简介

在本文中&#xff0c;我将向您介绍 PyAEDT&#xff0c;这是一个 Python 库&#xff0c;旨在增强您对 Ansys Electronics Desktop 或 AEDT 的体验。PyAEDT 通过直接与 AEDT API 交互来简化脚本编写&#xff0c;从而允许在 Ansys 的电磁、热和机械求解器套件之间无缝集成。通过利…

ubuntu将firewall-config导出为.deb文件

firewall-config ubuntu是canonial 公司维护的&#xff0c;用wireshark测过&#xff0c;开机会给他们公司发遥测&#xff08;开了ufw阻塞所有连接也一样&#xff0c;canonial在里面把代码改了&#xff09;firewall-config是fedora(爱好者维护&#xff0c;公益版本)自带的防火墙…

LLMs之Code:Qwen2.5-Coder的简介、安装和使用方法、案例应用之详细攻略

LLMs之Code&#xff1a;Qwen2.5-Coder的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;这篇论文介绍了Qwen2.5-Coder系列模型&#xff0c;这是一个针对代码生成的强大开源大型语言模型。 >> 背景痛点&#xff1a;现有代码大型语言模型的不足&#xff1a;虽然…

H3C NX30Pro刷机教程-2024-11-16

H3C NX30Pro刷机教程-2024-11-16 ref: http://www.ttcoder.cn/index.php/2024/11/03/h3c-nx30pro亲测无需分区备份 路由器-新机初始化设置路由器登录密码telnet进入路由器后台 刷机上传uboot到路由器后台在Windows环境下解压后的软件包中打开 tftpd64.exe在NX30Pro环境下通过以…

FPGA使用Verilog实现CAN通信

FPGA实现CAN通信&#xff08;Verilog&#xff09; 1.作者使用的方法是通过FPGA芯片&#xff08;如Xilinx公司的型号为XC7K325TFFG676-2&#xff09;控制SJA1000T芯片&#xff08;CAN控制器芯片&#xff09;实现CAN通信&#xff0c;如下图所示&#xff1a; 2.熟悉连接方式之后&…

27-压力测试

测试目标 & 测试数据 ● 测试目标 ○ 测试集群的读写性能 / 做集群容量规划 ○ 对 ES 配置参数进行修改&#xff0c;评估优化效果 ○ 修改 Mapping 和 Setting&#xff0c;对数据建模进行优化&#xff0c;并测试评估性能改进 ○ 测试 ES 新版本&#xff0c;结合实际场…

单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)

目录 1.单元测试 实现单元测试的方法&#xff1a; 注意事项&#xff1a; 2.集成测试 需注意事项&#xff1a; 实现集成测试的方法&#xff1a; 如何实现高效且可靠的集成测试&#xff1a; 3.系统测试 实现系统测试的方法: 须知注意事项&#xff1a; 4.验收测试 实现验…