根据作者意愿,请勿将本文转载至任何中国社交媒体与平台,包括但不限于小红书、Bilibili、微博、简书、什么值得买等。
相信绝大多数搭建了 NAS 的人都有着一个比较重要的使用途径,即使用 Emby、Plex、Jellyfin 或 Infuse 来搭建专属于自己的家庭影院。在此之前,我一直使用 NasTools 与 Plex 来完成我的家庭影院搭建,可以很好的完成自动化的观影需求,在 NasTools 内订阅某个剧集或者某部电影,便不再关心资源下载等内容,等待 NasTools 自动完成即可,如下图所示。
后续因为一些众所周知的因素,NasTools 的作者不得不停止更新并将 Github Repo 进行了 Archive 处理,尽管最后的版本对我而言仍旧可以保持日常需求,但是有的时候也不得不面对一些问题,比如在搜索资源时耗时越来越长等。但是有一个好消息,NasTools 的原作者最近开了新坑,基于 NasTools 的代码精简化需求,开发了新的影视管理工具 MoviePilot ,看到其他人的描述说新版本的软件运行速度有了相当多的提升。
话不多说,那便开始部署,我也在这里记录下我的安装过程,我在这里使用 Synology 的 Container Manager(原 Docker Manager),以下内容也可稍作修改应用到其他支持 Docker 的平台,就凭各位自行发挥了。
打开 Synology 套件中心搜寻 Container Manager 并进行安装,安装过程根据相应提示即可。
打开 Synology 控制面板,选择共享文件夹,创建新的共享文件夹,文件夹名称根据需求自行选择,我这里就叫做 docker。
接下来,进入 Synology File Station,鼠标右键选择刚刚穿件的目录,进入 属性
菜单,选择 权限
菜单中的 新增
,用户与组选项选择 EveryOne
,应用于全部文件夹,给予 读取与写入
权限,如下图:
点击应用后再选择 应用到这个文件夹,子文件夹及文件
,如下图,点击保存后即可。
在 File Station 内进入上一步设置的目录,新建文件夹,根据个人喜好选择命名即可,我这里将命名为 theater
。
设置完成后打开 Container Manager,点击左侧 项目
,再选择 新增
,根据自己喜好命名,路径选择为上一步设置的目录,来源选择 创建 docker compose
,内容留空进入下一步即可,设置完成后如下图所示:
完成后点进 theater
进入项目,选择 YAML
配置,我们的准备工作便已完成。
我这里就继续沿用之前 NasTools 的配置文件了。
根据 MoviePilot 项目描述,CookieCloud 为本项目的必须依赖,原文如下:
站点信息需要通过 CookieCloud 同步获取,因此需要安装 CookieCloud 插件,将浏览器中的站点 Cookie 数据同步到云端后再同步到 MoviePilot 使用。
尽管 MoviePilot 项目中已经包含了公共 CookieCloud 服务器,但是本着能自建即自建的原则,我们也会在这里自行搭建 CookieCloud 服务器,docker compose
代码如下:
version: "3"
services:
cookie-cloud:
image: easychen/cookiecloud:latest
restart: always
network_mode: bridge
hostname: cookie-cloud
ports:
- 8088:8088
将上面的代码复制粘贴进入 Container Manager,点击保存后选择启动,会看到 Container Manager 正在拉取镜像,如下图:
等这里的代码结束运行后,在浏览器输入 http://${Synology IP}:8088
,如果看到如下界面,则表示部署成功:
进入 CookieCloud Release 下载最新的浏览器插件,并进行解压保存。进入 Chrome 插件设置:chrome://extensions/
,打开开发者模式,选择 加载已解压的扩展程序
,选择刚刚的解压目录,点击选择进行安装,如下图所示:
安装完成后,我们可以打开 CookieCloud 插件进行配置,具体的教程可以移步 官方教程 ,下面以我的配置进行示例:
设置完成后点击下方 保存
与 测试
确保这里配置正确。到此为止,CookieCloud 配置完成。
根据 MoviePilot 项目文档,其支持 QBitTorrent
与 Transsisson
,大家可以根据个人喜好自行选择,我这里便以 QBitTorrent 为例,Transsisson 大家可以自行搜寻相关内容进行安装。
第一步我们需要在之前设置的 MovePilot 项目的运行目录内新建一个名为 qbittorrent
的目录,这里的目的是将 QBitTorrent 的部分文件映射出来,以便我们进行后续操作,如忘记密码的修改或者 docker 迁移。如下图所示:
同时,我们需要新建 QBitTorrent 的下载目录,以我个人的设置为例,如下:
我这里设置为 media/movies(seriese)/raw
存储下载的原始媒体文件,media/movies(seriese)/clean
存储经过刮削的媒体文件,downloads
目录存储其他的下载内容。
以上内容准备后,我们便可以开始部署,docker compose
文件如下,你可以根据你的需求进行修改,以下仅为示例:
version: "3"
services:
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
network_mode: host # 可以更改为 bridge,我这里选择 host 仅为方便设置 ipv6
restart: always
volumes:
- ./qbittorrent:/config # 冒号左边请修改为你想保存配置的路径
- /volume1/media:/media # 媒体目录,多个目录需要分别映射进来,需要满足配置文件说明中的要求
- /volume1/downloads:/downloads
environment:
- PUID=1026
- PGID=100
- WEBUI_PORT=8999
- TZ=Asia/Shanghai # 时区
我们再次进入 Container Manager,选择 停止
项目,并将上文的代码复制粘贴,随后再次点击启动,如下图:
等待弹出窗口内代码运行完成后,浏览器内输入 http:${Synology IP}:8999
便可进入 QBitTorrent WEBUI,如下图:
上一步后我们需要输入用户名(默认 admin)与密码(默认 adminadmin),便可以进入界面,点击设置图标便可以进入设置,各位根据自己的需求自行调参,可以参考 qBittorrent 参数详细设置教程。
MovilePilot 支持 Emby、Plex 与 JsllyFin,大家可以根据个人需求选择相应的媒体服务器,我个人的体验结论是:
在上一步中我们新建了媒体目录,在这一步便可以开始应用。同时,我们也需要新建一个目录用于存储 Plex 的配置,与上文中 QBitTorrent 相同,便不再赘述。这里的 docker-compose
文件如下,各位可以根据自己的需求进行修改:
version: "3"
services:
plex:
image: linuxserver/plex:latest
container_name: plex
network_mode: host
restart: always
environment:
- PUID=1026
- PGID=100
- VERSION=docker
- TZ=Asia/Shanghai # 时区
volumes:
- ./plex:/config
- /volume1/media:/media
这里步骤如上文相同,复制粘贴重新构建项目即可,这里不再赘述。
经过上文配置,这时便可以打开浏览器输入 http:${Synology IP}:32400
,按照文字说明进行配置,可以参考 如何在 FreeNAS 上安装 Plex 媒体服务器,跳过前文的安装,直接从网页配置看起即可。
建议开始之前首先熟读 MoviePilot 配置文档,熟悉每一项环境变量的命名与含义。
与上一步相同的,我们需要新建一个目录用于存储 MoviePilot 配置,如图所示:
然后我们便要开始稍显繁琐的 Docker 配置,我们跟随官方文档,开始一步步的编写 docker compose
文件,首先开头还是老几样:
version: "3"
services:
moviepilot:
image: jxxghp/moviepilot:latest
volumes:
- ./movie-pilot:/moviepilot # 冒号左边请修改为你想保存配置的路径
- ./movie-pilot/config:/config# 冒号左边请修改为你想保存配置的路径
- /volume1/media:/media # 媒体目录,多个目录需要分别映射进来,需要满足配置文件说明中的要求
- ./qbittorrent/qBittorrent/BT_backup:/BT_backup #qb 种子目录,转移和辅钟需要
- ./nastools/config:/nas-tools/config # nt数据库,用于转移历史记录,如果之前没有安装过 NasTools 的可以忽略删除这一行
restart: always
network_mode: bridge
ports:
- 3003:3000
hostname: movie-pilot
以上这一部分为基础配置,接下来才是重头戏。
要在 compose
文件中设置环境变量,其关键词为 environment
,只需要在上文中的代码中继续加入即可,接下来我们来一个个的填入 需要配置的环境变量。
首先我们要获取 Synology 用户的 uid
与 gid
,这里可以通过 ssh 到 Synology 输入命令来获取,第一步需要打开 Synology 的 ssh 权限,如图所示:
接下来我们可以使用如下命令获取相关内容:
ssh ${username}@${Synology IP}
# 根据提示信任 Host 以及输入密码进行验证
username@SynologyNas:~$ id
uid=1026(username) gid=100(users) groups=100(users),101(administrators)
获取到上述内容之后,我们便可以设置以下内容,关于这里为什么不设置默认值,因为默认值为 0 的话即表明该程序可以获得我们 Synology 的 root 权限,这是不大安全的,具体的大家可以自行搜寻相关资料进行了解,这里不再赘述,这一步我们需要添加的环境变量如下:
environment:
- PUID=1026 # 运行程序用户的 uid,默认 0
- PGID=100 # 运行程序用户的 gid,默认 0
- UMASK=022 # 掩码权限,默认 000,可以考虑设置为 022
- MOVIEPILOT_AUTO_UPDATE=true #重启更新,true/false,默认 true
environment:
- MOVIEPILOT_CN_UPDATE=false #重启更新是否使用国内加速,true/false,默认false
- NGINX_PORT=3000 #WEB服务端口,默认3000,可自行修改,但不能为3001
- SUPERUSER=admin #超级管理员用户名,默认admin,安装后使用该用户登录后台管理界面
- SUPERUSER_PASSWORD=password # 超级管理员初始密码,默认password,建议修改为复杂密码
- API_TOKEN=moviepilot #API密钥,默认 moviepilot,在媒体服务器 Webhook、微信回调等地址配置中需要加上 ?token= 该值,建议修改为复杂字符串
- PROXY_HOST=http(s)://ip:port #网络代理(可选),访问 themovied b需要使用代理访问,格式为 http(s)://ip:port
- TMDB_API_DOMAIN=api.themoviedb.org # TMDB API地址,默认 api.themoviedb.org,也可配置为 api.tmdb.org 或其它中转代理服务地址,能连通即可
DOWNLOAD_PATH: 下载保存目录,注意:需要将 moviepilot 及下载器的映射路径保持一致,否则会导致下载文件无法转移
这里的这一句话看起来有些绕,但是我们解决的方式其实很简单,我们只需要保持 MoviePilot 与 QBitTorrent 的 Docker 下载目录映射名称一致即可,我们在之前已经将其均设置为 media
,所以这里无需过多考虑。
environment:
- DOWNLOAD_PATH=/media #下载保存目录,注意:需要将moviepilot及下载器的映射路径保持一致,否则会导致下载文件无法转移 - 仅供参考
- DOWNLOAD_MOVIE_PATH=/media/movies/raw #电影下载保存目录,必须是DOWNLOAD_PATH的下级路径,不设置则下载到 DOWNLOAD_PATH
- DOWNLOAD_TV_PATH=/media/series/raw #电视剧下载保存目录,必须是DOWNLOAD_PATH的下级路径,不设置则下载到 DOWNLOAD_PATH
- DOWNLOAD_CATEGORY=false #下载二级分类开关,true/false,默认 false,开启后会根据配置 category.yaml 自动在下载目录下建立二级目录分类,因为我不需要这里进行更加详细的分类,电影与剧集两个分类即可,所以可以保持 false,各位可以根据自身需求进行更改
- DOWNLOAD_SUBTITLE=true #下载站点字幕,true/false,默认true
- REFRESH_MEDIASERVER=true #入库刷新媒体库,true/false,默认true
- SCRAP_METADATA=true #刮削入库的媒体文件,true/false,默认true
- TORRENT_TAG=MOVIEPILOT #种子标签,默认为 MOVIEPILOT,设置后只有 MoviePilot 添加的下载才会处理,留空所有下载器中的任务均会处理
这里的路径与上文相同,我们只需要保持 MoviePilot 与 Plex 的 Docker 媒体库目录映射名称一致即可。
environment:
- LIBRARY_PATH=/media #媒体库目录,多个目录使用,分隔 - 仅供参考
- LIBRARY_MOVIE_NAME=movies/clean #电影媒体库目录名,默认电影
- LIBRARY_TV_NAME=series/clean #电视剧媒体库目录名,默认电视剧
- LIBRARY_CATEGORY=false # 媒体库二级分类开关,true/false,默认 false,开启后会根据配置 category.yaml 自动在媒体库目录下建立二级目录分类,可以根据自身需求进行更改
# 转移方式,支持link/copy/move/softlink
- TRANSFER_TYPE=link
environment:
- COOKIECLOUD_HOST=http://10.0.0.6:8088 # CookieCloud服务器地址,格式:http://${Synology IP}:port,必须配置,否则无法添加站点
- COOKIECLOUD_KEY=从 CookieCloud 插件复制
- COOKIECLOUD_PASSWORD=从 CookieCloud 插件复制
- COOKIECLOUD_INTERVAL=180 # CookieCloud同步间隔(分钟)
# CookieCloud对应的浏览器UA
- USER_AGENT=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 #CookieCloud 对应的浏览器 UA,可选,设置后可增加连接站点的成功率,同步站点后可以在管理界面中修改
暂时跳过。
以 QBitTorrent 为例,其他的请自行探索。
environment:
- DOWNLOADER=qbittorrent #下载器,支持qbittorrent/transmission,QB 版本号要求>= 4.3.9,TR 版本号要求 >= 3.0,同时还需要配置对应渠道的环境变量,非对应渠道的变量可删除,推荐使用 qbittorrent
#qbittorrent设置项
- QB_HOST=http://10.0.0.6:8999 #qbittorrent地址,格式:http://${Synology IP}:port,https需要添加 https:// 前缀
- QB_USER=username #qbittorrent用户名
- QB_PASSWORD=passport #qbittorrent密码
- DOWNLOADER_MONITOR=true #下载器监控,true/false,默认为true,开启后下载完成时才会自动整理入库
以 Plex 为例,首先我们需要获取 X-Plex-Token
,在浏览器中登陆 Plex,F12
进入开发者模式,选择 Network
,搜索栏输入关键词进行搜寻,如下图所示:
获取后进行复制粘贴即可。
environment:
- MEDIASERVER=plex #媒体服务器,支持emby/jellyfin/plex,同时还需要配置对应媒体服务器的环境变量,非对应媒体服务器的变量可删除,推荐使用emby
- PLEX_HOST=http://10.0.0.6:32400 # Plex 服务器地址,格式:http://${Synology IP}:port,https 需要添加 https:// 前缀
- PLEX_TOKEN= # Plex 网页 Url 中的 X-Plex-Token ,通过浏览器F12->网络从请求URL中获取
- MEDIASERVER_SYNC_INTERVAL=1 #媒体服务器同步间隔(小时),默认 6,留空则不同步
因为某些原因,MoviePilot 首先需要你时某一些 PT 站点的会员,才可进行使用,尽管这样提高了本项目的使用门槛,但这样可以使得本项目更加长久。详细内容可以参考 Movie Pilot 用户认证。
这里以 Audiences
进行举例,我们首先需要获取 uid
与 passkey
,登陆网站后,点击控制面板,即可获得,如下图所示:
获取后进行复制粘贴即可。
environment:
- AUTH_SITE=audiences # 认证站点,支持hhclub/audiences/hddolby/zmpt/freefarm/hdfans/wintersakura/leaves/1ptba/icc2022/iyuu
- AUDIENCES_UID=uid
- AUDIENCES_PASSKEY=passkey
与上文相同的,将最后的完成版复制粘贴加入 Container Manager,重新构建项目即可。
打开 http://${Synology IP}:3003
,如果出现登录界面,即表明安装成功,如下图所示:
输入上文中设置的账号密码登录后,即可进入主界面,如下图所示:
接下来便可以由你来进行探索这里的设定了,更加详细的关于 WEBUI 内的配置也会在日后在本文内进行更新。