
在家准备搭建个影视库,之前都是七拼八凑,这次完整的做个教程。全部采用docker的方式部署,由于国内镜像源被封了,推荐使用轩辕镜像
我这里选用的工具如下,括号内的是平替:
- 下载工具——Transmission (qbittorrent)
- 视频播放器——emby (jellyfin)
- 媒体工具——nastool (moviepliot)
- 资源搜索工具——jacktt
我用的是黑群晖,共享目录主要就是video,用来存储影视资源。里面会进行电影和电视的分类,然后link文件夹是用来存储整理过后的媒体数据,和外层的目录一致即可。(ps:link文件夹主要是因为pt站,要进行保种不能变名称,所以整理后通过硬链接的方式放到link下,不影响原本的下载文件)
video文件夹的层级
video:.
├─movie #电影下载目录
├─tv #电视剧下载目录
└─link
├─movie #电影资源访问目录
└─tv #电视剧资源访问目录
为了比较好的权限控制,我们先创建两个群组,一个是downloads,另一个是mediaSharers。然后再创建downloader和mediaShare用户,在两个群组下。他们的权限都是对video进行增加和删除。
1.下载器
第一步是先下载资源,这里介绍两种下载器的docker安装。直接用downloader用户进行安装,接下来你要存放种子的文件夹都给他读写权限,包括docker底下安装软件的文件夹也给他读写权限。
1.1 Transmission
这里我采用docker-compose安装,介绍下安装文件
version: "3.3"
services:
transmission:
image: docker.1panel.live/linuxserver/transmission #镜像版本
container_name: transmission #容器名称
environment:
- PUID=1000 #downloader的用户id(ssh下使用命令'id downloader获取')
- PGID=1000 #downloader的群组id
- TZ=Asia/Shanghai #时区
- USER=admin #账号
- PASS=****** #密码(请自行修改)
volumes:
- /docker/transmission/config:/config #配置文件夹
- /video:/video #下载文件夹,建议统一使用video,避免后续媒体服务器访问异常
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp
restart: unless-stopped
启动完就安装完了,但是界面太丑了根本没法用,去github上下个皮肤,然后放到对应的目录即可。下载传送门

我这里介绍命令行操作,先连接终端,然后输入下列命令。
#进入目录
cd /html
#下载皮肤文件
wget https://github.com/ronggang/transmission-web-control/archive/refs/tags/v1.6.1-update1.tar.gz
#解压
tar -zxvf v1.6.1-update1.tar.gz
#进入皮肤文件夹,复制src下的所有文件放到html下面
cd transmission-web-control-1.6.1-update1/src/
cp -rd * /html
安装完成,打开上方的设置齿轮图标,选中Base栏,下方的Language改成中文,然后save保存即可。
1.2 qBittorrent
qb安装要注意以下几点:
- WEBUI_PORT要和你映射的端口改成一致,要不然会访问出现“Unauthorized”。然后新版本容器改成了随机密码,账户是admin,密码要去看下日志。
- TORRENTING_PORT端口不要用6881这类低端口,很多被封掉了。设置52000没有问题。记得要添加下tracker,网址:https://trackerslist.com/#/zh
---
services:
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1028
- PGID=65536
- TZ=Asi/Shanghai
- WEBUI_PORT=8086
- TORRENTING_PORT=52000
volumes:
- /volume1/docker/qbittorrent/config:/config
- /volume1/video:/video
ports:
- 8086:8086
- 52000:52000
- 52000:52000/udp
restart: unless-stopped
2.iyuu
实现qb下载,tr保种,然后绑定合作站点,后面moviesite就可以直接登录iyuu。
iyuu一定要注意把qb的种子下载路径映射进去,转种需要他。然后只要是你需要的下载路径也要一并映射进去,并且保持qb、tr、iyuu在容器内的路径名称一致,这样才不会出现找不到文件的情况。
转种:在计划任务里面,自己多设置几次测试下能不能成功,成功后再删除原来的种子。
---
services:
iyuu:
image: iyuucn/iyuuplus:latest #镜像版本
container_name: iyuu #容器名称
volumes:
- /volume1/docker/iyuu/config:/config #配置文件夹
- /volume1/docker/iyuu/data:/data
- /volume1/Download:/Download
- /volume1/video:/video
- /volume1/docker/iyuu/logs:/var/log/nginx
- /volume1/docker/qbittorrent/config/qBittorrent/BT_backup:/qb/BT_backup
ports:
- 8787:8787
- 3131:3131
restart: always
3.媒体播放方案
下载器安装好了,现在我们安装个播放器。emby个人感觉更好用,就是ios端收费,并且官方版硬解也是付费解锁。jellyfin是基于emby某个版本后的开源软件,所有都是免费,使用人群也比较多。接下来我会介绍两种安装方法。
3.1 Emby
这里用docker-compose安装emby开心版,如果不采用这种安装方式就得用命令行先进行容器创建,因为要透传核显,界面化安装暂时不知道怎么设置,下面的jellyfin同理。
version: '3'
services:
emby:
image: docker.1panel.live/zishuo/embyserver:latest
container_name: happy-emby
environment: #这里就是id xxx之后照着写
UID: 1035
GID: 100
GIDLIST: 100,65537
volumes:
- /volume1/docker/happy-emby/config:/config
- /volume1/docker/happy-emby/mnt/share1:/mnt/share1
- /volume1/docker/happy-emby/mnt/share2:/mnt/share2
- /volume1/vide:/video #影视资源
devices:
- /dev/dri:/dev/dri #核显透传,为了硬解
ports:
- "8098:8096"
restart: unless-stopped
映射完直接访问端口地址,进行配置就好,切换成中文一步一步往下就行
3.2 Jellyfin
docker下建议用nyanmisaka/jellyfin,免去使用官方版很多插件不足的情况,当然喜欢纯净版那就用官方的,安装没什么区别。
有个注意事项,如果你cpu比较旧,在镜像img那里换成latest-legacy的版本:即image: nyanmisaka/jellyfin:latest-legacy
version: '3'
services:
jellyfin:
image: docker.1panel.live/nyanmisaka/jellyfin:latest-legacy
container_name: jellyfin
user: "1032:65537" #用户权限,前面是用户id,后面是组id
volumes:
- /volume1/docker/jellyfin/config:/config
- /volume1/docker/jellyfin/cache:/cache
- /volume1/video:/media #视频目录
devices:
- /dev/dri:/dev/dri #核显透传
ports:
- "8097:8096"
restart: unless-stopped
然后下一步直接运行,等待一下,然后访问即可,不行就多刷新两下,启动需要时间。然后正常按照提示进行设置,注意下媒体库路径选择link里面的即可。
设置硬件解码:播放-硬件加速-选VAAP(intel用这个,兼容性比较强,具体根据你cpu型号决定) 后面保持默认即可,控制权限的话就是新建用户,给他不同的媒体库就好。
4.媒体工具 —— NASTool
下载器、播放器都有了,最后介绍媒体管理工具Nastool。建议下载2.9.1的未阉割版。 有几个坑:
- 官方的最新版本进去如果你没有pt站的用户,就用不了完整的功能。
- 官方的2.9.1下载部署完会自动升级,不提供别的内置索引器,对于想使用jackett,使用pt站搜资源就没法实现。
所以我这里最后选择下载了其他大神的2.9.1存档版本,19970688/nastools-bt。
version: '3.7'
services:
nas-tools:
container_name: nas-tools
image: 19970688/nastools-bt:latest
ports:
- "3001:3000"
volumes:
- /volume1/docker/nastools/config:/config
- /volume1/video:/video #视频资源目录
environment:
- PUID=1032
- PGID=65537
- UMASK=000
- NASTOOL_AUTO_UPDATE=false #关闭自动更新
restart: unless-stopped
访问端口,默认账号密码:admin/password 接下来要开始配置NASTool,步骤比较多。
- 在基础设置里面,修改密码
- 增加TMDB密钥 网址在这里,直接去注册个。themoviedb(https://www.themoviedb.org/login)在右上角我的-账户设置-API-请求API密钥。这里选择developer开发者申请,全部填满唯一要注意的就是简介里面加上一句话:
Application summary please elaborate on how you plan to use our API
- BT保种,基础设置-默认文件转移方式-改成硬链接,实现BT保种
- 设置媒体库,都设置link文件夹底下的目录。
- 新增目录同步,跟上述的类似,就是把真实目录的资源改名后同步到目的目录,依次设置电影和电视剧。根目录用video/movie,目的目录video/link/movie
- 配置下载器,点击下载器输入网址,输入账号密码,测试成功后点击完成。
- 配置媒体服务器,先进入emby/jellyfin控制台,找到API密钥后添加一个,然后回到nastool进行设置。
- 配置消息通知,试了企业微信这种,门槛有点高得有固定的公网ip。我这里只是用云服务的公网进行测试,介绍下流程:
- 先去企业微信注册一个账号,传送门
- 通过企业微信创建一个应用
- frp把你局域网里的nastool穿透出去
- 在nastool里面创建一个应用
- 企业微信进行回调配置
- 企业微信开放白名单
- nastool测试连接
企业微信端:我的企业,拉到最下面拿到企业id;
企业微信端:点击应用管理,创建一个应用;
Nastool端:新增一个消息通知,主要取个名字,不知道的可以先不填保存;
企业微信端:编辑api配置,主要是url,用你frp穿透出来的公网地址加上/你的消息通知的名称;
Nastool端:开始填写参数;
企业微信端:配置完成点击微信插件,扫描关注,然后点击nastool的测试成功就可以看到消息了。
然后在聊天框,随便输入一个电影名字,他会返回带序号的搜索结果,你输入序号,就可以开始自动下载。
5.jackett
玩种子站会用到,内置索引器往往资源不够,所以用jackett来实现索引。
version: '3.7'
services:
jackett:
container_name: jackett
image: linuxserver/jackett:latest
environment:
- PUID=1000
- PGID=100
- TZ=Asia/shanghai
- AUTO_UPDATE=true
ports:
- "9117:9117"
volumes:
- /volumn/docker/jackett/config:/config
- /volumn/docker/jackett/downloads:/downloads
restart: unless-stopped
然后就是启动访问端口就好,然后都是中文界面自行操作。
6.metatube
主要是用来给jellyfin刮削小姐姐
services:
metatube:
image: docker.unsee.tech/metatube/metatube-server:latest
container_name: metatube
volumes:
- /volume1/metatube/data:/var/www/html/data
ports:
- 8089:80
restart: unless-stopped