cloudflare或docker部署MoonTv教程

cloudflare或docker部署MoonTv教程

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

没有自己域名和服务器也通过cloudflare的Pages打造自己的影视站

需要用到的资源:

  1. 一个github的账号。官网:https://github.com/
  2. 一个cloudflare的账号。官网:https://www.cloudflare.com/zh-cn/

两个网站都是可以通过邮箱免费注册的。

部署方案

一、用cloudflare的Pages功能部署。

1.打开MoonTv在github的项目地址:https://github.com/senshinya/MoonTV

点击fork,把项目复制到自己的代码仓库

2.登陆cloudflare找到Workers和Pages,点击创建

进入Pages点击创建

3.点击Pages选择导入现有GIT存储库。

4.选择Gitgub账号,选择刚复制的项目仓库。(如果是第一次进来会提示要连接github)按提示点击授权即可。

选择刚创建的仓库开始设置

5.填写相关参数

构建命令:pnpm install –frozen-lockfile && pnpm run pages:build

目录:.vercel/output/static(注:前面有个小点)

环境变量:PASSWORD=你的密码

填入相关参数点击 保存并部署

6.部署完成后来到项目设置

添加兼容性标志:nodejs_compat

选择兼容性标志:nodejs_compat

7.点击重试部署,项目就可以正常运行了。

所有工作完成后点击重试部署

8.访问网站

点击项分配的域名访问网站

二、docker和Compose部署

如果有自己的服务器也可以通过Docker部署

1. 直接运行(最简单)

# 拉取预构建镜像
docker pull ghcr.io/senshinya/moontv:latest

# 运行容器
# -d: 后台运行  -p: 映射端口 3000 -> 3000
docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/senshinya/moontv:latest

2.Docker Compose部署

services:
  moontv:
    image: ghcr.io/senshinya/moontv:latest
    container_name: moontv
    restart: unless-stopped
    ports:
      - '3000:3000'
    environment:
      - PASSWORD=your_password
    # 如需自定义配置,可挂载文件
    # volumes:
    #   - ./config.json:/app/config.json:ro

3.Docker Compose多用户Redis 版本(多账户数据隔离,跨设备同步)

services:
  moontv-core:
    image: ghcr.io/senshinya/moontv:latest
    container_name: moontv
    restart: unless-stopped
    ports:
      - '3000:3000'
    environment:
      - USERNAME=admin
      - PASSWORD=admin_password
      - NEXT_PUBLIC_STORAGE_TYPE=redis
      - REDIS_URL=redis://moontv-redis:6379
      - NEXT_PUBLIC_ENABLE_REGISTER=true
    networks:
      - moontv-network
    depends_on:
      - moontv-redis
    # 如需自定义配置,可挂载文件
    # volumes:
    #   - ./config.json:/app/config.json:ro
  moontv-redis:
    image: redis
    container_name: moontv-redis
    restart: unless-stopped
    networks:
      - moontv-network
    # 如需持久化
    # volumes:
    #   - ./data:/data
networks:
  moontv-network:
    driver: bridge

环境变量

变量说明可选值默认值
USERNAMEredis 部署时的管理员账号任意字符串(空)
PASSWORD默认部署时为唯一访问密码,redis 部署时为管理员密码任意字符串(空)
SITE_NAME站点名称任意字符串MoonTV
ANNOUNCEMENT站点公告任意字符串本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。
NEXT_PUBLIC_STORAGE_TYPE播放记录/收藏的存储方式localstorage、redis、d1、upstashlocalstorage
REDIS_URLredis 连接 url,若 NEXT_PUBLIC_STORAGE_TYPE 为 redis 则必填连接 url
UPSTASH_URLupstash redis 连接 url连接 url
UPSTASH_TOKENupstash redis 连接 token连接 token
NEXT_PUBLIC_ENABLE_REGISTER是否开放注册,仅在非 localstorage 部署时生效true / falsefalse
NEXT_PUBLIC_SEARCH_MAX_PAGE搜索接口可拉取的最大页数1-505
NEXT_PUBLIC_IMAGE_PROXY默认的浏览器端图片代理url prefix(空)
NEXT_PUBLIC_DOUBAN_PROXY默认的浏览器端豆瓣数据代理url prefix(空)

如果你自己有好的资源API可以自行添加,所有可自定义项集中在根目录的 config.json 中

{
  "cache_time": 7200,
  "api_site": {
    "dyttzy": {
      "api": "http://caiji.dyttzyapi.com/api.php/provide/vod",
      "name": "电影天堂资源",
      "detail": "http://caiji.dyttzyapi.com"
    }
    // ...更多站点
  }
}
  • cache_time:接口缓存时间(秒)。
  • api_site:你可以增删或替换任何资源站,字段说明:
    • key:唯一标识,保持小写字母/数字。
    • api:资源站提供的 vod JSON API 根地址。
    • name:在人机界面中展示的名称。
    • detail:(可选)部分无法通过 API 获取剧集详情的站点,需要提供网页详情根 URL,用于爬取。

MoonTV 支持标准的苹果 CMS V10 API 格式。

修改后 无需重新构建,服务会在启动时读取一次。

三、MoonTV搭配OrionTV使用

MoonTV搭配OrionTV可以在电视里直接观看(注:有小孩老人的家庭不适合把MoonTV调用到电视里使用,里面有好多内容只适合适龄人观看)

下载OrionTV安卓客户端在电视端进行安装。

下载地址:https://github.com/zimplexing/OrionTV/releases/download/v1.2.10/orionTV.1.2.10.apk

然后在OrionTV设置里把你刚创建的moontv的访问地址粘贴就行

四、手机APP

虽然MoonTv没有独立的APP,但可以用手机浏览器把它安装到手机,功能跟独立差不多。

以手机的Edge浏览器为例

用Edge打开我们的MoonTv网址>>点击右下角三条杠,滑动到第二页>>添加至手机

总结:

MoonTV和LibreTV哪个好?

其实MoonTV也是基于LibreTV开发的,相当于LibreTV的优化版,内容基本一致,不同的是MoonTV多了以下功能 :

  1. 加入了资源测速,会自动选择速度最佳的资源播放。
  2. 添加了影片收藏功能。
  3. 多设备同步观看记录及收藏等信息。
  4. 增加电视端的支持。

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注