MoviePilot 搭建
MoviePilot 搭建
起因 & 背景
前段时间由于一些原因, nas-tools 工具作者不再维护了,转而投向 MoviePilot 的开发,最近看更新日志已经可以满足我大部分功能需求,正好最近有空,给媒体服务器升级一下
我的环境很有可能跟你的不一样,还请自行斟酌
由于之前已经搭建了 nas-tools 的环境,搭建过程相对来说简单一些,本文会尽量详细的介绍每个步骤
CookieCloud 搭建
CookieCloud 的搭建过程非常简单,需要分别安装客户端和服务端,服务端直接在群晖 docker 中搜索 CookieCloud,我安装的版本是 easychen/cookiecloud
,仅需要配好端口映射即可
客户端直接安装 Chrome 插件,然后按照下图填入服务器地址、key 和密码
注意服务器地址需要使用公网地址,由于我自己使用了 Surge Ponte 可以不把服务暴露在公网中,如果你没有类似的工具,可以考虑使用群晖自身的 DDNS 功能
在配置完毕后,点一下手动保存,到这里 CookieCloud 的工作就完成了
群晖文件层级
在我的群晖中,主要有两个文件夹 docker
和 视频
文件夹,其中 docker
存放所有容器的配置,视频
存放所有媒体文件,如果你的路径跟我的不一致,还请自行调整
视频/link
目录是专门给 plex 使用的,MoviePilot 在检测到视频完成下载后,会将内容以硬链接的形式转移到 link 目录下
这里的 视频/temp
目录,是 qbit 下载文件时的临时存放目录
.
├── docker
│ ├── moviepilot
│ │ ├── config
│ │ ├── main
│ │ └── docker-compose.yaml
│ └── nas-tools
└── 视频
├── link
│ ├── 日番
│ ├── 电影
│ └── 电视剧
├── temp
├── 日番
├── 电影
└── 电视剧
通知
之前在 nas-tools 上使用 bark 作为通知方式,但是截止到目前 MoviePilot 尚未支持 bark,我在目前 企业微信
、TG
和 Slack
三者之间选了 Slack
作为通知方式,由于整体配置较为繁琐,可以参考下方视频
虽然这个教程是基于 nas-tools 的,但是在 MoviePilot 上依然好用
最终通知的样子长这样
配置 MoviePilot
目前 MoviePilot 绝大多数内容都是由 env 进行配置,所以必须要了解每个变量到底是做什么的,建议在这一步开始前去读一读官方的 README,这里我在群里热心老哥提供的 compose 文件的基础上做了一些修改,同样的你也需要根据自身环境情况稍作修改
搭建时我使用的版本为 1.0.9,如果新版本出现问题需要自行调整
version: "3"
services:
moviepilot:
image: jxxghp/moviepilot:latest
ports:
- 3020:3020 # web 接口
- 3001:3001 # overseerr 接口
restart: always
network_mode: bridge
hostname: moviepilot
volumes:
- /volume1/docker/moviepilot/main:/moviepilot #程序主目录,必选
- /volume1/docker/moviepilot/config:/config #config 配置文件,必选
- /volume1/视频:/volume1/视频
- /volume1/docker/nas-tools:/volume1/docker/nas-tools
environment:
# 基础设置
- NGINX_PORT=3020
- PUID=0
- PGID=0
- UMASK=000
- SUPERUSER=admin #登录账号
- SUPERUSER_PASSWORD= #登录密码
- API_TOKEN=moviepilot
- MOVIEPILOT_AUTO_UPDATE=true #重启更新
- PROXY_HOST=你的代理 # 代理地址
- MOVIEPILOT_CN_UPDATE=true
- TMDB_API_DOMAIN=api.tmdb.org
# 下载目录设置
- DOWNLOAD_PATH=/volume1/视频 # 下载保存目录
- DOWNLOAD_CATEGORY=false #下载二级分类开关
- DOWNLOAD_MOVIE_PATH=/volume1/视频/电影
- DOWNLOAD_TV_PATH=/volume1/视频/电视剧
- DOWNLOAD_ANIME_PATH=/volume1/视频/日番
# 媒体库目录设置
- LIBRARY_PATH=/volume1/视频/link #媒体库目录
- LIBRARY_MOVIE_NAME=电影 #电影目录名
- LIBRARY_TV_NAME=电视剧 #电视剧目录名
- LIBRARY_ANIME_NAME=日番 # 动漫目录名
- LIBRARY_CATEGORY=true # 媒体库自动分类功能
# 媒体库功能设置
- DOWNLOAD_SUBTITLE=true # 下载站点字幕
- DOWNLOADER_MONITOR=true # 下载器监控
- TORRENT_TAG=MOVIEPILOT #种子标签
- SCRAP_METADATA=true # 刮削入库的媒体文件
- REFRESH_MEDIASERVER=true # 入库刷新媒体库
- TRANSFER_TYPE=link #转移方式,支持link/copy/move/softlink
# CookieCloud设置
- COOKIECLOUD_HOST=http://xxx:8080 #CookieCloud服务器地址 必须添加
- COOKIECLOUD_KEY= #cc用户KEY
- COOKIECLOUD_PASSWORD= #cc端对端加密密码
- COOKIECLOUD_INTERVAL=180 # CookieCloud同步间隔(分钟)
- USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203 #CookieCloud对应的浏览器UA,可选,同步站点后可以在管理界面中修改
# 消息通知渠道
- MESSAGER=slack #消息通知渠道
# slack通知
- SLACK_OAUTH_TOKEN=xoxb-xxx #Slack Bot User OAuth Token
- SLACK_APP_TOKEN=xapp-xxx #Slack App-Level Token
- SLACK_CHANNEL= #频道名称,默认全体
# 下载器设置
##qbittorrent设置项
- QB_HOST=http://xxx:xxx # qbittorrent地址
- QB_USER= #qbittorrent用户名
- QB_PASSWORD= #qbittorrent密码
# 媒体服务器
- MEDIASERVER=plex
- PLEX_HOST=http://xxx:32400
- PLEX_TOKEN=
- MEDIASERVER_SYNC_INTERVAL:6 #媒体服务器同步间隔(小时)
# 用户认证
- AUTH_SITE=audiences #认证站点
- AUDIENCES_UID= # 观众 ID
- AUDIENCES_PASSKEY= # 观众 passkey
# 其他设置
- BIG_MEMORY_MODE=true #大内存模式
下面我会挑一些可能会造成理解问题的参数做一些解释
下载目录
- DOWNLOAD_PATH=/volume1/视频
- DOWNLOAD_CATEGORY=false
- DOWNLOAD_MOVIE_PATH=/volume1/视频/电影
- DOWNLOAD_TV_PATH=/volume1/视频/电视剧
- DOWNLOAD_ANIME_PATH=/volume1/视频/日番
这段内容是指在 qbit 下载结束后,将文件移动到哪里,同时不开启二级分类,实际对应的目录如下
.
└──视频
├── 日番
├── 电影
└── 电视剧
媒体库目录
- LIBRARY_PATH=/volume1/视频/link
- LIBRARY_MOVIE_NAME=电影
- LIBRARY_TV_NAME=电视剧
- LIBRARY_ANIME_NAME=日番
- LIBRARY_CATEGORY=true
这段内容是指,在 MoviePilot 将 qbit 下载的文件,移动后,要把这个文件 硬链接
到哪里,也就是同步给 plex 的位置
最开始我被这里搞混了,上面是 路径
,而到这里却变成了 文件夹名称
,实际对应的目录如下
└── 视频
├── link
│ ├── 日番
│ ├── 电影
│ └── 电视剧
其他配置
其他配置相对来说都比较好理解,比如你没有使用 plex,而使用的 emby,去 README 找到相关的 key 自行修改即可
运行 MoviePilot
在配置好 compose 文件后,我们将文件上传到这个目录
接着打开 7.2+
版本的 docker 选择 项目->新增,最后选择上传好的 compose 文件,就可以运行了
第一次运行时,MoviePilot 会下载浏览器内核等信息,推荐在日志中查看进度
当你通过 web 进入后台看到登录界面,就说明搭建好了
配置不生效
偶尔我会发现停止运行,修改 compose 文件再运行,刚刚配置的新内容无法生效,此时你需要点击清除,然后再运行构建,这个问题解决了
插件配置
目前我添加了如下插件,其中 历史记录同步
这个插件我为了演示重新装时,导致我 MoviePilot 整个服务挂了,重启也依然有问题,猜测可能是 issue 中关于 db 死锁问题导致的,因此本篇对这个就不做详细介绍了
在 compose 文件路径映射中,有 nas-tools 相关的路径,就是为这个插件服务的
自动备份
这个插件非常重要,目前 MoviePilot 还不算太稳定,一定要做好备份,我这里的配置是最多保存 5 份,每天 12 点备份一次
备份会自动存放在这个目录下,如果你的服务不幸挂了,需要恢复,此时需要手动解压这个 zip 文件
zip 文件的内容就两个,看下图对照非常好理解,直接拖进去覆盖就完成了备份恢复
其他插件
其他插件都非常好理解,我这里就不做过多的介绍了,自己挨个看一遍,挑自己喜欢的用就行~
overseerr
在 MoviePilot README 中,我发现作者增加了 overseerr
的支持,出于好奇我自己也搭了一个服务,正好我手上还有一台 Mac Mini,我就直接把 overseerr
搭建在 Mac 上了
在 MoviePilot Compose 文件中 3001 端口的开放就是给 overseerr
准备的
这里同样使用 compose 创建,暴露在 5055 这个端口上
---
version: '3'
services:
overseerr:
image: sctx/overseerr:latest
container_name: overseerr
environment:
- LOG_LEVEL=debug
- TZ=Asia/ShangHai
- PORT=5055 #optional
ports:
- 5055:5055
volumes:
- ./config:/app/config
restart: unless-stopped
接着运行如下指令,在 Mac 上开启服务
docker compose up -d
第一次访问时,overseerr
会让你登录,你可以选择使用 plex 登录,接着来到后台,设定->服务器
这里的 应用程序秘钥
指的就是 MoviePilot compose 文件中的 API_TOKEN
即 moviepilot
最后
整体 MoviePilot 已经实现了 nas-tools 绝大多数的功能,新 UI 的审美也是在线的,唯一美中不足的是目前还没有那么稳定
所以在这个阶段使用,请一定一定做好备份
- 感谢你赐予我前进的力量