今天我来给大家讲讲怎么在飞牛 OS 上用 Docker 安装 Moviepilot v2。Moviepilot 是一款非常实用的媒体管理工具,它可以帮助我们更好地组织和管理电影、电视剧等媒体资源,还提供了很多便捷的功能,比如自动下载字幕、媒体库同步等。下面我就把具体的安装过程分享给大家。
一、准备工作
在开始之前,确保飞牛 OS 系统已经正常运行,并且 Docker 已经安装配置好了。Moviepilot v2 是通过 Docker 来部署的,所以 Docker 是必不可少的前提条件。
二、安装过程
(一)拉取 Docker 镜像
首先,我们需要把 Moviepilot v2 的 Docker 镜像拉取到本地。打开终端,输入以下命令:
docker pull jxxghp/moviepilot-v2:latest这条命令会从 Docker Hub 上下载最新版本的 Moviepilot v2 镜像,为后面创建容器做好准备。
(二)创建并启动容器
接下来,用下面这个命令来创建并启动 Moviepilot v2 容器:
docker run --name=moviepilot-v2 \
--hostname=moviepilot-v2 \
--volume /vol2/1000/docker/moviepilot/moviepilot-v2/config:/config \
--volume /vol2/1000/docker/moviepilot/moviepilot-v2/core:/moviepilot/.cache/ms-playwright \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--volume /vol4/1000/media:/vol4/1000/media \
--env=SUPERUSER=admin \
--env=BIG_MEMORY_MODE=true \
--env=DB_WAL_ENABLE=true \
--env=TMDB_API_DOMAIN=api.tmdb.org \
--env=GITHUB_TOKEN=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 \
--env=PROXY_HOST=socks5://192.168.5.4:1080 \
--network=host \
--restart=always \
--privileged \
jxxghp/moviepilot-v2:latest我来给大家详细解释一下这个命令中各个参数的意思:
docker run:用于创建并启动一个新的容器。--name=moviepilot-v2:给这个新容器起名为 “moviepilot-v2”,方便后续管理和识别。--hostname=moviepilot-v2:设置容器的主机名为 “moviepilot-v2”,在某些需要区分不同主机的服务中可能会用到这个名称。--volume:挂载本地存储卷到容器内部。比如/vol2/1000/docker/moviepilot/moviepilot-v2/config:/config是把飞牛 OS 上的这个文件夹挂载到容器的/config路径下,用于存放 Moviepilot 的配置文件;/vol2/1000/docker/moviepilot/moviepilot-v2/core:/moviepilot/.cache/ms-playwright则是挂载了一个缓存目录,用于存放一些临时数据;/var/run/docker.sock:/var/run/docker.sock:ro这个挂载比较特殊,它是把 Docker 的套接字文件挂载到容器里,并且设置为只读模式,这样容器内的应用就可以和宿主机的 Docker 守护进程进行通信,方便进行一些容器管理操作;/vol4/1000/media:/vol4/1000/media则是把存储媒体文件的目录挂进去,方便 Moviepilot 能够访问和管理这些媒体资源。--env:设置环境变量。这里SUPERUSER=admin是设置一个超级管理员用户名为 “admin”;BIG_MEMORY_MODE=true表示开启大内存模式,可能对于处理大量媒体数据时会更高效;DB_WAL_ENABLE=true是启用数据库的写前日志功能,有助于提高数据库的可靠性和性能;TMDB_API_DOMAIN=api.tmdb.org指定了 TMDB(themoviedb.org)的 API 域名,Moviepilot 会通过这个域名去获取电影、电视剧的相关元数据;GITHUB_TOKEN=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这个是 GitHub 的令牌,用于访问 GitHub 上的一些资源,可能 Moviepilot 会从 GitHub 下载一些插件或者更新;PROXY_HOST=socks5://192.168.5.4:1080则是设置了代理服务器地址,如果需要通过代理才能访问外部网络的话,这个参数就很有用了。--network=host:让容器直接使用宿主机(飞牛 OS)的网络命名空间,这样容器内的应用就可以直接使用宿主机的网络接口,避免了 Docker 默认网络模式下的一些端口映射限制和性能开销。不过同样要注意网络安全,确保开放的端口不会引发安全风险。--restart=always:设置容器在系统重启或者容器停止后能自动重新启动,这样就不用每次手动去启动容器了,方便省心。--privileged:给容器授予特权模式,这样容器内的应用就可以获得更多的系统权限,能够访问和操作宿主机上的一些受限资源,比如硬件设备等,这对于一些需要深度集成系统功能的应用来说是非常必要的。jxxghp/moviepilot-v2:latest:指定要使用的 Docker 镜像名称和版本,latest就是最新的意思,能保证咱们用的是最新的 Moviepilot v2 功能。
三、启动与访问
(一)启动容器
如果中途容器停了,想重新启动的话,直接用下面这个命令就行:
docker start moviepilot-v2(二)访问 Moviepilot
访问:http://<你的nasip>:3000/#/dashboard

(三)配置及使用
这里我直接贴上moviepilot的官方wiki,毕竟我也不知道你要拿来干嘛,直接看官方的吧:
https://wiki.movie-pilot.org/zh/basic四、注意事项
路径和权限:一定要确保在命令里指定的那些本地存储路径是真实存在的,并且飞牛 OS 对这些路径是有读写权限的。不然 Moviepilot 会因为无法访问这些路径而出现问题,比如配置文件保存不了或者无法访问媒体文件等情况。如果出现权限问题,可以用
chmod命令来修改文件夹的权限。网络连通性:由于 Moviepilot 需要访问外部的 TMDB API、GitHub 等资源来获取数据和更新,所以要确保飞牛 OS 的网络能够正常访问互联网,并且设置的代理服务器(如果有的话)是可用的。如果网络连通性有问题,Moviepilot 可能会出现数据同步失败或者无法下载资源等情况。
环境变量准确性:刚才提到的那些环境变量设置非常关键,尤其是像 TMDB_API_DOMAIN、GITHUB_TOKEN、PROXY_HOST 这些,一定要确保它们的值是正确无误的。如果有错误的话,Moviepilot 可能会无法正常工作或者出现功能受限的情况。比如 GITHUB_TOKEN 如果设置错误,可能会导致无法从 GitHub 下载必要的资源;PROXY_HOST 如果设置错误,可能会导致网络请求无法正常转发,影响数据获取。
系统资源占用:Moviepilot v2 在运行过程中可能会占用一定的系统资源,特别是开启了 BIG_MEMORY_MODE 的情况下,对内存的需求可能会更高一些。所以要确保飞牛 OS 系统有足够的内存和 CPU 资源来支持它的运行,否则可能会出现性能下降或者容器自动停止的情况。
定期更新:为了能用上最新的功能和安全补丁,建议你定期更新 Moviepilot v2 的 Docker 镜像。你可以先用
docker pull jxxghp/moviepilot-v2:latest再次拉取最新的镜像,然后停止并删除旧的容器(用docker stop moviepilot-v2和docker rm moviepilot-v2),最后再重新运行上面那个创建并启动容器的命令来完成更新。
最后贴上所有的环境变量:
❗NGINX_PORT: WEB服务端口,默认
3000,可自行修改,不能与API服务端口冲突❗PORT: API服务端口,默认
3001,可自行修改,不能与WEB服务端口冲突PUID:运行程序用户的
uid,默认0PGID:运行程序用户的
gid,默认0UMASK:掩码权限,默认
000,可以考虑设置为022PROXY_HOST: 网络代理,访问themoviedb或者重启更新需要使用代理访问,格式为
http(s)://ip:port、socks5://user:pass@host:port、socks5h://user:pass@host:portMOVIEPILOT_AUTO_UPDATE: 重启时自动更新,
true/release/dev/false,默认release,需要能正常连接Github 注意:如果出现网络问题可以配置PROXY_HOSTCACHE_BACKEND_TYPE: V2新增配置项,缓存类型,支持
cachetools和redis,默认使用cachetoolsCACHE_BACKEND_URL: V2新增配置项,缓存连接字符串,仅外部缓存(如 Redis)需要,格式为
redis://:password@host:portCACHE_REDIS_MAXMEMORY: V2新增配置项,
Redis缓存最大内存限制,为0时不限制,未配置时,如开启大内存模式时为1024mb,未开启时为256mbHTTPS访问
ENABLE_SSL: 是否启动https访问,
true/false,启用后需要设置完整相关参数,否则无法正常访问后台,仅支持Docker环境SSL_DOMAIN: SSL域名,用于申请证书,需要与实际的后台访问域名一致
SSL_EMAIL: SSL证书申请使用的邮箱地址
AUTO_ISSUE_CERT: 是否自动签发证书,
true/false,启用后会自动安装acme.sh签发证书并定时更新,仅支持DNS认证方式,需要同时以ACME_ENV_开关设置好DNS认证相关参数;不启用时,需要手动准备SSL证书文件,以文件名:/config/certs/latest/fullchain.pem、/config/certs/latest/privkey.pem存放ACME_ENV_xx: acme.sh对应的DNS认证方式的相关参数,参数必须以
ACME_ENV_开头才会被正常使用,比如ACME_ENV_CF_Token
SUPERUSER: 超级管理员用户名,默认
admin,安装后使用该用户登录后台管理界面,注意:启动一次后再次修改该值不会生效,除非删除数据库文件!❗API_TOKEN: API密钥,V1版本默认为
moviepilot,V2版本需要配置为大于等于16个字符的复杂字符串 (如配置不符合要求将会强制重新生成,可在后台日志、env配置文件或系统设定中查看最新的值) 。在媒体服务器Webhook、微信回调等地址配置中需要加上?token=该值。BIG_MEMORY_MODE: 大内存模式,默认为
false,开启后会增加缓存数量,占用更多的内存,但响应速度会更快DB_WAL_ENABLE: V2新增配置项,WAL模式,默认为
false,可提升读写并发性能,但可能在异常情况下增加数据丢失风险,可尝试开启以减少DB锁定错误ENCODING_DETECTION_PERFORMANCE_MODE: V2新增配置项,编码探测性能模式,默认为
true,优先提升探测效率,但可能降低编码探测的准确性TOKENIZED_SEARCH: V2新增配置项,分词搜索,默认为
false,可提升历史记录搜索精度,但可能增加性能开销和意外结果DOH_ENABLE: DNS over HTTPS开关,
true/false,默认true,开启后会使用DOH对设定域名进行解析,以减少被DNS污染的情况,提升网络连通性DOH_DOMAINS: DOH域名清单,多个使用
,分隔,默认为:
api.themoviedb.org,api.tmdb.org,webservice.fanart.tv,api.github.com,github.com,raw.githubusercontent.com,api.telegram.orgMETA_CACHE_EXPIRE: 元数据识别缓存过期时间(小时),数字型,不配置或者配置为0时使用系统默认(大内存模式为7天,否则为3天),调大该值可减少themoviedb的访问次数
GITHUB_TOKEN: Github token,提高自动更新、插件安装等请求Github Api的限流阈值,格式:ghp_**** 或 github_pat_****
GITHUB_PROXY: Github代理地址,用于加速版本及插件升级安装,格式:
https://mirror.ghproxy.com/DEV: 开发者模式,
true/false,默认false,仅用于本地开发使用,开启后会暂停所有定时任务,且插件代码文件的修改无需重启会自动重载生效AUTO_UPDATE_RESOURCE:启动时自动检测和更新资源包(站点索引及认证等),
true/false,默认true,需要能正常连接Github,仅支持Docker镜像
TMDB_API_DOMAIN: TMDB API地址,默认
api.themoviedb.org,也可配置为api.tmdb.org、tmdb.movie-pilot.org或其它中转代理服务地址,能连通即可TMDB_IMAGE_DOMAIN: TMDB图片地址,默认
image.tmdb.org,可配置为其它中转代理以加速TMDB图片显示,如:static-mdb.v.geilijiasu.comWALLPAPER: 登录首页电影海报,
tmdb/bing,默认tmdbRECOGNIZE_SOURCE: 媒体信息识别来源,
themoviedb/douban,默认themoviedb,使用douban时不支持二级分类,且受豆瓣控流限制FANART_ENABLE: Fanart开关,
true/false,默认true,关闭后刮削的图片类型会大幅减少SCRAP_SOURCE: 刮削元数据及图片使用的数据源,
themoviedb/douban,默认themoviedbSCRAP_FOLLOW_TMDB: 新增已入库媒体是否跟随TMDB信息变化,
true/false,默认true,为false时即使TMDB信息变化了也会仍然按历史记录中已入库的信息进行刮削
AUTO_DOWNLOAD_USER: 远程交互搜索时自动择优下载的用户ID(消息通知渠道的用户ID),多个用户使用,分割,设置为
all代表全部用户自动择优下载,未设置需要手动选择资源或者回复0才自动择优下载DOWNLOAD_SUBTITLE: 下载站点字幕,
true/false,默认trueSEARCH_MULTIPLE_NAME: 搜索时是否使用多个名称搜索,
true/false,默认false,开启后会使用多个名称进行搜索,搜索结果会更全面,但会增加搜索时间;关闭时只要其中一个名称搜索到结果或全部名称搜索完毕即停止SUBSCRIBE_STATISTIC_SHARE: 是否匿名分享订阅数据,用于统计和展示用户热门订阅,
true/false,默认truePLUGIN_STATISTIC_SHARE: 是否匿名分享插件安装统计数据,用于统计和显示插件下载安装次数,
true/false,默认true
OCR_HOST: OCR识别服务器地址,格式:
http(s)://ip:port,用于识别站点验证码实现自动登录获取Cookie等,不配置默认使用内建服务器https://movie-pilot.org,可使用 这个镜像 自行搭建。
MOVIE_RENAME_FORMAT: 电影重命名格式,默认内置了以下命名格式,如需自定义可参考 进阶 自定义重命名格式章节说明。
{{title}}{% if year %} ({{year}}){% endif %}/{{title}}{% if year %} ({{year}}){% endif %}{% if part %}-{{part}}{% endif %}{% if videoFormat %} - {{videoFormat}}{% endif %}{{fileExt}}Copy
TV_RENAME_FORMAT: 电视剧重命名格式,默认内置了以下命名格式,如需自定义可参考 进阶 自定义重命名格式章节说明。
{{title}}{% if year %} ({{year}}){% endif %}/Season {{season}}/{{title}} - {{season_episode}}{% if part %}-{{part}}{% endif %}{% if episode %} - 第 {{episode}} 集{% endif %}{{fileExt}}Copy
PLUGIN_MARKET: 插件市场仓库地址,仅支持Github仓库
main分支,多个地址使用,分隔,通过查看MoviePilot-Plugins项目的fork,或者查看频道置顶了解更多第三方插件仓库。
默认已内置以下插件库:对外服务路径
MoviePilot通过对外提供Api的方式实现消息接入、Webhook等功能,以下是涉及可能需要在其它软件中配置的回调地址。
V2版本变化说明
v2.0.0+ 版本后API_TOKEN需要设置16位或以上的复杂字符串 ,如果同一类型的消息和媒体服务器配置了多个,回调请求地址中还需要加上 &source=配置名称 参数,其中配置名称建议使用英文,如果配置名称为中文或存在特殊字符(如空格),部分平台(如企业微信)可能需要进行URL编码。为了方便识别和管理,建议统一在所有回调地址中添加source参数,以确保各配置间的区分和调用更加清晰。消息接收服务:
/api/v1/message/?token=moviepilot,微信、SynologyChat、VoceChat的消息回调地址,其中moviepilot修改为实际配置中的API_TOKEN的值。Webhook服务:
/api/v1/webhook?token=moviepilot,Emby、Jellyfin、Plex等Webhook回调地址,用于接入Webhook请求并传递到MoviePilot内部使用,其中moviepilot修改为实际配置中的API_TOKEN的值。下载文件立即整理:
/api/v1/transfer/now?token=moviepilot,下载文件自动整理默认轮循下载器间隔为5分钟,如果是使用qbittorrent,可在QB设置->下载完成时运行外部程序处填入:curl "http://localhost:3000/api/v1/transfer/now?token=moviepilot",实现无需等待轮循下载完成后立即整理入库(地址、端口和token按实际调整,curl也可更换为wget)。
站点认证
❗AUTH_SITE: 认证站点(认证通过后才能使用站点相关功能),支持配置多个认证站点,使用
,分隔,如:iyuu,hhclub,会依次执行认证操作,直到有一个站点认证成功。根据下表配置
AUTH_SITE,以及对应站点的认证参数:
五、结尾
好啦,以上就是在飞牛 OS 上用 Docker 安装 Moviepilot v2 的详细过程啦!有了这个工具,咱们在飞牛 OS 上搭建的媒体服务器就能更加智能化、自动化地管理各种媒体资源了。它可以帮助我们轻松整理海量的电影、电视剧资源,还能自动获取相关的元数据和字幕,让观影体验更加完美。要是你在安装或者使用 Moviepilot v2 的过程中碰到了啥问题,或者有啥自己的经验,欢迎随时来找我交流交流呀,咱们一起把飞牛 OS 搭建得更完美!