使用 Docker 安装 Jellyfin 媒体服务器

本贴最后更新于 1612 天前,其中的信息可能已经东海扬尘

1 前言

随手浏览简书时,翻到一篇文章《服务器指北 - 有了服务器之后可以做点什么》,我平时就喜欢在家里搞东搞西,这标题正对胃口。毫不犹豫的点进去看看有什么新东西能用在家里的山寨服务器上。果然没让我失望,里面提到一个影音管理系统叫做 jellyfin,从之前的 emby fork 而来,由于 emby 闭源了,大家就在这基础上分支出了 Jellyfin。

特性嘛?

  • 用户体验方面,据说可以便携地管理自己的电影和番剧,可以自动识别和添加相关的信息,这个肯定是爽的了,免得家里那只完全没有脑细胞也不爱学习的猫咪总是叫唤着我搞得各种东西不好玩,不靠谱。
  • 搭建成本方面,据说可以配合云存储,那我想本地存储肯定也是支持的了,家里的影音站下载部分已经使用小米 mini 路由 + 可休眠硬盘盒方案了,缺一个播放 UI,一直用 smb 共享路径来播放,jellyfin 刚刚好填补了这个空白,没有附加成本,只有搭建 jellyfin 自己的成本,不错。
  • 搭建方式方面,jellyfin 支持 docker 安装,我一直对 docker 兴趣十足又没有亲手撸过。经过了这么多年,docker 的各种应用场景和生态渐渐的成熟起来了,使用 docker 镜像搭建服务越来越简单便捷,正好可以借机在家里搭建第一个 docker 服务。

话不多说,让我们直奔主题吧。

2 准备

我的家庭 nas 服务器系统的版本是 ubuntu16.04,是用一个 acer 旧笔记本改的,原来的硬盘容量已经很小了,只能用来跑系统,存储全部使用外挂方式,用来存储自己的本地资料以及搭建云盘和云笔记的数据资料,影音文件也在其中。
我选择搭建 docker 版 jellyfin,影音库直接挂到外存中的影音文件夹,不需要对原有资料路径做任何变动。

3 动手干

3.1 安装 docker

  • 添加 Docker 软件源
apt-get update

apt-get install apt-transport-https ca-certificates  curl software-properties-common

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" 
  • 安装 Docker CE(社区版)
sudo apt-get update -y
sudo apt-get install docker-ce -y 
  • 设置开机启动
sudo systemctl enable docker
sudo systemctl start docker 
  • 测试 docker
docker run hello-world

当看到这段文字时,说明 docker 安装成功了。

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

至此,Docker 安装最简版,完成。没有像其他文章提到的配置镜像站,也没有分配用户权限。没分配用户权限不是好的示范,不提倡学习,但是我这边自家内网使用,一切从简。
下面开始使用 docker 来搭建本文的主角——Jellyfin 服务。

3.2 拉取 Jellyfin 的 docker 镜像

docker pull jellyfin/jellyfin

然而我并不是这样做的。因为懒,直接 docker 安装了。

  • 这是安装命令
docker run -d -p 8096:8096 -v /jellyfin/config:/config -v /media/ivy/新加卷/影音视频:/media jellyfin/jellyfin

上面的参数中需要说明的是:

  1. -p 后面是 jellyfin 服务的端口号,安装时可以指定,这里使用默认的 8096;
  2. -v 后面是指定的配置路径,比如/media/ivy/新加卷/影音视频就是我原来的影音物理路径,/media 就是 jellyfin 的映射路径

docker 会自动拉取镜像完成安装

docker 拉取镜像

如果能看到上面的画面,说明 jellyfin 安装完成,就是这么便捷!!!!docker 越来越成功果然是有道理的。
现在就可以通过 http://本地 ip:8096 来访问 jellyfin 服务了。

3.3 Jellyfin 参数配置

  • 一进来就看到引导页面,选择语言
    image.png

  • 设置管理账号密码
    image.png

  • 配置媒体库

image.png

  • 可以将不同种类的片源分开管理,比如电影、电视剧
    image.png

后面该怎么选怎么选,电影路径、电视剧路径,语言神马的。最后注意一下远程访问的两个勾,默认是打上的。
image.png

这样,我们的 jellyfin 服务就安装好了。

3.4 内网穿透

虽然是内网服务,还是会禁不住得瑟的心,弄个公网地址给朋友看看,所以就有了内网穿透。
内网穿透工具采用 Frp,轻与简单是我选择工具的个人偏好。
服务端扔阿里云上,内网安装客户端,配上端口

[tcp_jellyfin]
type = tcp
local_port = 8096
remote_port = 9096

我把 ecs 中的 web 服务端口都配成 9***,方便管理。

启动 frpc

./frpc -c frpc.ini

现在,访问 ecs 的公网 ip:9096 就能访问自己的 Jellyfin 了。

3.5 运行效果

来张整体图,能看到不同的媒体库以及各自的更新进度。

可以在首页直接打开视频

也可以点击进入影片介绍页,是的,jellyfin 居然还有影片介绍页,我们只需要提供合规格命名的片源,其他的都交给 jellyfin 吧。

截图时是在公网,网速不佳,不然是可以看到演员的照片,还会推荐本地存储的相关影片,这个有点逆天了,查了一下这是从 emby 带出来的功能,强大的搜刮能力。
补一张卡司图

还可以进入演员详情页

Ok,不管从哪个路径进来,最终还是要播放影片。播放效果是这样滴

内网使用,还是非常流畅的。

4 总结

  • 第一次安装 docker,不顺利是正常的,趟坑也是一种快乐。
  • 使用 docker 镜像的方式安装服务确实非常方便快捷,如果以后 docker 服务越来越多了,可能需要上 K8s,不过那是很远的事情了。
  • 以前没使用过 emby,这次直接上 Jellyfin,体验太惊艳了,没想到这么棒,但毕竟主服务器的性能并不是很棒,可以估计到解码开销会比较大,以后等 kodi 的插件完善了,使用 kodi 配合 Jellyfin 也许效果更好。

参考文章
《Ubuntu 16.04 安装 Docker 和 Docker Compose
》,https://www.rabbitwfly.com/articles/2019/05/14/1557827886665.html
《在群晖 Docker 中安装 Jellyfin 媒体服务器
》,https://www.smbinn.com/jellyfin.html

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...