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镜像
- 首先,dockerhub上已经发布了jellyfin的docker镜像,https://hub.docker.com/r/jellyfin/jellyfin,按照说明,只需要一行命令
docker pull jellyfin/jellyfin
然而我并不是这样做的。因为懒,直接docker安装了。
- 这是安装命令
docker run -d -p 8096:8096 -v /jellyfin/config:/config -v /media/ivy/新加卷/影音视频:/media jellyfin/jellyfin
上面的参数中需要说明的是:
- -p 后面是jellyfin服务的端口号,安装时可以指定,这里使用默认的8096;
- -v 后面是指定的配置路径,比如/media/ivy/新加卷/影音视频就是我原来的影音物理路径,/media就是jellyfin的映射路径
docker会自动拉取镜像完成安装
docker拉取镜像如果能看到上面的画面,说明jellyfin安装完成,就是这么便捷!!!!docker越来越成功果然是有道理的。
现在就可以通过http://本地ip:8096来访问jellyfin服务了。
3.3 Jellyfin参数配置
-
一进来就看到引导页面,选择语言
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带出来的功能,强大的搜刮能力。
补一张卡司图
《三块广告牌》的演员表
还可以进入演员详情页
Clarke Peters的介绍
Ok,不管从哪个路径进来,最终还是要播放影片。播放效果是这样滴
《我们的星球第一集》
内网使用,还是非常流畅的。
4 总结
- 第一次安装docker,不顺利是正常的,趟坑也是一种快乐。
- 使用docker镜像的方式安装服务确实非常方便快捷,如果以后docker服务越来越多了,可能需要上K8s,不过那是很远的事情了。
- 以前没使用过emby,这次直接上Jellyfin,体验太惊艳了,没想到这么棒,但毕竟主服务器的性能并不是很棒,可以估计到解码开销会比较大,以后等kodi的插件完善了,使用kodi配合Jellyfin也许效果更好。
本文链接:[https://blog.goodfun.me/articles/2019/11/19/1574137079181.html)
本作品由 IvyWooo 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,转载请注明出处。
参考文章
《Ubuntu 16.04 安装 Docker 和 Docker Compose
》,https://www.rabbitwfly.com/articles/2019/05/14/1557827886665.html
《在群晖Docker中安装Jellyfin媒体服务器
》,https://www.smbinn.com/jellyfin.html
网友评论