前言
MoonTV是一款开箱即用、跨平台支持的免费影视聚合播放器,它不仅集成了多资源站点的搜索与在线播放功能,还支持收藏同步和播放记录,让用户随时随地畅享海量影视内容。
本文将带您一步步了解如何利用Cloudflare Pages平台免费搭建MoonTV,借助Cloudflare提供的全球CDN加速和免费的D1数据库存储,轻松实现多账户数据隔离和跨设备同步功能。
准备工作
在开始部署之前,请确保满足以下条件:
- GitHub账号:并已Fork MoonTV项目到自己的账户下。
- Cloudflare账号:确保您拥有Cloudflare的账号。
- Cloudflare解析的域名:虽然非必须,但建议使用以提升访问速度和安全性。
此外,如果您需要更高性能的云服务支持,可以考虑使用非凡云的云服务器。非凡云提供高品质的云服务器,支持免备案、不限流量、高防服务等特性,能够为您的MoonTV部署提供稳定、安全的运行环境。特别是价格十分亲民,非常适合个人站长和中小企业使用。
部署流程:Cloudflare Pages
1. Fork项目并导入到Cloudflare Pages
首先,访问GitHub,Fork MoonTV项目仓库:https://github.com/senshinya/moontv。
接着,登录Cloudflare,进入“Workers & Pages” -> “Pages”页面。点击“创建项目”,选择“从GitHub导入”,并选择您Fork的MoonTV仓库。
2. 配置构建参数
在导入完成后,配置构建参数如下:
- 构建命令:
pnpm install --frozen-lockfile && pnpm run pages:build
- 输出目录:
.vercel/output/static
3. 设置兼容性标志
为了确保项目在Cloudflare的运行环境中能够顺利执行Next.js服务端逻辑,首次构建时可能需要设置兼容性标志。进入Pages项目的“设置” -> “构建设置”,在兼容性标志中添加:
nodejs_compat
添加密钥:保护您的实例
为了防止他人随意访问您的MoonTV实例,建议设置访问密码。在Pages设置 -> 环境变量 -> “变量和机密”中添加:
- 名称:
PASSWORD
- 类型:机密
- 值:设置您自己的密码,例如
msp*123
保存后,重新部署项目。
进阶设置:绑定D1数据库
如果需要支持跨设备播放进度同步和收藏记录,可以绑定Cloudflare的D1数据库:
- 前往“存储和数据库” -> “D1”,创建一个新的数据库,并执行项目中提供的D1初始化SQL。
- 回到Pages项目,进入设置 -> 绑定,添加数据库绑定,变量名填为:
DB
- 新增以下环境变量:
NEXT_PUBLIC_STORAGE_TYPE
:d1
USERNAME
:自定义站长用户名PASSWORD
:自定义站长密码
完成上述设置后,重新部署项目。部署完成后,访问/admin
即可进入后台管理界面。
常见问题与排查
- 构建失败:缺少兼容性标志?
请务必设置nodejs_compat
,否则构建会因为环境不兼容而失败。 - 部署后无法访问或者出现空白页面?
检查是否配置正确构建输出目录为.vercel/output/static
。 - 密码无效?
环境变量建议设为“机密变量”而不是普通文本变量。 - 收藏和播放记录无法保存?
检查是否启用了D1支持,并确保数据库初始化成功且绑定正确。
结语
通过本文的指导,您已经掌握了如何利用Cloudflare Pages免费部署MoonTV,并借助Cloudflare的全球CDN和D1数据库,打造属于自己的私人影视站。希望这篇文章能为您的影视管理带来便利和灵感,让您的观影体验更加丰富多彩。
如果您对MoonTV的部署和云服务器的选择感兴趣,不妨尝试非凡云,体验其高性能和高安全性的云服务。
