Jellyfin 多媒体服务搭建
使用 jackett、qbittorrent、jellyfin 搭建家庭影院。
本文备份自用的 docker 配置文件。
配置信息
- docker 配置文件集中存放在:
/home/shiersan/docker
- zfs 存储池挂载点:
/mnt/zfs-raid5-pool/
。ZFS 的配置可以参考: 这里 - qbittorrent 下载盘为固态盘(本机系统盘)M.2 1 TB
- 下载盘文件使用
rsync -ruvzt --progress
手动同步到存储池中的 jellyfin 文件夹中。这么做的原因是因为下载文件夹和存储的文件夹不是一个硬盘设备。无法使用硬链接
。
filebrowser
使用该程序实现 WEB 端管理存储池文件功能
默认用户名:admin,密码:admin
docker run -d --name filebrowser \
-v /mnt/zfs-raid5-pool:/nas \
-v /home/shiersan/docker/filebrowser/database.db:/database.db \
-v /home/shiersan/docker/filebrowser/filebrowser.json:/.filebrowser.json \
-u $(id -u):$(id -g) \
-p 60100:80 \
--restart unless-stopped \
filebrowser/filebrowser:latest
-p:端口可以自定义
-v /mnt/zfs-raid5-pool:/nas
:容器的路径需和下方的json
配置中的root
对应需要创建空文件:database.db
创建配置文件:filebrowser.json,并写入下面的内容:
{
"address":"0.0.0.0",
"port":80,
"locale":"zh-cn",
"baseURL":"/",
"log":"stdout",
"database":"/database.db",
"root":"/nas"
}
qbittorrent
下载器使用 qb 下载种子文件。传统下载可以自行部署 aria2
安装后默认用户名:admin,密码:adminadmin
docker run -d --name=qbittorrent \
-e QB_WEBUI_PORT=60200 \
-e QB_EE_BIN=true \
-e UID=$(id -u) \
-e GID=$(id -g) \
-e UMASK=000 \
-p 6881:6881 \
-p 6881:6881/udp \
-p 60200:60200 \
-v /home/shiersan/docker/qbittorrent/config:/config \
-v /home/shiersan/docker/qbittorrent/downloads:/Downloads \
--restart unless-stopped \
johngong/qbittorrent:latest
注意:-e QB_WEBUI_PORT=60200
指定的端口必须和-p 60200:60200
中一致。也就是说这三个端口数值必须完全一致,否则会出现异常。
-e QB_EE_BIN=true
表示使用 qb 增强版(可以反吸血:设置-高级-上传连接策略-选择反吸血
)- 其他参数参考该容器 docker hub 首页文档。
jackett
一个聚合种子搜索器。初始启动后需要添加indexer
才能正常使用
docker run -d --name=jackett \
-e PUID=$(id -u) \
-e PGID=$(id -g) \
-e TZ=Asia/Shanghai \
-e AUTO_UPDATE=true \
-p 9117:9117 \
-v /home/shiersan/docker/jackett/config:/config \
-v /home/shiersan/docker/jackett/downloads:/downloads \
--restart unless-stopped \
lscr.io/linuxserver/jackett:latest
搜索个别网站的还需要依赖flaresolverr
这个服务。这个服务不稳定,经常报错。所以不装也行,后果也只是 jackett 不能使用个别网站搜索而已。
docker run -d --name=flaresolverr \
-p 8191:8191 \
-e LOG_LEVEL=info \
--restart unless-stopped \
ghcr.io/flaresolverr/flaresolverr:latest
运行起来后,去 jackett 的设置中找到FlareSolverr API URL
这一项,把flaresolverr
的地址设置上即可。
jellyfin
开源的多媒体管理平台,支持硬件转码等功能。
这里使用的是中国特供版
具体可以访问该镜像的 docker hub 首页了解。
该镜像集成了很多硬解需要的驱动,并优化了 jellyfin 的参数。
docker run -d --name jellyfin \
-p 8096:8096 \
--privileged=true \
-v /home/shiersan/docker/jellyfin/config:/config \
-v /home/shiersan/docker/jellyfin/cache:/cache \
-v /mnt/zfs-raid5-pool/jellyfin:/media \
--mount type=bind,source=/dev/dri,target=/dev/dri \
--restart=unless-stopped \
nyanmisaka/jellyfin:latest
--mount type=bind,source=/dev/dri,target=/dev/dri
:是挂载宿主机的显示渲染设备文件到容器中--privileged=true
:因为要访问上面说的系统渲染设备文件,所以需要 root 权限。也可以对设备文件设置 777 权限来省略该配置项config
和cache
目录必须配置。-v /mnt/zfs-raid5-pool/jellyfin:/media
:是自定义你的媒体文件根目录让 jellyfin 能找到你的电影/电视剧
tinyMediaManager
电影信息刮削,docker 部署版本。
docker run -d --name=tinymediamanager \
-e USER_ID=$(id -u) \
-e GROUP_ID=$(id -g) \
-e PASSWORD=设置密码 \
-p 64000:4000 \
-v /home/shiersan/docker/tinymediamanager/data:/data \
-v /mnt/zfs-raid5-pool/jellyfin:/media \
--restart unless-stopped \
tinymediamanager/tinymediamanager:latest
切换中文界面:
- 进入之后跟随向导初始设置
- 右上角-settings
- 弹出设置窗口中选择左侧菜单第一项:General
- 右边在 UI Language 设置中下拉选择中文
- 关闭设置窗口
- 直接右上角点击软件的关闭按钮,不要关闭网页,软件会自动重启。
- 软件不经常使用的情况下,可以关闭 docker。
如果没有科学上网可以尝试修改 host 解决无法访问 TMDB:
docker run -d --name=tinymediamanager \
-e USER_ID=$(id -u) \
-e GROUP_ID=$(id -g) \
-e PASSWORD=设置密码 \
-p 64000:4000 \
-v /home/shiersan/docker/tinymediamanager/data:/data \
-v /mnt/zfs-raid5-pool/jellyfin:/media \
--add-host=api.themoviedb.org:13.224.161.90 \
--add-host=image.tmdb.org:104.16.61.155 \
--add-host=api.themoviedb.org:13.35.67.86 \
--add-host=www.themoviedb.org:54.192.151.79 \
--restart unless-stopped \
tinymediamanager/tinymediamanager:latest
HOST 如果失效,请自行更换其他方式。