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

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

 

步骤一:前置工作

  1. 一个 cloudflare 账号,点此注册
  2. 一个 github 账号,点此注册
  3. 一个域名并托管到 cloudflare,点此查看托管教程

 

步骤二:克隆仓库

原仓库地址:https://github.com/senshinya/MoonTV

本人仓库:https://github.com/yutian81/MoonTV

不同点:

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

克隆以上任意一个仓库

 

步骤三:部署

1. 登录CF账号,依次点击 计算(workers) → worker and pages  → 创建

 

2. 选择 pages ,导入现有存储库

 

3. 导入你刚刚克隆的仓库,填写以下参数

  • 框架预设:无
  • 构建命令:pnpm install --frozen-lockfile && pnpm run pages:build
  • 构建输出目录:.vercel/output/static
  • 点击保存并部署

 

4. 创建D1数据库

在CF中依次点击按钮:左侧存储和数据库  → D1 SQL数据库  → 创建 ,名称随意,例如:moon

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

在页面上方输入此处代码后,点击 run all

 

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

回到部署的 pages 项目,点击设置 ,找到运行时 → 兼容性标志  → 将其设置为 nodejs_compat

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

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

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

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

回到部署页面,在最新的部署后面点击三个点,选择重试部署 。切记:必须重试部署

 

6. 绑定域名

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

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

 

步骤四:在电视上使用部署的项目

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

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

OK,现在在电视上也可以播放了

THE END