19/08/2022 22:23

1. 前言

1. 初衷

最近在折腾自建电影和电视剧库,但是发现搜集资源并不简单

很多资源都没有中文字幕,非常难受,得自己去寻找

整理电影和电视剧也不简单

所以就有了这篇文章,来解决以上痛点,实现资源下载整理全自动

注:所有涉及版权问题的地方都不会讲解,请知悉

2. 搭建方式

  • 为了这次搭建的方便,所以选用Docker来部署

  • 为了安全性和隐私,本次采用的都是开源项目

2. 项目介绍

1. Docker Docker-compose

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

2. Radarr

简介

Radarr 是 Usenet 和 BitTorrent 用户的电影收藏管理器。它可以监控新电影的多个 RSS 提要,并将与客户端和索引器交互以抓取、排序和重命名它们。它还可以配置为在质量更好的格式可用时自动升级库中现有文件的质量。请注意,仅支持给定电影的一种类型。如果您想要给定电影的 4k 版本和 1080p 版本,您将需要多个实例。

地址

官网:https://radarr.video/

Github:https://github.com/Radarr/Radarr

本次使用的Docker镜像:https://hub.docker.com/r/linuxserver/radarr

特点

  • 添加包含大量信息的新电影,例如预告片、收视率等。
  • 可以观看更好质量的电影并进行自动升级。例如从 DVD 到蓝光
  • 如果一个版本失败,自动失败的下载处理将尝试另一个版本
  • 手动搜索,以便您可以选择任何版本或查看未自动下载版本的原因
  • 与 SABnzbd 和 NZBGet 完全集成
  • 自动搜索版本以及 RSS 同步
  • 自动导入下载的电影
  • 识别特别版、导演剪辑版等。
  • 使用硬编码的 sub 识别版本
  • 识别具有 AKA 电影名称的版本
  • 支持并集成 SABnzbd、NZBGet、QBittorrent、Deluge、rTorrent、Transmission、uTorrent 和其他下载客户端
  • 与 Kodi 和 Plex 完全集成(通知、库更新)
  • 导入元数据,例如预告片或字幕
  • 添加元数据,例如海报和信息,供 Kodi 和其他人使用
  • 配置文件的高级自定义,这样 Radarr 将始终下载您想要的副本
  • 漂亮的用户界面

image-20220724123036196

3. Sonarr

简介

Sonarr 是供 Usenet 和 BitTorrent 用户使用的 PVR。它可以监控多个 RSS 提要以获取您最喜欢的节目的新剧集,并将抓取、排序和重命名它们。它还可以配置为在质量更好的格式可用时自动升级已下载文件的质量。

地址

官网:https://sonarr.tv/

Github:https://github.com/Sonarr/Sonarr

本次使用的Docker镜像:https://hub.docker.com/r/linuxserver/sonarr

特点

  • 支持主流平台:Windows、Linux、macOS、树莓派等。
  • 自动检测新剧集
  • 可以扫描您现有的图书馆并下载任何缺失的剧集
  • 可以观看您已经拥有的剧集的更好质量并进行自动升级。例如。从 DVD 到蓝光
  • 如果一个版本失败,自动失败的下载处理将尝试另一个版本
  • 手动搜索,以便您可以选择任何版本或查看未自动下载版本的原因
  • 完全可配置的剧集重命名
  • 与 SABnzbd 和 NZBGet 完全集成
  • 与 Kodi、Plex 完全集成(通知、库更新、元数据)
  • 完全支持特价和多集发行
  • 和漂亮的用户界面

image-20220724123054475

4. BGMI

简介

BGmi 是一个用来追番的命令行程序。

地址

Github:https://github.com/BGmi/BGmi

本次使用的Docker镜像:https://hub.docker.com/r/ddsderek/bgmi-docker-all-in-one

5. Jackett

简介

Jackett 充当代理服务器:它将来自应用程序(SonarrRadarrSickRageCouchPotatoMylar3LidarrDuckieTVqBittorrentNefarious等)的查询转换为特定于跟踪器站点的 http 查询,解析 html 或 json 响应,以及然后将结果发送回请求软件。这允许获取最近的上传(如 RSS)和执行搜索。Jackett 是维护索引器抓取和翻译逻辑的单一存储库 - 消除了其他应用程序的负担。

地址

Github:https://github.com/Jackett/Jackett

本次使用的Docker镜像:https://hub.docker.com/r/linuxserver/jackett

6. Prowlarr

简介

prowlarr是建立在流行的 arr .net/reactjs 基础堆栈上的索引器管理器/代理,可与您的各种 PVR 应用程序集成。Prowlarr 支持对 Torrent Trackers 和 Usenet Indexers 管理。它与 Lidarr、Mylar3、Radarr、Readarr 和 Sonar 无缝集成,为您的索引器提供完整的管理,无需为每个应用程序设置索引器

特点

  • Usenet 原生支持 24 个索引器,包括 Headphones VIP
  • Usenet 通过“Generic Newznab”支持任何与 Newznab 兼容的索引器
  • 对 500 多个跟踪器的 Torrent 支持,并且一直在添加更多跟踪器
  • 通过“通用 Torznab”支持任何 Torznab 兼容跟踪器的 Torrent 支持
  • 通过 Cardigann 支持自定义 YML 定义,包括 JSON 和 XML 解析
  • 索引器同步到 Lidarr/Mylar3/Radarr/Readarr/Sonarr,因此无需手动配置其他应用程序
  • 索引器历史和统计
  • 在类别级别手动搜索跟踪器和索引器
  • 基于参数的手动搜索
  • 支持从 Prowlarr 一次将多个版本直接推送到您的下载客户端
  • 索引器运行状况和状态通知
  • 每个索引器代理支持(SOCKS4、SOCKS5、HTTP、Flaresolverr)

地址

Github:https://github.com/Prowlarr/Prowlarr

本次使用的Docker镜像:https://hub.docker.com/r/linuxserver/prowlarr

image-20220724123141131

7. Overseerr

简介

Overseerr是一个请求管理和媒体发现工具,专为与您现有的Plex生态系统协同工作而构建。

特点

  • 全 Plex 集成。使用 Plex 验证和管理用户访问权限!
  • 与您现有的服务轻松集成。目前,Overseerr 支持 Sonarr 和 Radarr。更多即将到来!
  • Plex 库扫描,以跟踪已经可用的标题。
  • 可定制的请求系统,允许用户在友好、易于使用的界面中请求单个季节或电影。
  • 非常简单的请求管理 UI。不要浏览应用程序来简单地批准最近的请求!
  • 细粒度的权限系统。
  • 支持各种通知代理。
  • 适合移动设备的设计,当您需要在旅途中批准请求时!

地址

Github:https://github.com/sct/overseerr

本次使用的Docker镜像:https://hub.docker.com/r/linuxserver/overseerr

image-20220724123208140

jellyseerr与Overseerr区别

jellyseerr与Overseerr类似,但是jellyseerr是专门为jellyfin服务的,而Overseerr是为plex服务的,本次教程用的是Overseerr,大家可以自己选择

8. Nas-Tools

介绍

NAS媒体库资源归集整理工具

1、资源检索和订阅

  • 站点RSS聚合,想看的加入订阅,资源自动实时追新。
  • 通过微信、Telegram或者WEB界面聚合资源搜索下载,最新热门资源一键搜索或者订阅。
  • 与豆瓣联动,在豆瓣中标记想看后台自动检索下载,未出全的自动加入订阅。

2、媒体库整理

  • 监控下载软件,下载完成后自动识别真实名称,硬链接到媒体库并重命名。
  • 对目录进行监控,文件变化时自动识别媒体信息硬链接到媒体库并重命名。
  • 解决保种与媒体库整理冲突的问题,专为中文环境优化,支持国产剧集和动漫,重命名准确率高,改名后Emby/Jellyfin/Plex 100%搜刮。

3、站点养护

  • 全面的站点数据统计,实时监测你的站点流量情况。
  • 全自动化托管养站,支持远程下载器。
  • 站点每日自动登录保号。

4、消息服务

  • 支持ServerChan、微信、Telegram、Bark等图文消息通知
  • 支持通过微信、Telegram远程控制订阅和下载。
  • Emby/Jellyfin/Plex播放状态通知。

地址

Github:https://github.com/jxxghp/nas-tools

DockerHub:https://hub.docker.com/repository/docker/jxxghp/nas-tools

群晖套件:https://github.com/jxxghp/nas-tools/releases

TG频道:https://t.me/nastool

WIKI:https://github.com/jxxghp/nas-tools/wiki

9. Aria2

简介

Aria2 是一个多平台轻量级,支持 HTTP、FTP、BitTorrent 等多协议、多来源的命令行下载工具

地址

官网:https://aria2.github.io/

本次使用的Docker镜像:https://hub.docker.com/r/p3terx/aria2-pro

10. Ariang

简介

AriaNg 是一个让 aria2 更容易使用的现代 Web 前端. AriaNg 使用纯 html & javascript 开发, 所以其不需要任何编译器或运行环境. 您只要将 AriaNg 放在您的 Web 服务器里并在浏览器中打开即可使用. AriaNg 使用响应式布局, 支持各种计算机或移动设备。

特点

  1. 纯 Html & Javascript 实现, 不依赖任何运行时
  2. 响应式布局设计, 兼容计算机与移动设备
  3. 友好的界面交互
    • 任务排序 (按文件名, 文件大小, 进度, 剩余时间, 下载速度等.), 文件排序, Bittorrent 连接节点排序
    • 任务搜索
    • 任务重试
    • 拖拽调整任务顺序
    • 更详细的任务信息 (健康度, 连接节点客户端信息等.)
    • 根据特定文件类型或文件扩展名筛选文件 (视频, 音频, 图片, 文档, 应用程序, 存档文件等.)
    • 多目录任务支持树形结构显示
    • aria2 及单个任务的下载/上传速度图表
    • 完整支持 aria2 设置选项
  4. 深色主题
  5. 支持网页地址命令行 API
  6. 下载完成消息通知
  7. 多语言支持
  8. 支持配置多个 aria2 RPC
  9. 支持导出和导入设置
  10. 节省带宽, 仅请求增量数据

地址

官网:http://ariang.mayswind.net/

Github:https://github.com/mayswind/AriaNg

本次使用的Docker镜像:https://hub.docker.com/r/p3terx/ariang

11. qBittorrent

简介

qBittorrent 是一款开源免费的种子和磁力链接下载工具

地址

官网:https://www.qbittorrent.org/

本次使用的Docker镜像:https://hub.docker.com/r/superng6/qbittorrentee

12. Transmission

简介

  • Transmission是一种BitTorrent客户端

  • 比其他客户端使用更少的资源

  • 非常适合服务器、嵌入式系统和无头使用的守护程序

  • 本地对等发现

  • 完全加密、DHT、µTP、PEX和Magnet Link支持

地址

官网:https://transmissionbt.com/

本次使用的Docker镜像:https://hub.docker.com/r/linuxserver/transmission

13. ChineseSubFinder

简介

自动化搞定限定条件中文 字幕下载

地址

Github:https://github.com/allanpk716/ChineseSubFinder

本次使用的Docker镜像:https://hub.docker.com/r/allanpk716/chinesesubfinder

image-20220724123121700

14. Watchtower

简介

Watchtower 会监视运行容器并监视这些容器最初启动时的镜像是否需要更新。当 watchtower 检测到一个镜像已经有变动时,它会使用新镜像,使用相同的参数自动重新启动相应的容器。同时 watchtower 本身也被打包为 Docker 镜像,用一行命令即可使用 watchtower 监控所有容器,然后所有容器都会自动更新,当然也包括 watch­tower 本身。

地址

Github:https://github.com/containrrr/watchtower

本次使用的Docker镜像:https://hub.docker.com/r/containrrr/watchtower

15. Plex

简介

影音播放器

地址

本次使用的Docker镜像:https://hub.docker.com/r/plexinc/pms-docker

image-20220724123236746

Jellyfin与Plex

jellyfin和plex都是影音播放器,可以自己选择,plex收费,jellyfin开源免费,但是plex资源占用更小,刮削能力更强

16. Kodi

简介

Kodi(以前称为XBMC)是一个免费强大的开放源代码媒体播放器软件应用程序。 Kodi可用于多种操作系统和硬件平台。

  • Kodi 是终极娱乐中心软件。它几乎可以播放您能找到的所有类型的媒体,而且在播放时看起来很棒!
  • Kodi 专为电影而生!Kodi 支持所有主要视频格式,包括可流式在线媒体,可以轻松导入、浏览和播放您的电影收藏。
  • Kodi 的电视节目库支持带有海报或横幅、观看标签、节目描述和演员的剧集和季节视图。非常适合跟踪您的进度。
  • Kodi 可以播放您的所有音乐,包括 mp3、flac、wav 和 wma 格式。它具有提示表、标签阅读支持和智能播放列表,可最终控制您的音乐收藏。
  • Kodi 允许您使用各种皮肤完全改变界面的整体外观。我们毫不怀疑您会找到适合您口味(或客厅)的东西。
  • Kodi 的真正力量来自大量社区创建的附加组件。有流行的网络服务、应用程序和脚本的附加组件

地址

官网:https://kodi.tv/

下载地址:https://kodi.tv/download/

支持平台

Windows Linux Android Raspberry Pi macOS iOS tvOS

各种设备上的 Kodi

17. RSSHub

简介

RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容

地址

Docs:https://docs.rsshub.app/

Github:https://github.com/DIYgod/RSSHub

DockerHub:https://hub.docker.com/r/diygod/rsshub

3. 专有名词解释

在部署前我首先要来讲一些专有名词的意思,通过讲解这些名词的意思,有助于我们更好的理解部署中设置的作用,和为什么要这样设置。

1. PUID/GUID

以下来自于Linuxserver的解释

当在主机操作系统和容器之间使用卷(-v标志)权限问题时,我们通过允许您指定用户PUID和组来避免这个问题PGID

确保主机上的任何卷目录都归您指定的同一用户所有,并且任何权限问题都会像魔术一样消失。

在这种情况下PUID=1000PGID=1000找到你的用途id user如下:

  $ id username
    uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)

2. 权限掩码Umask

在计算中,umask是一个决定掩码设置的命令,该掩码控制如何为新创建的文件设置文件权限。它还可能影响文件权限的显式更改方式。umask也是一个设置掩码的函数,也可以指掩码本身,正式称为文件模式创建掩码**。掩码是一组,每个位都限制了如何为新创建的文件设置相应的权限。可以通过调用umask命令来更改掩码中的位。

具体请看Wiki的介绍

3. 硬链接hardlinking

从英文翻译而来-在计算中,硬链接是将名称与文件系统上的文件相关联的目录条目。所有基于目录的文件系统都必须至少具有一个硬链接,为每个文件指定原始名称。术语“硬链接”通常仅在允许同一文件使用多个硬链接的文件系统中使用。

img

没有看懂也没关系,总之就是帮你省地方,省磁盘IO,一个文件可以出现在多个地方,但只占用一次空间,如果没有启用硬链接,就会执行 复制粘贴/剪切 操作

4. 开始部署

1. 安装Docker Docker-compose

更新、安装软件

apt-get update && apt-get install -y wget vim nano zip curl

非大陆Docker安装

wget -qO- get.docker.com | bash

docker -v

systemctl enable docker

国内机安装docker

curl -sSL https://get.daocloud.io/docker | sh

docker -v

systemctl enable docker

非大陆Docker-compose安装

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

国内机安装docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --version

2. 部署

创建目录

mkdir -p /root/data/docker_data/film

cd /root/data/docker_data/film

nano docker-compose

Dokcer-compose

version: "3.3"
services:

#    jackett: 
#        image: linuxserver/jackett:latest
#        container_name: jackett
#        environment:
#          - PUID=1000
#          - PGID=1000
#          - TZ=Asia/Shanghai
#          - AUTO_UPDATE=true
#        volumes:
#          - ./jackett/config:/config
#          - /video/downloads:/downloads
#        ports:
#          - 9117:9117
#        restart: unless-stopped
#        networks:
#          - film-bridge

    prowlarr:  # 索引器
        image: linuxserver/prowlarr:develop
        container_name: prowlarr
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai
        volumes:
          - ./prowlarr/config:/config  # prowlarr配置文件目录
        ports:
          - 9696:9696  # 端口
        restart: unless-stopped
        networks:
          - film-bridge

    rsshub: # rsshub,获取豆瓣订阅
        image: diygod/rsshub
        container_name: rsshub-film
        restart: always
        ports:
            - '1200:1200'
        environment:
            NODE_ENV: production
            CACHE_TYPE: redis
            REDIS_URL: 'redis://redis:6379/'
            PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
        networks:
          - film-bridge
        depends_on:
            - redis
            - browserless
    browserless:
        image: browserless/chrome
        container_name: rsshub-film-chrome
        restart: always
        ulimits:
          core:
            hard: 0
            soft: 0
        networks:
          - film-bridge
    redis:
        image: redis:6-alpine
        container_name: rsshub-film-redis
        restart: always
        volumes:
            - ./rsshub/redis/data:/data
        networks:
          - film-bridge

    radarr:  # 电影订阅工具
        image: linuxserver/radarr:latest
        container_name: radarr
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai
        volumes:
          - ./radarr/config:/config  # radarr配置文件目录
          - /video/movies:/movies  # 电影目录
          - /video/downloads:/downloads  # 下载存放目录 PS:暂时性存放,最终会把文件移动到movies或者tv目录
        ports:
          - 7878:7878  # 端口
        restart: unless-stopped
        networks:
          - film-bridge

    sonarr:  # 剧集订阅工具
        image: linuxserver/sonarr:latest
        container_name: sonarr
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai
        volumes:
          - ./sonarr/config:/config  # sonarr配置文件目录
          - /video/tv:/tv  # tv目录,存放电视剧等
          - /video/cartoon:/cartoon  # 动漫目录
          - /video/downloads:/downloads  # 下载存放目录 PS:暂时性存放,最终会把文件移动到movies或者tv目录
        ports:
          - 8989:8989  # 端口
        restart: unless-stopped
        networks:
          - film-bridge
 
    bgmi:  # 动漫搜索下载器,作为sonarr的补充
        image: ddsderek/bgmi-docker-all-in-one:latest
        container_name: "bgmi"
        restart: "always"
        volumes:
          - ./bgmi:/bgmi  # config文件夹
          - /video:/media
        ports:
            - '8778:80'
            - '9091:9091'
            - '51413:51413/tcp'
            - '51413:51413/udp'
        environment:
          - TZ=Asia/Shanghai
          - PGID=1000
          - PUID=1000
          - DOWNLOADER=transmission
          - BGMI_SOURCE=mikan_project
          - BGMI_ADMIN_TOKEN=password

    overseerr:  # 请求管理和媒体发现工具
        image: linuxserver/overseerr:latest
        container_name: overseerr
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai
        volumes:
          - ./overseerr/config:/config  # overseerr配置文件目录
        ports:
          - 5055:5055  # 端口
        restart: unless-stopped
        networks:
          - film-bridge

#    jellyseerr:
#        image: fallenbagel/jellyseerr:latest
#        container_name: jellyseerr
#        environment:
#          - LOG_LEVEL=debug
#          - TZ=Asia/Shanghai
#        ports:
#          - 5055:5055
#        volumes:
#          - ./jellyseerr/config:/app/config
#        restart: unless-stopped
#        networks:
#          - film-bridge

#    jellyfin-vue:
#        container_name: jellyfin-vue
#        ports:
#            - '8559:80'
#        restart: always
#        image: 'jellyfin/jellyfin-vue:unstable'
#        networks:
#          - film-bridge

    nas-tools:
        image: jxxghp/nas-tools:latest
        ports:
          - 3113:3000
        volumes:
          - ./nas-tools/config:/config
          - /video:/media
        environment: 
          - PUID=1000
          - PGID=1000
          - UMASK=022
          - NASTOOL_AUTO_UPDATE=true
#          - REPO_URL=https://ghproxy.com/https://github.com/jxxghp/nas-tools.git  # 当你访问github网络很差时,可以考虑解释本行注释
        restart: always
        network_mode: bridge
        hostname: nas-tools
        container_name: nas-tools

    plex:  # 播放器
        container_name: plex
        ports:  # 端口,不建议更改,32400为WEB端口,一定要保留,其他可以删去
            - '32400:32400/tcp'  # 访问 Plex 媒体服务器
            - '3005:3005/tcp'  
            - '8324:8324/tcp'  # 通过 Plex Companion 控制 Roku 的 Plex
            - '32469:32469/tcp'  # 访问 Plex DLNA 服务器
            - '1900:1900/udp'  # 访问 Plex DLNA 服务器
            - '32410:32410/udp'  # 当前 GDM 网络发现
            - '32412:32412/udp'  # 当前 GDM 网络发现
            - '32413:32413/udp'  # 当前 GDM 网络发现
            - '32414:32414/udp'  # 当前 GDM 网络发现
        environment:
            - TZ=Asia/Shanghai
            - 'ADVERTISE_IP=http://192.168.31.96:32400/'  # WEB IP ,改为你自己的
#        devices:  # 硬件加速
#            - '/dev/dri:/dev/dri'
        volumes:
            - './plex/config:/config'  # plex配置文件目录
            - './plex/tmp:/transcode'  # 转码文件临时存放目录
            - '/video/movies:/movies'  # 电影目录
            - '/video/tv:/tv'  # tv目录,存放电视剧等
            - '/video/cartoon:/cartoon'  # 动漫目录
        image: plexinc/pms-docker
        networks:
          - film-bridge
   
#    jellyfin:
#        image: jellyfin/jellyfin
#        container_name: jellyfin
#        user: 1000:1000
#        volumes:
#          - ./jellyfin/config:/config
#          - ./jellyfin/cache:/cache
#          - /video:/media
#        restart: "unless-stopped"
#        environment:
#          - JELLYFIN_PublishedServerUrl=http://example.com
#        networks:
#          - film-bridge
   
    qbittorrentee-movies:  #电影下载器
        image: superng6/qbittorrentee
        container_name: qbittorrentee-movies
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai
        volumes:
          - ./qbittorrentee-movies/config:/config   # qb配置文件目录
          - /video/downloads:/downloads  # 下载存放目录 PS:暂时性存放,最终会把文件移动到movies或者tv目录  
        ports:
          - 6881:6881  # web端口
          - 6881:6881/udp
          - 8081:8080
        restart: unless-stopped
        networks:
          - film-bridge

    qbittorrentee-tv:  # 剧集下载器
        image: superng6/qbittorrentee
        container_name: qbittorrentee-tv
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai
        volumes:
          - ./qbittorrentee-tv/config:/config   # qb配置文件目录
          - /video/downloads:/downloads  # 下载存放目录 PS:暂时性存放,最终会把文件移动到movies或者tv目录
        ports:
          - 6882:6881  # web端口
          - 6882:6881/udp
          - 8082:8080
        restart: unless-stopped
        networks:
          - film-bridge

    Aria2-movies:  #电影下载器2
        container_name: aria2-movies
        image: p3terx/aria2-pro
        environment:
          - PUID=1000
          - PGID=1000
          - UMASK_SET=022
          - RPC_SECRET=password  # aria2密码
          - RPC_PORT=6800  # 端口
          - LISTEN_PORT=6888
          - DISK_CACHE=64M
          - IPV6_MODE=false
          - UPDATE_TRACKERS=true
          - CUSTOM_TRACKER_URL=
          - TZ=Asia/Shanghai
        volumes:
          - ./aria2-movies/config:/config   # aria2配置文件目录
          - /video/downloads:/downloads  # 下载存放目录 PS:暂时性存放,最终会把文件移动到movies或者tv目录
        network_mode: host
        restart: unless-stopped
        logging:
          driver: json-file
          options:
            max-size: 1m

    Aria2-tv:  # 剧集下载器2
        container_name: aria2-tv
        image: p3terx/aria2-pro
        environment:
          - PUID=1000
          - PGID=1000
          - UMASK_SET=022
          - RPC_SECRET=password  # aria2密码
          - RPC_PORT=6801  # 端口
          - LISTEN_PORT=6889
          - DISK_CACHE=64M
          - IPV6_MODE=false
          - UPDATE_TRACKERS=true
          - CUSTOM_TRACKER_URL=
          - TZ=Asia/Shanghai
        volumes:
          - ./aria2-tv/config:/config   # aria2配置文件目录
          - /video/downloads:/downloads  # 下载存放目录 PS:暂时性存放,最终会把文件移动到movies或者tv目录
        network_mode: host
        restart: unless-stopped
        logging:
          driver: json-file
          options:
            max-size: 1m

    AriaNg:  # aria2下载器管理
        container_name: ariang
        image: p3terx/ariang
        command: --port 6880 --ipv6
        network_mode: host
        restart: unless-stopped
        logging:
          driver: json-file
          options:
            max-size: 1m

    nas-tools-transmission:
        image: linuxserver/transmission:latest
        container_name: nas-tools-transmission
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai
          - TRANSMISSION_WEB_HOME=/transmission-web-control/
          - USER=admin
          - PASS=admin
#          - WHITELIST=iplist
#          - PEERPORT=peerport
#          - HOST_WHITELIST=dnsname list
        volumes:
          - ./nas-tools-transmission/config:/config
          - ./nas-tools-transmission/watch:/watch
          - /video/downloads:/downloads
        ports:
          - 9091:9091
          - 52413:52413
          - 52413:52413/udp
        restart: unless-stopped
        networks:
          - film-bridge

    chinesesubfinder:  # 字幕下载器
        image: allanpk716/chinesesubfinder:latest
        volumes:
          - ./chinesesubfinder/config:/config  # 配置文件目录
          - ./chinesesubfinder/browser:/root/.cache/rod/browser  #chrome存放目录
          - /video:/media  # 影视目录
          - /video/movies:/media/movies  # 电影目录
          - /video/tv:/media/tv  # tv目录,存放电视剧等
          - /video/cartoon:/media/cartoon  # 动漫目录
        environment:
          - PUID=1000
          - PGID=1000
          - PERMS=true
          - TZ=Asia/Shanghai
          - UMASK=022
        restart: always
        network_mode: bridge     
        hostname: chinesesubfinder
        container_name: chinesesubfinder
        ports:
          - 19035:19035
          - 19037:19037
        logging:
            driver: "json-file"
            options:
              max-size: "10m"

    watchtower:  # 镜像更新
        image: containrrr/watchtower
        container_name: watchtower
        restart: unless-stopped  
        environment:
          - TZ=Asia/Shanghai
#         - WATCHTOWER_NOTIFICATIONS=email  # 自选
#         - WATCHTOWER_NOTIFICATION_EMAIL_FROM=xxxxx@xxx.xxx  # 邮件发送地址
#         - WATCHTOWER_NOTIFICATION_EMAIL_TO=xxxxx@xxx.xxx  # 邮件接收地址
#         - WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smpt.xxx.xxx  # 设置 SMTP 服务器
#         - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=25  # 设置 SMTP 的端口,默认为 25
#         - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=xxxx  # SMTP 的用户名
#         - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=xxxx  # SMTP 的密码
#         - WATCHTOWER_NOTIFICATION_EMAIL_DELAY=1  # 发送通知之前的延迟(秒)        
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
        networks:
          - film-bridge
        command: --cleanup prowlarr chinesesubfinder --schedule "0 0 0 * * *" #--interval 7200

#    clash:  # 代理
#        image: dreamacro/clash-premium
#        container_name: clash
#        restart: unless-stopped
#        network_mode: host
#        volumes:
#          - ./clash:/root/.config/clash

networks:  # 网络设置
  film-bridge:
    name: film-bridge

注释补充

  • 电影(movies)目录,电视剧(tv)目录,动漫(cartoon)目录和downloads建议放在同一级目录下(如果不放在同一级目录下,也没事,但是一定要注意配置文件的目录,不能写错)
vedio
└── downloads
	└── cartoon
	├── movies
	├── tv
	└── movies
├── tv
├── cartoon
└── unkown
  • 所有端口都不建议修改,除非有占用
  • 配置文件目录建议统一存放,影视文件目录按照你的需求来
  • 所有目录一定要能对应上,比如说设置了/vedio/movies为电影目录,那么剩下所有电影目录都得填写这个
  • jackett目前以弃用,换为prowlarr
  • 如果网络不佳,下载很慢,可以启用clash,设置请自行完成
  • PUID和PGID建议使用1000,UMASK建议设置为022

启动

docker-compose up -d

3. 参数具体解释

1. Jackett

Parameter Function
-p 9117 网页界面
-e PUID=1000 对于 UserID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e TZ=Asia/Shanghai 指定时区以使用。
-e AUTO_UPDATE=true 允许 Jackett 在容器内部进行更新(目前由 Jackett 推荐并默认启用)
-e RUN_OPTS=<run options here> 可以选择指定要传递的其他参数。
-v /config Jackett 应该存储其配置文件的位置。
-v /downloads torrent blackhole的路径。

2. Prowlarr

Parameter Function
-p 9696 Prowlarr Web 界面的端口
-e PUID=1000 对于 UserID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e TZ=Asia/Shanghai 指定时区以使用,这是 Prowlarr 所必需的
-v /config 数据库和 Prowlarr 配置

3. Radarr

Parameter Function
-p 7878 Radarr Web 界面的端口
-e PUID=1000 对于 UserID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e TZ=Asia/Shanghai 指定时区以使用,这是 Radarr 所必需的
-v /config 数据库和雷达配置
-v /movies 电影库在磁盘上的位置
-v /downloads 下载管理器输出目录的位置

4. Sonarr

Parameter Function
-p 8989 Sonarr Web 界面的端口
-e PUID=1000 对于 UserID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e TZ=Asia/Shanghai 指定时区以使用,这是 Sonarr 所必需的
-v /config 数据库和声纳配置
-v /tv 电视库在磁盘上的位置
-v /downloads 下载管理器输出目录的位置

5. BGMI

Parameter Function
-p 80:80 BGMI Web端口
-p 9091:9091 transmission web端口 当下载器设置为-e DOWNLOADER=transmission时,需要映射9091端口,68006880端口无需映射
-p 6800:6800 aria2 端口 当下载器设置为-e DOWNLOADER=aria2时,需要映射68006880端口,9091端口无需映射
-p 6880:6880 ariang Web端口
-p 51413:51413/tcp Torrent 端口 TCP
-p 51413:51413/udp Torrent 端口 UDP
-e PGID=1000 对于 GroupID - 请参阅上面的
-e PUID=1000 对于 UserID - 请参阅上面的说明
-e TZ=Asia/Shanghai 时区
-e DOWNLOADER=transmission / -e DOWNLOADER=aria2 内部下载器,内置aria2和transmission,可以自行选择
-e BGMI_SOURCE=mikan_project BGMI 默认数据源(bangumi_moe、mikan_project 或 dmhy)
-e BGMI_ADMIN_TOKEN=password 设置 BGMI Web 界面身份验证令牌
-v /bgmi:/bgmi BGMI 配置文件目录 /
-v /home/video2/NEW:/media 媒体文件目录,包含下载文件和硬链接后的文件

6. Overseerr

Parameter Function
-p 5055 Web界面的端口。
-e PUID=1000 对于 UserID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e TZ=Asia/Shanghai 指定时区以使用
-v /config 包含所有相关的配置文件。

7. Nas-Tools

Parameter Function
-p 3113:3000 nas-tools Web 端口
-e PUID=1000 对于 UserID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e UMASK=022 权限掩码设置
-e NASTOOL_AUTO_UPDATE 自动更新
-e REPO_URL=https://ghproxy.com/https://github.com/jxxghp/nas-tools.git Github加速,网络很差可以选择
-v /config 包含所有相关的配置文件。
-v /media 媒体文件夹

8. Plex

Parameter Function
-p 32400:32400/tcp Plex 媒体服务器 Web端口
-p 3005:3005/tcp \
-p 8324:8324/tcp 通过 Plex Companion 控制 Roku 的 Plex
-p 32469:32469/tcp 访问 Plex DLNA 服务器
-p 1900:1900/udp 访问 Plex DLNA 服务器
-p 32410:32410/udp 当前 GDM 网络发现
-p 32412:32412/udp 当前 GDM 网络发现
-p 32413:32413/udp 当前 GDM 网络发现
-p 32414:32414/udp 当前 GDM 网络发现
-e TZ=Asia/Shanghai 时区
-e ADVERTISE_IP=http://192.168.31.96:32400/ WEB IP ,改为你自己的
-v /config plex配置文件目录
-v /transcode 转码文件临时存放目录
--device /dev/dri:/dev/dri 硬件加速

9. qbittorrentee

Parameter Function
-p 6881:6881 BT下载监听端口
-p 6881:6881/udp BT下载DHT监听端口
-p 8080 Web 端口
-e PUID=1000 对于 UserID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e TZ=Asia/Shanghai 时区
-v /config qb配置文件目录

10. Transmission

Parameter Function
-p 9091 网页界面
-p 51413 种子端口 TCP
-p 51413/udp Torrent 端口 UDP
-e PUID=1000 对于 User ID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e TZ=Asia/Shanghai 指定时区以使用
-e TRANSMISSION_WEB_HOME=/combustion-release/ 指定备用 UI 选项是/combustion-release//transmission-web-control//kettu//flood-for-transmission//transmissionic/
-e USER=username 指定接口的可选用户名
-e PASS=password 指定接口的可选密码
-e WHITELIST=iplist 指定逗号分隔的 ip 白名单的可选列表。填写 rpc-whitelist 设置。
-e PEERPORT=peerport 为 torrent TCP/UDP 连接指定一个可选端口。填充对等端口设置。
-e HOST_WHITELIST=dnsname list 指定逗号分隔的 dns 名称白名单的可选列表。填写 rpc-host-whitelist 设置。
-v /config 传输应存储配置文件和日志的位置。
-v /downloads 本地下载路径。
-v /watch 监视 torrent 文件的文件夹。

11. Aria2

Parameter Function
-e PUID=1000 对于 User ID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e UMASK_SET=022 权限掩码设置
-e RPC_SECRET=password RPC 密钥设置,即 WebUI 连接时需要填写的密码,只建议使用字母和数字。
-e RPC_PORT=6800 RPC 端口设置。
-e LISTEN_PORT=6888 BT 监听端口(TCP)、DHT 监听端口(UDP)设置,即 Aria2 配置中
-e DISK_CACHE=64M 磁盘缓存设置,默认值64M。建议在有足够的内存空闲情况下设置为适当增加大小,以减少磁盘 I/O ,提升读写性能,延长硬盘寿命。比如128M256M等。此项值仅决定上限,实际对内存的占用取决于网速(带宽)和设备性能等其它因素。当下载文件超过这个大小且网速足够快时最多会占用所设置大小的内存,所以不宜过大,设置不当轻则进程终结、重则宕机。
-e IPV6_MODE=false IPv6 模式。
-e UPDATE_TRACKERS=true 自动更新 BT tracker 。PT 下载和想手动填写设置 BT tracker 需求必须禁用。
-e CUSTOM_TRACKER_URL= 自定义 BT tracker 列表获取链接,多个链接可以用半角逗号(,)进行分隔。如果没有指定则默认从https://trackerslist.com/all_aria2.txt进行获取。
-e TZ=Asia/Shanghai 时区
-v /config 配置目录映射
-v /downloads 下载目录映射 不要有中文
--network=host 使用 host 网络模式。直接使用宿主机网络,免去端口映射导致的部分性能损失,且灵活性更高,可更方便的配置使用 IPv6 网络。

12. ChineseSubFinder

Parameter Function
-e PUID=1000 对于 User ID - 请参阅上面的说明
-e PGID=1000 对于 GroupID - 请参阅上面的说明
-e PERMS=true 是否重设/media权限
-e TZ=Asia/Shanghai 时区
-e UMASK=022 权限掩码
-p 19035 Web界面
-p 19037 用于webui 的视频列表读取图片,务必设置不要暴露到外网
-v /config 保存配置、日志等文件的路径
-v /media 媒体目录
-v /root/.cache/rod/browser chrome存放目录

5. 设置

大致思路讲解

如果直接开始设置,有些人可能比较蒙,我这边先讲解一下过程

首先你在Overseerr选择好你想看的电影或者电视剧,它会把这个请求发给Radarr或者Sonarr,Radarr或者Sonarr会配合Prowlarr索引器找到你想看的电影或者电视剧的下载用的种子,然后Radarr或者Sonarr会把下载种子发给aria2或者qb进行下载,下载完成后电影会在下载目录,Radarr或者Sonarr会把电影或者电视剧移动到movies或者tv目录,plex会进行扫描,如果扫描到了这部电影或者电视剧,它就会把下载完成发给Overseerr,这样子就完成了一部电影的自动下载

设置开始前,先给个提醒:每个人环境不同,填写的IP也是不同的。

1. 双qbittorrentee

访问IP+8081,IP+8082

默认是帮忙已经设置好了,无需过多设置

只需要在连接这边,勾上Automatically update public trackers list即可

image-20220724115432353

2. 双Aria2与ariang设置

访问IP+6880,进入ariang管理界面

像图中这样设置,连接好两个aria2下载器,ip可以写dockerIP,端口一个6800(movies),一个6801(tv)

image-20220724115411525

image-20220724115719149

Radarr Sonarr 连接下载器解释

前面创建了两个aria2和qb,我这边分配的是Radarr一个aria2加上qb,Sonarr也是一个aria2加上qb

Radarr是为电影服务的,所以连接的是qbittorrentee-movies(端口8081)和 aria2-movies(端口6800)这两个下载器

Sonarr是为剧集动漫服务的,所以连接的是qbittorrentee-tv(端口8082)和 aria2-tv(端口6801)的这两个下载器

那么接下来就开始设置Radarr和Sonarr吧

3. Radarr设置

访问IP+7878,进入管理界面

先将语言的两项全部设置为中文

image-20220724120428052

然后进入媒体管理,设置根目录,与图片一致即可

image-20220724120517234

然后进入影片质量,将Unknown拉到无限制

image-20220724120637201

到下载客户端,添加两个下载器,分别是容器名称为qbittorrentee-movies(端口8081) aria2-movies(端口6800)的这两个下载器

image-20220725175714814

image-20220724120740442

进入元数据,按照图片设置

image-20220724121033578

image-20220724121112747

image-20220724121127386

4. Sonarr设置

访问IP+8989,进入管理界面

设置与Radarr基本一致,这边就放几张图片

要注意的是,Sonarr目前没有中文

image-20220724121941905

image-20220724121959752

到下载客户端,添加两个下载器,分别是容器名称为qbittorrentee-tv(端口8082) aria2-tv(端口6801)的这两个下载器

image-20220724122014652

image-20220724122119520

image-20220724122129259

5. Prowlarr设置

访问IP+9696,进入管理界面

进入设置 将UI语言改为中文

image-20220724121251993

选择添加索引器,添加自己想要的索引器即可

image-20220724120046096

选择好url,先点击测试,然后保存

image-20220724120231670

进入设置-应用程序,添加Radarr和Sonarr,apikey获取分别进入Radarr和sonarr,来到设置-通用-安全即可看到

image-20220724121340542

image-20220724121450194

image-20220724121210190

image-20220724121629007

image-20220724121649693

6. Plex设置

plex设置这里就不过多演示了,可以去看看其他教程

我这边推荐韩风Talk大佬的plex教程视频

https://www.bilibili.com/video/BV1EL411E7E9?share_source=copy_web

放几张图片

image-20220724122523439

image-20220724122549880

7. Overseerr设置

overseerr是有设置引导的,按照引导一步步设置好plex,radarr,sonarr即可

这里不过多展示了,每个人环境不同。填写的IP也是不同的

Plex设置

image-20220725181114924

image-20220725181133434

Radarr设置

image-20220725181220951

image-20220725181241102

Sonarr设置

image-20220725181326469

image-20220725181341681

这边通知可以选择telegram,具体自行百度

image-20220724122908577

自动化下载设置完成,测试方法

设置完成后,可以在Overseerr里面选择一部电影,看看能不能正常搜刮然后自动下载,如果可以,就表明设置成功了

8. 配合Kodi

6. 参考资料及感谢

https://www.plex.tv/

https://overseerr.dev/

https://sonarr.tv/

https://radarr.video/

https://github.com/allanpk716/ChineseSubFinder

https://github.com/Prowlarr/Prowlarr

https://hub.docker.com/r/superng6/qbittorrentee

https://hub.docker.com/r/p3terx/aria2-pro

https://www.baidu.com/link?url=1l6_-N8Q_mDqi6HKI2V3T2T-MXpenofzveyb0ghou2v0ICNHnCTSJPxGc47AmeM5vTjeLqZ1ydUcah1BLko0BK&wd=&eqid=c21573d30043b5a10000000462dccd82

https://www.bilibili.com/video/BV1aU4y1M7KP?share_source=copy_web

https://www.bilibili.com/video/BV18f4y1M7mY?share_source=copy_web

https://blog.csdn.net/wbsu2004/article/details/122996443

https://post.smzdm.com/p/avw3xvqm/

https://sleele.com/2020/08/31/sonarr-radarr-qbittorrent-硬链接讲解/

https://zhuanlan.zhihu.com/p/480817148

https://www.bilibili.com/read/cv16515847

https://space.bilibili.com/472755599