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 版本,您将需要多个实例。
地址
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 将始终下载您想要的副本
- 漂亮的用户界面
3. Sonarr
简介
Sonarr 是供 Usenet 和 BitTorrent 用户使用的 PVR。它可以监控多个 RSS 提要以获取您最喜欢的节目的新剧集,并将抓取、排序和重命名它们。它还可以配置为在质量更好的格式可用时自动升级已下载文件的质量。
地址
Github:https://github.com/Sonarr/Sonarr
本次使用的Docker镜像:https://hub.docker.com/r/linuxserver/sonarr
特点
- 支持主流平台:Windows、Linux、macOS、树莓派等。
- 自动检测新剧集
- 可以扫描您现有的图书馆并下载任何缺失的剧集
- 可以观看您已经拥有的剧集的更好质量并进行自动升级。例如。从 DVD 到蓝光
- 如果一个版本失败,自动失败的下载处理将尝试另一个版本
- 手动搜索,以便您可以选择任何版本或查看未自动下载版本的原因
- 完全可配置的剧集重命名
- 与 SABnzbd 和 NZBGet 完全集成
- 与 Kodi、Plex 完全集成(通知、库更新、元数据)
- 完全支持特价和多集发行
- 和漂亮的用户界面
4. BGMI
简介
BGmi 是一个用来追番的命令行程序。
地址
Github:https://github.com/BGmi/BGmi
本次使用的Docker镜像:https://hub.docker.com/r/ddsderek/bgmi-docker-all-in-one
5. Jackett
简介
Jackett 充当代理服务器:它将来自应用程序(Sonarr、Radarr、SickRage、CouchPotato、Mylar3、Lidarr、DuckieTV、qBittorrent、Nefarious等)的查询转换为特定于跟踪器站点的 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
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
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 等多协议、多来源的命令行下载工具
地址
本次使用的Docker镜像:https://hub.docker.com/r/p3terx/aria2-pro
10. Ariang
简介
AriaNg 是一个让 aria2 更容易使用的现代 Web 前端. AriaNg 使用纯 html & javascript 开发, 所以其不需要任何编译器或运行环境. 您只要将 AriaNg 放在您的 Web 服务器里并在浏览器中打开即可使用. AriaNg 使用响应式布局, 支持各种计算机或移动设备。
特点
- 纯 Html & Javascript 实现, 不依赖任何运行时
- 响应式布局设计, 兼容计算机与移动设备
- 友好的界面交互
- 任务排序 (按文件名, 文件大小, 进度, 剩余时间, 下载速度等.), 文件排序, Bittorrent 连接节点排序
- 任务搜索
- 任务重试
- 拖拽调整任务顺序
- 更详细的任务信息 (健康度, 连接节点客户端信息等.)
- 根据特定文件类型或文件扩展名筛选文件 (视频, 音频, 图片, 文档, 应用程序, 存档文件等.)
- 多目录任务支持树形结构显示
- aria2 及单个任务的下载/上传速度图表
- 完整支持 aria2 设置选项
- 深色主题
- 支持网页地址命令行 API
- 下载完成消息通知
- 多语言支持
- 支持配置多个 aria2 RPC
- 支持导出和导入设置
- 节省带宽, 仅请求增量数据
地址
官网: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
14. Watchtower
简介
Watchtower 会监视运行容器并监视这些容器最初启动时的镜像是否需要更新。当 watchtower 检测到一个镜像已经有变动时,它会使用新镜像,使用相同的参数自动重新启动相应的容器。同时 watchtower 本身也被打包为 Docker 镜像,用一行命令即可使用 watchtower 监控所有容器,然后所有容器都会自动更新,当然也包括 watchtower 本身。
地址
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
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/download/
支持平台
Windows
Linux
Android
Raspberry Pi
macOS
iOS
tvOS
17. RSSHub
简介
RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容
地址
Github:https://github.com/DIYgod/RSSHub
DockerHub:https://hub.docker.com/r/diygod/rsshub
3. 专有名词解释
在部署前我首先要来讲一些专有名词的意思,通过讲解这些名词的意思,有助于我们更好的理解部署中设置的作用,和为什么要这样设置。
1. PUID/GUID
以下来自于Linuxserver的解释
当在主机操作系统和容器之间使用卷(-v
标志)权限问题时,我们通过允许您指定用户PUID
和组来避免这个问题PGID
。
确保主机上的任何卷目录都归您指定的同一用户所有,并且任何权限问题都会像魔术一样消失。
在这种情况下PUID=1000
,PGID=1000
找到你的用途id user
如下:
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
2. 权限掩码Umask
在计算中,umask
是一个决定掩码设置的命令,该掩码控制如何为新创建的文件设置文件权限。它还可能影响文件权限的显式更改方式。umask
也是一个设置掩码的函数,也可以指掩码本身,正式称为文件模式创建掩码**。掩码是一组位,每个位都限制了如何为新创建的文件设置相应的权限。可以通过调用umask
命令来更改掩码中的位。
具体请看Wiki的介绍
3. 硬链接hardlinking
从英文翻译而来-在计算中,硬链接是将名称与文件系统上的文件相关联的目录条目。所有基于目录的文件系统都必须至少具有一个硬链接,为每个文件指定原始名称。术语“硬链接”通常仅在允许同一文件使用多个硬链接的文件系统中使用。
没有看懂也没关系,总之就是帮你省地方,省磁盘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 端口,6800 和6880 端口无需映射 |
-p 6800:6800 |
aria2 端口 当下载器设置为-e DOWNLOADER=aria2 时,需要映射6800 和6880 端口,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 ,提升读写性能,延长硬盘寿命。比如128M 、256M 等。此项值仅决定上限,实际对内存的占用取决于网速(带宽)和设备性能等其它因素。当下载文件超过这个大小且网速足够快时最多会占用所设置大小的内存,所以不宜过大,设置不当轻则进程终结、重则宕机。 |
-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即可
2. 双Aria2与ariang设置
访问IP+6880,进入ariang管理界面
像图中这样设置,连接好两个aria2下载器,ip可以写dockerIP,端口一个6800(movies),一个6801(tv)
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,进入管理界面
先将语言的两项全部设置为中文
然后进入媒体管理,设置根目录,与图片一致即可
然后进入影片质量,将Unknown拉到无限制
到下载客户端,添加两个下载器,分别是容器名称为qbittorrentee-movies(端口8081) aria2-movies(端口6800)的这两个下载器
进入元数据,按照图片设置
4. Sonarr设置
访问IP+8989,进入管理界面
设置与Radarr基本一致,这边就放几张图片
要注意的是,Sonarr目前没有中文
到下载客户端,添加两个下载器,分别是容器名称为qbittorrentee-tv(端口8082) aria2-tv(端口6801)的这两个下载器
5. Prowlarr设置
访问IP+9696,进入管理界面
进入设置 将UI语言改为中文
选择添加索引器,添加自己想要的索引器即可
选择好url,先点击测试,然后保存
进入设置-应用程序,添加Radarr和Sonarr,apikey获取分别进入Radarr和sonarr,来到设置-通用-安全即可看到
6. Plex设置
plex设置这里就不过多演示了,可以去看看其他教程
我这边推荐韩风Talk大佬的plex教程视频
https://www.bilibili.com/video/BV1EL411E7E9?share_source=copy_web
放几张图片
7. Overseerr设置
overseerr是有设置引导的,按照引导一步步设置好plex,radarr,sonarr即可
这里不过多展示了,每个人环境不同。填写的IP也是不同的
Plex设置
Radarr设置
Sonarr设置
这边通知可以选择telegram,具体自行百度
自动化下载设置完成,测试方法
设置完成后,可以在Overseerr里面选择一部电影,看看能不能正常搜刮然后自动下载,如果可以,就表明设置成功了
8. 配合Kodi
6. 参考资料及感谢
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.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