跳到正文
朵朵的技术博客
返回

NAS搭建家庭影视库

编辑此页

家庭影视库

在家准备搭建个影视库,之前都是七拼八凑,这次完整的做个教程。全部采用docker的方式部署,由于国内镜像源被封了,推荐使用轩辕镜像

我这里选用的工具如下,括号内的是平替:

我用的是黑群晖,共享目录主要就是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上下个皮肤,然后放到对应的目录即可。下载传送门

Transmission皮肤效果

我这里介绍命令行操作,先连接终端,然后输入下列命令。

#进入目录
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安装要注意以下几点:

---
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的未阉割版。 有几个坑:

  1. 官方的最新版本进去如果你没有pt站的用户,就用不了完整的功能。
  2. 官方的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,步骤比较多。

Application summary please elaborate on how you plan to use our API

企业微信端:我的企业,拉到最下面拿到企业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

编辑此页
分享本文: