MoonTV 一个开箱即用、跨平台的影视聚合播放器。
System-Administartor
2025-09-13 21:09:17
0

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

✨ 功能特性

  • 🔍 多源聚合搜索:内置数十个免费资源站点,一次搜索实时返回全源结果
  • 📄 丰富详情页:完整展示剧集列表、演员、年份、简介等信息
  • ▶️ 流畅在线播放:集成 HLS.js & ArtPlayer
  • ❤️ 收藏与进度同步:支持 Redis/D1 存储,多端同步观看进度
  • 📱 PWA 支持:离线缓存、桌面/主屏安装,提供移动端原生体验
  • 🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应多端屏幕
  • 🚀 极简部署:一条 Docker 命令或免费部署到 Vercel/Cloudflare
  • 👿 智能去广告:自动跳过视频切片广告(实验性功能)

部署指南

支持 Vercel / Docker / Cloudflare 三种方式

1. Vercel 部署(推荐)

零运维成本,免费额度满足个人使用

  1. Fork 仓库至 GitHub 账户:
    https://github.com/senshinya/MoonTV
  2. 登录 Vercel
    → Add New → Project → 选择 Fork 的仓库
  3. (强烈建议) 在环境变量中添加 PASSWORD
  4. 保持默认设置完成部署
  5. 修改 config.json 后推送至 main 分支自动触发重建

2. Cloudflare 部署

环境变量建议设置为 Secret 类型

基础部署(localstorage)

  1. Fork 仓库至 GitHub 账户
  2. 登录 Cloudflare
    → Workers & Pages → 创建 Pages 项目 → 导入仓库
  3. 配置构建设置:
    pnpm install --frozen-lockfile && pnpm run pages:build
    • 框架预设:None
    • 输出目录:.vercel/output/static
  4. 在设置 → 函数 → 兼容性标志中启用 nodejs_compat
  5. (强烈建议) 添加 PASSWORD 环境变量(Secret类型)

D1 数据库支持

  1. 创建 D1 数据库:
    存储 → D1 → 新建数据库
  2. 初始化数据库:
    -- 在数据库控制台执行以下SQL
    CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY, data TEXT);
    CREATE TABLE IF NOT EXISTS storage (id TEXT PRIMARY KEY, data TEXT);
  3. 绑定数据库到 Pages 项目:
    设置 → 绑定 → D1 数据库 → 变量名填 DB
  4. 添加环境变量:
    • NEXT_PUBLIC_STORAGE_TYPE = d1
    • USERNAME(管理员账号)
    • PASSWORD(管理员密码)

3. Docker 部署

适用于服务器/NAS/群晖等场景

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

# 运行容器(后台模式+端口映射)
docker run -d --name moontv \
  -p 3000:3000 \  # 主机端口:容器端口
  -e PASSWORD=your_password \  # 可选安全设置
  ghcr.io/senshinya/moontv:latest

访问 http://服务器IP:3000(需开放防火墙3000端口)

相关内容

热门资讯

mw_shl_code [mw_shl_code=cpp]#include using namespace std;doub...
Abantes样本分析报告 1.文件分析文件信息名称: Abantes.exe大小: 2271744 字节 (2218 KiB)...
[分析报告] 病毒伪装搜狗输入... 近期,火绒工程师在关注安全动态过程中发现,存在一种后门病毒以伪装成搜狗输入法的形式进行传播。此病毒采...
WinRAR 爆出高危安全漏洞... 趋势科技近日收到来自安全研究员 whs3-detonator 的私密报告,指出知名压缩管理器 Win...
银狐钓鱼再升级:白文件脚本化实... 近期,火绒威胁情报中心监测到一批相对更为活跃的“银狐”系列变种木马。火绒安全工程师第一时间获取样本并...
恶意软件分析报告 Mandel... 恶意软件分析报告 Mandela.exe名称: Mandela.exe大小: 15917568 字节...
“赛博花柳”借Wallpape... 近期,火绒安全论坛收到大量用户反馈,知名软件《壁纸引擎(Wallpaper Engine)》的创意工...
2025-07 注册永久免费域... 今天给大家推荐一个稳定又非常不错的免费域名注册方案,来自非盈利组织:digitalplat,申请注册...
MoonTV 一个开箱即用、... 🎬 MoonTV 是一个开箱即用、跨平台的影视聚合播放器。基于 Next.js 14 + Tailw...
勒索病毒自救手册 前 言 勒索病毒威胁已经成为当前最受关注的网络安全风险之一。而结合信息窃取和泄露的二...

免责声明

本站为个人博客,博客所发布的一切破解软件、补丁、注册机和注册信息及软件的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

本站所有内容均来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容,如有需要,请去软件官网下载正版。

访问和下载本站内容,说明您已同意上述条款。

本站为非盈利性站点,不贩卖软件,不会收取任何费用,所有内容不作为商业行为。

正在初始化播放器,请稍后


.social-panel-container { position: fixed; right: 0; bottom: 80px; transform: translateX(100%); transition: transform .4s ease-in-out } .social-panel-container.visible { transform: translateX(-10px) } .social-panel { background-color: #fff; border-radius: 16px; box-shadow: 0 16px 31px -17px rgba(0, 31, 97, 0.6); border: 5px solid #001f61; display: flex; flex-direction: column; justify-content: center; align-items: center; font-family: 'Muli'; position: relative; height: 169px; width: 370px; max-width: calc(100% - 10px) } .social-panel button.close-btn { border: 0; color: #97a5ce; cursor: pointer; font-size: 20px; position: absolute; top: 5px; right: 5px } .social-panel button.close-btn:focus { outline: 0 } .social-panel p { background-color: #001f61; border-radius: 0 0 10px 10px; color: #fff; font-size: 14px; line-height: 18px; padding: 2px 17px 6px; position: absolute; top: 0; left: 50%; margin: 0; transform: translateX(-50%); text-align: center; width: 235px } .social-panel p a { color: #ff7500; text-decoration: none } .social-panel h4 { margin: 20px 0; color: #97a5ce; font-family: 'Muli'; font-size: 14px; line-height: 18px; text-transform: uppercase } .social-panel ul { display: flex; list-style-type: none; padding: 0; margin: 0 } .social-panel ul li { margin: 0 10px } .social-panel ul li a { border: 1px solid #dce1f2; border-radius: 50%; color: #001f61; font-size: 20px; display: flex; justify-content: center; align-items: center; height: 50px; width: 50px; text-decoration: none } .social-panel ul li a:hover { border-color: #ff6a00; box-shadow: 0 9px 12px -9px #ff6a00 } .floating-btn { border-radius: 26.5px; background-color: #001f61; border: 1px solid #001f61; box-shadow: 0 16px 22px -17px #03153b; color: #fff; cursor: pointer; font-size: 16px; line-height: 20px; padding: 12px 20px; position: fixed; bottom: 20px; right: 20px; z-index: 999 } .floating-btn:hover { background-color: #fff; color: #001f61 } .floating-btn:focus { outline: 0 } .floating-text { background-color: #001f61; border-radius: 10px 10px 0 0; color: #fff; font-family: 'Muli'; padding: 7px 15px; position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); text-align: center; z-index: 998 } .floating-text a { color: #ff7500; text-decoration: none } /* 确保代码块正确换行 */ .code-block-wrapper pre code { white-space: pre-wrap !important; word-break: break-all !important; word-wrap: break-word !important; } /* Markdown内容样式增强 */ .markdown-content pre { background: #f6f8fa !important; border-radius: 8px !important; padding: 16px !important; overflow-x: auto !important; margin: 1em 0 !important; } .markdown-content code:not(pre code) { background: #f1f3f4 !important; padding: 2px 6px !important; border-radius: 4px !important; font-size: 0.9em !important; }

人生倒计时

今天已过去 20 小时
84%
本周已过去 2 天
28%
本月已过去 26 天
86%
今年已过去 8 个月 零 26 天
66%
离春节还有137天4时
62%