简体中文 | 繁體中文 | English |
一步步把 MoonTVPlus 部署到 Cloudflare,打造私人影视站的全流程指南

一步步把 MoonTVPlus 部署到 Cloudflare,打造私人影视站的全流程指南

typecho
2026-05-27 / 0 评论 / 179 阅读 / 正在检测是否收录... ===> PDD优惠福利券,千万好物,不要错过 <===

很多人都想在家自己弄个影视聚合站,像租个小房子自己装电视一样,听起来既省钱又有面子。
可是每次看到那堆Docker‑ComposeCloudflare WorkersNext.js的文档,就像打开一本外星语言的说明书——眼花缭乱,根本不知道从哪儿下手。

先说结论:先把MoonTVPlus给装好,再想怎么玩都是浮云

这玩意儿其实就是在原版 MoonTV 基础上加装了外部播放器、视频超分、弹幕、评论抓取等功能。想象一下,原本只能在网页里看电影的普通电视,装了这个插件后,你可以把视频塞进 PotPlayer、VLC 那些熟悉的播放器,还能让画面自动提升清晰度,甚至还能像弹幕屋一样和朋友一起刷弹幕。

下面把“从 0 到有”的全过程,拆成几个小步骤,用日常生活的比喻帮你把每一步都吃透。

一、准备工作:先弄好“钥匙”和“材料”

  • 一个 GitHub 账号(相当于去超市买材料的会员卡)。
  • 一个 Cloudflare 账号(相当于租房子的中介,帮你把站点放到全世界的高速路口)。
  • 如果想要永久保存播放记录,就准备一个 Redis/Upstash/D1 之类的存储服务(相当于给家里装个小柜子,方便以后找东西)。
  • 电脑上装好 GitNode.js(带有 pnpm 包管理器)以及 Docker(如果想本地跑的话)。

把这些东西准备好后,就可以进入真正的“装修”阶段了。

二、把项目叉(fork)下来,给它贴上自己的门牌号

在 GitHub 找到 mtvpls/MoonTVPlus,点一下 “Fork”。这一步就像把邻居的老房子买下来,准备重新装修。
以后如果原作者更新功能,只要在自己的仓库点 “Sync fork” 就能把最新的装修材料拉进来。

三、在 Cloudflare Pages 上“一键部署”——像把房子直接搬到云端

  1. 登录 Cloudflare,点 “Pages → Create project”。
  2. 选择刚才 Fork 的仓库作为源码。
  3. 构建命令填:pnpm install --frozen-lockfile && pnpm run pages:build
  4. 把“构建输出目录”改成 .vercel/output/static(这相当于告诉工人们把装修好的家具放在哪个房间)。
  5. 部署完成后,立刻去 “设置 → Compatibility Flags”,打开 nodejs_compat,这是 Cloudflare 的“电力适配器”,没有它后端脚本跑不动。
  6. 最关键的一步:在 “环境变量 & Secrets” 里添加 PASSWORD(随便取一个强密码),相当于给门装上锁,防止陌生人随意进来。

保存后点 “Retry Deploy”,等几分钟就能看到自己的域名跑起来了。

四、如果想要“持久保存”,加上 D1 数据库(相当于在客厅装个保险箱)

默认的 Pages 部署只会把数据放在浏览器的本地存储里,关机后就没了。想要跨设备同步,借助 Cloudflare 的 D1 数据库:

  1. 进入 Cloudflare Dashboard → Storage & Databases → D1,点 “Create Database”。取个名字(比如 moon_tv_db)。
  2. 在 Pages 项目设置的 “绑定” 里,把这个数据库绑到变量 DB
  3. 再在环境变量里添加 NEXT_PUBLIC_STORAGE_TYPE=d1,再填上 USERNAMEPASSWORD
  4. 重新部署,访问 /admin 页面登录(用刚才的用户名密码),可以看到收藏、观看进度已经保存在云端。

如果不想用 D1,Upstash Redis、Kvrocks、普通 Redis 也都行,只是要在环境变量里填对应的 URL 和 Token。

五、功能开箱即用——把生活的“调味料”撒进去

部署成功后,站点本身是一个“空壳”,没有自带的影视源。要想看电影,需要在后台的 config.json 里填入自己的资源接口。这里有两种路径:

  • 使用公开的免费 API:在网上能找得到不少免费 vod 接口,只要把 {"api":"http://xxx.com/api.php/provide/vod","name":"示例资源"} 这种格式填进去即可。
  • 自建爬虫或转码脚本:如果手头有自己的 M3U8 链接,写一个小脚本返回同样的 JSON 结构,也能让 MoonTVPlus 把它当作资源。

填好后,刷新页面,搜索框里就能一次性搜到所有源了。

六、外部播放器和超分(Anime4K)——把观影体验升到“影院”级别

在影片详情页右上角会出现“打开外部播放器”的按钮,点进去会自动跳转到你预先在环境变量里开启的播放器(比如 PotPlayer)。这相当于把厨房里的菜肴端到客厅的大餐桌上吃,画面更流畅,功能更全。

另外,MoonTVPlus 内置了 WebGPU‑Anime4K 超分技术,你只需要在设置里调到 2×、3× 或 4×,画面就会自动变得更锐利。体验上就像把普通的电视画面装上了 4K 电视的滤镜——虽然不是原生 4K,但已经足够让细节更清晰。

七、弹幕系统和豆瓣评论——把社交的“调味料”撒进去

弹幕功能是通过自带的弹幕 API 实现的。如果想要更丰富的弹幕源,只需要在环境变量里配置 SOURCE_ORDERPLATFORM_ORDER,把常用的弹幕平台排在前面。

豆瓣短评抓取同样是开箱即用的,默认会把豆瓣的高分评论显示在详情页底部,帮助大家快速判断一部电影是否值得点播。

八、常见坑与解决方案(别让小细节毁了好心情)

  • WebGPU 不支持:如果浏览器报错说找不到 WebGPU,先把 Chrome/Edge 更新到最新,或者在 chrome://flags 里打开 “WebGPU” 开关。
  • HTTPS 限制:外部播放器跳转需要 HTTPS,否则会被浏览器拦截。记得在 Cloudflare 把域名强制 HTTPS 打开。
  • 弹幕加载慢:把 NEXT_PUBLIC_DANMAKU_CACHE_EXPIRE_MINUTES 调大(比如 7200),让弹幕在本地缓存更久,减少每次请求。
  • 观影室功能:Vercel/Docker 部署时不支持 WebSocket,想要多人同步观影只能把观影室服务器单独部署在外部(文档里给了链接),再在环境变量里打开 WATCH_ROOM_ENABLED=true
  • 数据库丢数据:使用普通 Redis 时,记得在 Docker‑Compose 里加数据卷,否则容器重启会把记录清空。

九、为什么要把它装在 Cloudflare 而不是本地服务器?

把站点放在 Cloudflare Pages,就像把家搬到了“光速小区”。不需要自己买电、买宽带,甚至连服务器的日常维护都省了。只要一次部署,就可以享受全球 CDN 的 0.1 秒加载。

而且 Cloudflare 的 免费套餐 本身就能满足个人使用的流量需求。只要不把站点公开宣传,就不太会触发 Cloudflare 的防滥用机制。

十、收尾:把你的“小房子”装饰成温馨的“影院”

至此,你已经把 MoonTVPlus 从“空壳子”变成了真正能看电影、追剧、刷弹幕的个人影库。接下来可以尝试:

  • 自定义首页 Banner,放上自己喜欢的海报。
  • 给每个用户开通账号,让全家人都有自己的观看记录。
  • config.json 里加上私人影库(OpenList、Emby)路径,随时把本地的硬盘视频导进去。

最重要的是,记得给站点上锁(PASSWORD),别让陌生人随意进来。这样,一个低成本、零维护、随时随地都能追剧的个人影视站就搭建完成啦! 🎉

0

评论 (0)

取消