前言

MoonTV是一款开箱即用、跨平台支持的免费影视聚合播放器,它不仅集成了多资源站点的搜索与在线播放功能,还支持收藏同步和播放记录,让用户随时随地畅享海量影视内容。

本文将带您一步步了解如何利用Cloudflare Pages平台免费搭建MoonTV,借助Cloudflare提供的全球CDN加速和免费的D1数据库存储,轻松实现多账户数据隔离和跨设备同步功能。


准备工作

在开始部署之前,请确保满足以下条件:

  1. GitHub账号:并已Fork MoonTV项目到自己的账户下。
  2. Cloudflare账号:确保您拥有Cloudflare的账号。
  3. Cloudflare解析的域名:虽然非必须,但建议使用以提升访问速度和安全性。

此外,如果您需要更高性能的云服务支持,可以考虑使用非凡云的云服务器。非凡云提供高品质的云服务器,支持免备案、不限流量、高防服务等特性,能够为您的MoonTV部署提供稳定、安全的运行环境。特别是价格十分亲民,非常适合个人站长和中小企业使用。


部署流程:Cloudflare Pages

1. Fork项目并导入到Cloudflare Pages

首先,访问GitHub,Fork MoonTV项目仓库:https://github.com/senshinya/moontv

接着,登录Cloudflare,进入“Workers & Pages” -> “Pages”页面。点击“创建项目”,选择“从GitHub导入”,并选择您Fork的MoonTV仓库。

2. 配置构建参数

在导入完成后,配置构建参数如下:

  • 构建命令:
Bash
  pnpm install --frozen-lockfile && pnpm run pages:build
  • 输出目录:
Bash
  .vercel/output/static

3. 设置兼容性标志

为了确保项目在Cloudflare的运行环境中能够顺利执行Next.js服务端逻辑,首次构建时可能需要设置兼容性标志。进入Pages项目的“设置” -> “构建设置”,在兼容性标志中添加:

Bash
nodejs_compat

添加密钥:保护您的实例

为了防止他人随意访问您的MoonTV实例,建议设置访问密码。在Pages设置 -> 环境变量 -> “变量和机密”中添加:

  • 名称:PASSWORD
  • 类型:机密
  • 值:设置您自己的密码,例如msp*123

保存后,重新部署项目。


进阶设置:绑定D1数据库

如果需要支持跨设备播放进度同步和收藏记录,可以绑定Cloudflare的D1数据库:

  1. 前往“存储和数据库” -> “D1”,创建一个新的数据库,并执行项目中提供的D1初始化SQL。
  2. 回到Pages项目,进入设置 -> 绑定,添加数据库绑定,变量名填为:
Bash
   DB
  1. 新增以下环境变量:
  • NEXT_PUBLIC_STORAGE_TYPEd1
  • USERNAME:自定义站长用户名
  • PASSWORD:自定义站长密码

完成上述设置后,重新部署项目。部署完成后,访问/admin即可进入后台管理界面。


常见问题与排查

  • 构建失败:缺少兼容性标志?
    请务必设置nodejs_compat,否则构建会因为环境不兼容而失败。
  • 部署后无法访问或者出现空白页面?
    检查是否配置正确构建输出目录为.vercel/output/static
  • 密码无效?
    环境变量建议设为“机密变量”而不是普通文本变量。
  • 收藏和播放记录无法保存?
    检查是否启用了D1支持,并确保数据库初始化成功且绑定正确。

结语

通过本文的指导,您已经掌握了如何利用Cloudflare Pages免费部署MoonTV,并借助Cloudflare的全球CDN和D1数据库,打造属于自己的私人影视站。希望这篇文章能为您的影视管理带来便利和灵感,让您的观影体验更加丰富多彩。

如果您对MoonTV的部署和云服务器的选择感兴趣,不妨尝试非凡云,体验其高性能和高安全性的云服务。

博客图片25

By 天海牧歌

东庵每见西庵雪,下涧长流上涧泉。 半夜白云消散后,一轮明月到窗前。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注