boxmoe_header_banner_img

Hello! 欢迎来到我的博客!

文章导读

从零到一:在 Cloudflare Workers 上部署 MoonTVPlus 影视聚合站







从零到一:在 Cloudflare Workers 上部署 MoonTVPlus 影视聚合站


🎬 从零到一:在 Cloudflare Workers 上部署 MoonTVPlus 影视聚合站

最终方案:Cloudflare Workers(免费部署)+ Upstash Redis(免费数据库)+ LunaTV-config(每日自动更新的影视源)


📦 一、准备工作

你需要准备好以下三样东西:

项目 说明
GitHub 账号 用来 Fork 代码仓库
Cloudflare 账号 用来部署 Worker(免费)
Upstash 账号 用来创建免费的 Redis 数据库(支持 GitHub 一键登录)


🚀 二、Fork 项目仓库

  1. 打开 MoonTVPlus 仓库地址:

    https://github.com/mtvpls/MoonTVPlus
  2. 点击页面右上角的 「Fork」 按钮。

  3. 在弹出窗口中,Owner 选择你自己的 GitHub 账号,然后点击 「Create fork」

  4. 等待页面跳转到你 Fork 后的仓库:

    https://github.com/你的用户名/MoonTVPlus
✅ 完成标志: 你的 GitHub 账号下多了一个名为 MoonTVPlus 的仓库。


🔑 三、获取 Cloudflare Account ID

  1. 打开浏览器,访问 Cloudflare 控制台,登录你的账号。

  2. 关键路径: 在左侧菜单栏中,找到 「计算」(Compute)分类 → 点击 「Workers & Pages」

    📍 位置提示: 左侧菜单从上到下依次是:账户主页 → 域名 → Observe → Investigate → 数据分析 → 构建 → 「计算」(Workers & Pages 在这里) → AI → 存储和数据库 → ……
  3. 进入 Workers & Pages 页面后,不要创建任何东西,直接看页面右侧或顶部信息栏。

  4. 找到 「账户 ID」(Account ID),它是一串由字母和数字组成的字符串。

  5. 复制并保存这个 Account ID,下一步要用。

✅ 示例: 358829b2d79a593ba1efa5ff7de3993a


🔑 四、创建 Cloudflare API Token

  1. 在 Cloudflare 控制台,点击右上角的 头像图标(你的账户头像)。

  2. 在下拉菜单中,选择 「我的个人资料」(My Profile)。

  3. 在个人资料页面,切换到顶部的 「API 令牌」(API Tokens)选项卡。

  4. 点击 「创建令牌」(Create token)。

  5. 在令牌模板列表中,找到 「编辑 Cloudflare Workers」,点击右侧的 「使用模板」(Use template)。

  6. 在“账户资源”处,确保选择的是你的账户(不是具体某个域名)。

  7. 点击页面底部的 「继续以显示摘要」 → 再点击 「创建令牌」

  8. ⚠️ 立即复制并保存 生成的令牌字符串(它只显示这一次!)。

    🔐 格式类似: cfut_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


🗄️ 五、创建 Upstash Redis 数据库

  1. 打开 Upstash Console

  2. 点击 「Sign Up」 注册,推荐使用 「Sign in with GitHub」 一键登录。

  3. 登录成功后,点击 「Create Database」(创建数据库)。

  4. 填写以下信息:

    • Name: 随便起一个,例如 moontv
    • Region: 选择 us-east-1(美东)或 eu-west-1(欧洲)
    • 其他选项保持默认
  5. 点击底部的 「Create」 按钮。

  6. 创建完成后,点击数据库名称 进入详情页。

  7. 在详情页的 REST API 区域,找到两个关键信息:

    • UPSTASH_URL: 类似 https://xxx.upstash.io
    • UPSTASH_TOKEN: 被星号 ********** 隐藏,点击右侧的眼睛图标 👁️ 显示完整内容,然后复制。
⚠️ 注意: 页面上显示的是 UPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKEN配置 GitHub Secrets 时要去掉 _REDIS_REST 部分,只保留 UPSTASH_URLUPSTASH_TOKEN


🔐 六、在 GitHub 仓库中配置 Secrets

  1. 打开你 Fork 后的仓库:

    https://github.com/你的用户名/MoonTVPlus
  2. 点击顶部的 「Settings」(设置)选项卡。

  3. 在左侧菜单中,找到 「Secrets and variables」 → 点击展开 → 选择 「Actions」

  4. 点击绿色的 「New repository secret」 按钮。

  5. 依次添加以下 7 个 Secret(名称必须 完全一致,区分大小写):

    Secret 名称 值(从哪里获取)
    CLOUDFLARE_API_TOKEN 第四步获取的 API Token
    CLOUDFLARE_ACCOUNT_ID 第三步获取的 Account ID
    UPSTASH_URL 第五步获取的 UPSTASH_URL
    UPSTASH_TOKEN 第五步获取的 UPSTASH_TOKEN
    USERNAME 你自己设置的管理员用户名(如 admin
    PASSWORD 你自己设置的管理员密码(务必使用强密码)
    NEXT_PUBLIC_STORAGE_TYPE 固定填写 upstash
  6. 每添加一个,点击 「Add secret」 保存。全部添加完成后,列表应该显示 7 个 Secret。


🚀 七、触发自动部署

  1. 在 GitHub 仓库页面,点击顶部的 「Actions」(操作)选项卡。

  2. 左侧 Workflows 列表中,点击 「Deploy to Cloudflare」

  3. 如果左侧没有 Deploy to Cloudflare,而是显示 “Workflows aren’t being run on this forked repository”

    点击蓝色的 「I understand my workflows, go ahead and enable them」 按钮启用 Actions,然后再重复这一步。
  4. 点击右侧的 「Run workflow」 按钮。

  5. 在弹出的下拉框中,直接点击绿色的 「Run workflow」 按钮。

  6. 页面会刷新,出现一个新的运行任务(黄色圆点表示进行中)。

  7. 点击这个任务,可以查看实时部署日志。

  8. 等待约 2~3 分钟,状态变为绿色 ✅ 即表示部署成功。


🌐 八、访问你的站点

  1. 打开 Cloudflare 控制台。

  2. 关键路径: 左侧菜单 → 「计算」(Compute)→ 「Workers & Pages」

  3. 在 Worker 列表中,你会看到一个新创建的 Worker(名称类似 moontvplusmontv-plus)。

  4. 点击这个 Worker 名称 进入详情页。

  5. 「概述」(Overview)页面,找到 「Worker URL」 区域。

  6. 复制 生产环境 的地址:

    https://xxxxxx.workers.dev
  7. 在浏览器中打开这个地址,使用你在第六步设置的 USERNAMEPASSWORD 登录。


⚙️ 九、配置影视源(最关键的一步)

登录成功后,页面会进入 MoonTVPlus 的管理后台。

添加视频源:

  1. 在左侧菜单或页面中找到 「视频源配置」

  2. 点击 「添加」 按钮。

  3. 填写以下信息:

    • 名称: 随便填,如 LunaTV订阅
    • Key: 填一个英文标识符,如 lunatv不能是 openlistxiaoya 或以 emby 开头的词)
    • 接口地址: 填入以下订阅 URL:
    https://raw.githubusercontent.com/hafrey1/LunaTV-config/refs/heads/main/LunaTV-config.txt
  4. 点击 「添加」 保存。

  5. 系统会自动测试接口是否可用,加载完成后即可在首页看到影片列表。

📌 备用精简版订阅源:(如果完整版加载慢)

https://raw.githubusercontent.com/hafrey1/LunaTV-config/refs/heads/main/jingjian.txt


🔗 十、绑定自定义域名(可选)

如果你有自己的域名,并已托管在 Cloudflare:

  1. 进入 Worker 详情页 → 点击顶部 「设置」(Settings)。

  2. 左侧菜单 → 「触发器」(Triggers)。

  3. 「自定义域」(Custom Domains)部分,点击 「添加域」(Add Domain)。

  4. 输入你的域名(如 tv.yourdomain.com),点击继续。

  5. Cloudflare 会自动检测域名,按提示添加 CNAME 记录

  6. 等待 DNS 解析生效(通常几分钟),即可通过自己的域名访问。


⚠️ 十一、常见问题与避坑指南

问题现象 原因与解决方法
找不到 Workers & Pages 路径是:左侧菜单 → 「计算」(Compute)→ Workers & Pages,不是顶部导航。
Fork 后 Actions 没有 Deploy to Cloudflare GitHub 默认禁用了 Fork 仓库的 Actions,点击蓝色按钮 「I understand…」 启用。
部署失败,报错 Authentication error API Token 权限不足或已失效。删除旧 Token,重新创建 「编辑 Cloudflare Workers」 模板的 Token,并更新 GitHub Secret。
部署成功但访问页面空白 检查 UPSTASH 数据库是否配置正确,NEXT_PUBLIC_STORAGE_TYPE 是否为 upstash
登录后没有影片 需要先配置视频源(第九步),MoonTVPlus 是空壳,不内置任何影视资源。
视频源接口失效 第三方接口随时可能失效。LunaTV-config 项目每日自动检测 API 有效性,推荐使用。
Upstash Token 被星号隐藏 点击数据库详情页 REST API 区域的眼睛图标 👁️ 显示完整 Token。
自定义域名无法访问 检查 DNS 解析是否已添加 CNAME 记录,以及是否已生效。


📦 十二、总结

技术链路:

GitHub 托管代码 → GitHub Actions 自动构建 → Cloudflare Workers 部署 → Upstash 存储数据 → LunaTV-config 提供影视源

费用: 全程免费(Cloudflare 免费计划每日 10 万次请求,个人使用完全足够)。

维护: 部署完成后,只需偶尔关注影视源是否有效(LunaTV-config 每日自动更新,基本无需人工干预)。


本文为个人折腾经验总结,所有影视源由第三方提供,仅供学习交流使用。




评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码