在飞牛 OS 上使用 Docker 部署 Moviepilot v2 的详细指南

svendog
0
2025-05-22

今天我来给大家讲讲怎么在飞牛 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-v2docker rm moviepilot-v2),最后再重新运行上面那个创建并启动容器的命令来完成更新。

最后贴上所有的环境变量:

  • ❗NGINX_PORT: WEB服务端口,默认3000,可自行修改,不能与API服务端口冲突

  • ❗PORT: API服务端口,默认3001,可自行修改,不能与WEB服务端口冲突

  • PUID:运行程序用户的uid,默认0

  • PGID:运行程序用户的gid,默认0

  • UMASK:掩码权限,默认000,可以考虑设置为022

  • PROXY_HOST: 网络代理,访问themoviedb或者重启更新需要使用代理访问,格式为http(s)://ip:portsocks5://user:pass@host:portsocks5h://user:pass@host:port

  • MOVIEPILOT_AUTO_UPDATE: 重启时自动更新,true/release/dev/false,默认release,需要能正常连接Github 注意:如果出现网络问题可以配置PROXY_HOST

  • CACHE_BACKEND_TYPE: V2新增配置项,缓存类型,支持 cachetoolsredis,默认使用 cachetools

  • CACHE_BACKEND_URL: V2新增配置项,缓存连接字符串,仅外部缓存(如 Redis)需要,格式为redis://:password@host:port

  • CACHE_REDIS_MAXMEMORY: V2新增配置项,Redis 缓存最大内存限制,为 0 时不限制,未配置时,如开启大内存模式时为 1024mb,未开启时为 256mb

  • HTTPS访问

    • 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 存放

    • DNS_PROVIDER: acme.sh DNS认证方式,相关参数设置参考:wiki

    • ACME_ENV_xx: acme.sh对应的DNS认证方式的相关参数,参数必须以ACME_ENV_开头才会被正常使用,比如 ACME_ENV_CF_Token

  • SUPERUSER: 超级管理员用户名,默认admin,安装后使用该用户登录后台管理界面,注意:启动一次后再次修改该值不会生效,除非删除数据库文件!

  • ❗API_TOKEN: API密钥,V1版本默认为moviepilotV2版本需要配置为大于等于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.org
  • META_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.orgtmdb.movie-pilot.org 或其它中转代理服务地址,能连通即可

  • TMDB_IMAGE_DOMAIN: TMDB图片地址,默认image.tmdb.org,可配置为其它中转代理以加速TMDB图片显示,如:static-mdb.v.geilijiasu.com

  • WALLPAPER: 登录首页电影海报,tmdb/bing,默认tmdb

  • RECOGNIZE_SOURCE: 媒体信息识别来源,themoviedb/douban,默认themoviedb,使用douban时不支持二级分类,且受豆瓣控流限制

  • FANART_ENABLE: Fanart开关,true/false,默认true,关闭后刮削的图片类型会大幅减少

  • SCRAP_SOURCE: 刮削元数据及图片使用的数据源,themoviedb/douban,默认themoviedb

  • SCRAP_FOLLOW_TMDB: 新增已入库媒体是否跟随TMDB信息变化,true/false,默认true,为false时即使TMDB信息变化了也会仍然按历史记录中已入库的信息进行刮削


  • AUTO_DOWNLOAD_USER: 远程交互搜索时自动择优下载的用户ID(消息通知渠道的用户ID),多个用户使用,分割,设置为 all 代表全部用户自动择优下载,未设置需要手动选择资源或者回复0才自动择优下载

  • DOWNLOAD_SUBTITLE: 下载站点字幕,true/false,默认true

  • SEARCH_MULTIPLE_NAME: 搜索时是否使用多个名称搜索,true/false,默认false,开启后会使用多个名称进行搜索,搜索结果会更全面,但会增加搜索时间;关闭时只要其中一个名称搜索到结果或全部名称搜索完毕即停止

  • SUBSCRIBE_STATISTIC_SHARE: 是否匿名分享订阅数据,用于统计和展示用户热门订阅,true/false,默认true

  • PLUGIN_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,或者查看频道置顶了解更多第三方插件仓库。
    默认已内置以下插件库:

    1. https://github.com/jxxghp/MoviePilot-Plugins

    2. https://github.com/thsrite/MoviePilot-Plugins

    3. https://github.com/honue/MoviePilot-Plugins

    4. https://github.com/InfinityPacer/MoviePilot-Plugins

  • 对外服务路径

    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,以及对应站点的认证参数:

    站点名

    AUTH_SITE

    环境变量

    IYUU

    iyuu

    IYUU_SIGN:IYUU登录令牌

    憨憨

    hhclub

    HHCLUB_USERNAME:用户名
    HHCLUB_PASSKEY:密钥

    观众

    audiences

    AUDIENCES_UID:用户ID
    AUDIENCES_PASSKEY:密钥

    高清杜比

    hddolby

    HDDOLBY_ID:用户ID
    HDDOLBY_PASSKEY:密钥

    织梦

    zmpt

    ZMPT_UID:用户ID
    ZMPT_PASSKEY:密钥

    自由农场

    freefarm

    FREEFARM_UID:用户ID
    FREEFARM_PASSKEY:密钥

    红豆饭

    hdfans

    HDFANS_UID:用户ID
    HDFANS_PASSKEY:密钥

    冬樱

    wintersakura

    WINTERSAKURA_UID:用户ID
    WINTERSAKURA_PASSKEY:密钥

    红叶PT

    leaves

    LEAVES_UID:用户ID
    LEAVES_PASSKEY:密钥

    1PTBA

    ptba

    PTBA_UID:用户ID
    PTBA_PASSKEY:密钥

    冰淇淋

    icc2022

    ICC2022_UID:用户ID
    ICC2022_PASSKEY:密钥

    杏坛

    xingtan

    XINGTAN_UID:用户ID
    XINGTAN_PASSKEY:密钥

    象站

    ptvicomo

    PTVICOMO_UID:用户ID
    PTVICOMO_PASSKEY:密钥

    AGSVPT

    agsvpt

    AGSVPT_UID:用户ID
    AGSVPT_PASSKEY:密钥

    麒麟

    hdkyl

    HDKYL_UID:用户ID
    HDKYL_PASSKEY:密钥

    青蛙

    qingwa

    QINGWA_UID:用户ID
    QINGWA_PASSKEY:密钥

    蝶粉

    discfan

    DISCFAN_UID:用户ID
    DISCFAN_PASSKEY:密钥

    海胆之家

    haidan

    HAIDAN_ID:用户ID
    HAIDAN_PASSKEY:密钥

    Rousi

    rousi

    ROUSI_UID:用户ID
    ROUSI_PASSKEY:密钥

    Sunny

    sunny

    SUNNY_UID:用户ID
    SUNNY_PASSKEY:密钥

    咖啡

    ptcafe

    PTCAFE_UID:用户ID
    PTCAFE_PASSKEY:密钥

    PTZone

    ptzone

    PTZONE_UID:用户ID
    PTZONE_PASSKEY:密钥

    库非

    kufei

    KUFEI_UID:用户ID
    KUFEI_PASSKEY:密钥

    YemaPT

    yemapt

    YEMAPT_UID:用户ID
    YEMAPT_AUTH:密钥
    注意:需v2.2.0或以上版本

    回声

    hspt

    HSPT_UID:用户ID
    HSPT_AUTH:密钥

    星陨阁

    xingyunge

    XINGYUNGE_UID:用户ID
    XINGYUNGE_PASSKEY:密钥

    财神

    cspt

    CSPT_UID:用户ID
    CSPT_PASSKEY:密钥

    唐门

    tmpt

    TMPT_UID:用户ID
    TMPT_PASSKEY:密钥

    raingfh

    RAINGFH_UID:用户ID
    RAINGFH_PASSKEY:密钥

    GTK

    gtkpw

    GTKPW_UID:用户ID
    GTKPW_PASSKEY:密钥

    PTLGS

    ptlgs

    PTLGS_UID:用户ID
    PTLGS_PASSKEY:密钥

    HDBAO

    hdbao

    HDBAO_UID:用户ID
    HDBAO_PASSKEY:密钥

    下水道

    sewerpt

    SEWERPT_UID:用户ID
    SEWERPT_PASSKEY:密钥

五、结尾

好啦,以上就是在飞牛 OS 上用 Docker 安装 Moviepilot v2 的详细过程啦!有了这个工具,咱们在飞牛 OS 上搭建的媒体服务器就能更加智能化、自动化地管理各种媒体资源了。它可以帮助我们轻松整理海量的电影、电视剧资源,还能自动获取相关的元数据和字幕,让观影体验更加完美。要是你在安装或者使用 Moviepilot v2 的过程中碰到了啥问题,或者有啥自己的经验,欢迎随时来找我交流交流呀,咱们一起把飞牛 OS 搭建得更完美!

动物装饰