工具分享 Cloudflare

MoonTV — 搭建自己的流媒体服务器

2024年3月20日 15 分钟阅读

🎬 MoonTV 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript 构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地 / 云端存储,让你可以随时随地畅享海量免费影视内容。

重要提示

部署时一定要设置用户名和密码,且不要对外分享,否则有封禁 CF 账号的风险;如果是 VPS Docker 部署,也有可能 IP 被墙。

1

前置工作

A

一个 Cloudflare 账号,点此注册

B

一个 GitHub 账号,点此注册

C

一个域名并托管到 Cloudflare,点此查看托管教程

2

克隆仓库

本人仓库(推荐)

https://github.com/yutian81/MoonTV

本人仓库的不同点:

  • 加入了更多的播放源
  • 加入了更多分类资源
  • 加入了更细化的分类

克隆以上任意一个仓库即可开始部署。

3

部署到 Cloudflare Pages

3.1 创建 Pages 项目

登录 CF 账号,依次点击 计算(Workers)Workers 和 Pages创建

3.2 导入仓库

选择 Pages,导入现有存储库(即你刚刚 Fork 的 MoonTV 仓库)。

3.3 配置构建设置

导入仓库后,填写以下构建参数:

框架预设
构建命令pnpm install --frozen-lockfile && pnpm run pages:build
输出目录.vercel/output/static

填写完成后点击保存并部署

3.4 创建 D1 数据库

在 CF 控制台依次点击:存储和数据库D1 SQL 数据库创建

数据库名称随意,例如:moon

创建好后,进入所创建的数据库,点击右上角 Explore Data

在页面上方输入 此处初始化代码 后,点击 Run All

3.5 设置兼容性标志和环境变量

回到部署的 Pages 项目,点击 设置

兼容性标志

找到 运行时兼容性标志 → 将其设置为 nodejs_compat

环境变量

点击左侧 变量与机密,设置以下环境变量:

NEXT_PUBLIC_ENABLE_REGISTER是否允许注册,默认 false
NEXT_PUBLIC_STORAGE_TYPE数据库类型,填 d1(小写)
USERNAME管理员用户名
PASSWORD管理员密码

绑定 D1 数据库

切换到 绑定 选项卡,点击 添加,选择 D1 数据库

变量名DB
选择上面步骤创建的数据库

回到部署页面,在最新的部署后面点击三个点,选择 重试部署
切记:必须重试部署,否则数据库绑定不会生效!

3.6 绑定自定义域名

在部署页面点击上方的 自定义域,填入你托管在 CF 上的域名,并给它一个子域名前缀,然后点击确定。

等域名生效后,即可在浏览器访问 https://你绑定的域名 来访问项目,输入你设置的用户名和密码登录即可。

4

在电视上使用

1

下载 TV 版 APP:OrionTV,安装到电视上。

2

在设置中,后端地址填写:https://你绑定的域名

3

完成!现在在电视上也可以流畅播放了。

标签: #建站 #影视 #Cloudflare