MoonTV的CloudFlare+D1数据库的部署
使用 Cloudflare Pages 免费部署 MoonTV 影视聚合站教程
本教程将指导如何利用 GitHub 和 Cloudflare 提供的免费服务,快速部署一个属于自己的 MoonTV 影视聚合播放站。该项目支持多种部署方式,本教程重点介绍 Cloudflare Pages 的部署方法,包括基础部署和启用 D1 数据库以支持跨设备数据同步。
准备工作
在开始之前,请确保已经拥有以下账号:
- 一个 GitHub 账号
- 一个 Cloudflare 账号
小技巧:在 Windows 系统中,可以按住一个浏览器标签页并将其拖动到屏幕边缘,即可实现分屏浏览,方便对照教程进行操作。
第一步:Fork MoonTV 仓库到自己的 GitHub
首先,需要将 MoonTV 项目的源代码复制一份到自己的 GitHub 账号下,这个过程称为 “Fork”。
登录 GitHub 后,在搜索框中搜索
moontv
。在搜索结果中,找到
senshinya/MoonTV
这个仓库,这是项目的主仓库。进入该仓库页面,点击右上角的 Fork 按钮。
在创建 Fork 的页面上,保持默认设置,然后点击 Create fork。
等待几秒钟,项目就会被完整复制到个人仓库下。页面左上角会显示自己的用户名,表示 Fork 成功。
第二步:在 Cloudflare Pages 上部署项目
接下来,使用 Cloudflare Pages 来部署刚刚 Fork 的项目。
普通部署 (localStorage 模式)
此模式使用浏览器本地存储,简单快捷,但不支持跨设备同步数据。
登录 Cloudflare,在左侧菜单栏选择 Workers 和 Pages,然后进入 Pages 选项卡。
选择 导入现有的 Git 存储库,然后点击 开始使用。
在“从您的帐户部署站点”页面,选择连接 GitHub。
在弹出的授权窗口中,选择 Only select repositories,然后从下拉列表中找到并选中 Fork 的
MoonTV
仓库,最后点击 Install & Authorize。在“设置构建和部署”页面,需要填写以下信息(这些信息可以在项目 GitHub 页面的
README
文件中找到):- 构建命令:
pnpm install --frozen-lockfile && pnpm run pages:build
- 构建输出目录:
./.vercel/output/static
- 构建命令:
向下滚动,进入“环境变量”部分,点击 添加变量,设置一个密码用于登录:
- 变量名称:
PASSWORD
- 值: 输入自定义的密码 (例如
123456
)
- 变量名称:
最后,点击 保存并部署。Cloudflare 会开始自动构建和部署站点。
部署成功后,可以通过 Cloudflare 提供的
*.pages.dev
域名访问 MoonTV 站点。使用刚刚设置的密码即可登录。
D1 支持 (开启跨设备同步)
如果希望在不同设备间同步观看历史和收藏夹,需要启用 D1 数据库支持。
创建 D1 数据库
在 Cloudflare 仪表盘,进入 存储 -> D1 SQL 数据库,点击 创建数据库。
为数据库命名 (例如
moontv
),然后点击 创建。进入新创建的数据库,点击右上角的 Explore Data。
在左侧的 GitHub 页面中,找到
D1初始化.md
文件,复制其中的所有 SQL 命令。注意:请使用代码块右上角的第二个复制按钮,避免格式错误。将复制的代码粘贴到 D1 数据库的查询框中,然后点击
Run
按钮旁边的下拉箭头,选择 Run all statements 来执行所有命令。
绑定数据库和配置环境变量
- 回到 Pages 项目,进入 设置 -> 函数 -> D1 数据库绑定。
- 点击 添加绑定,变量名称填写
DB
,并选择刚才创建的moontv
数据库。 - 接着,进入 设置 -> 环境变量,添加以下两个变量:
NEXT_PUBLIC_STORAGE_TYPE
,值为d1
USERNAME
,值为自定义的站长用户名(登录时需要)
- 保存后,Cloudflare 会自动重新部署。
最终测试
- 等待重新部署完成后,再次访问站点。现在登录时会要求输入用户名和密码。
- 登录成功后,所有观看数据都将保存在 D1 数据库中,实现了跨设备同步。
第三步:保持项目更新
为了能及时获取原作者对 MoonTV 的更新,需要启用 GitHub Actions 来自动同步 Fork 的仓库。
回到 Fork 的
MoonTV
GitHub 仓库页面。点击上方的 Actions 标签页。
点击绿色的 I understand my workflows, go ahead and enable them 按钮。
在左侧找到 Upstream Sync,点击它,然后在右侧点击 Enable workflow。
这样设置后,Fork 的仓库就会定期与上游主仓库保持同步,Cloudflare Pages 也会自动拉取最新代码进行部署。
第四步:(可选) 绑定自定义域名和安装为桌面应用
自定义域名:在 Pages 项目的 自定义域 选项卡中,可以添加并绑定自己的域名。
安装为桌面应用 (PWA):使用 Chrome 或 Edge 浏览器访问站点时,地址栏右侧会出现一个安装图标。点击即可将 MoonTV 安装为桌面应用,获得更接近原生应用的体验。
至此,整个部署流程全部完成。