type
summary
status
category
tags
slug
date
password
icon
状态
子标签
标签
日期
Jan 13, 2026 08:03 AM
CONTENT
1.0
技术栈
前端HTML5 + CSS3 + JavaScript (ES6+)
样式Tailwind CSS
视频HLS.js + ArtPlayer
后端Node.js + Serverless Functions
存储localStorage 本地存储
代理服务端 HLS 代理和处理
API
标准的 苹果 CMS V10 API 格式 or 兼容大部分CMS资源站点:
搜索接口
https://example.com/api.php/provide/vod/?ac=videolist&wd=关键词详情接口
https://example.com/api.php/provide/vod/?ac=detail&ids=视频ID添加自定义源
在设置面板中选择"自定义接口",输入接口地址:
播放器快捷键
- 空格键: 播放/暂停
- 左右箭头: 快退/快进
- 上下箭头: 音量增加/减小
- M 键: 静音/取消静音
- F 键: 全屏/退出全屏
- Esc 键: 退出全屏
成品

2.0
技术栈
分类 | 主要依赖 |
前端框架 | Next.js 14 · App Router |
UI & 样式 | |
语言 | TypeScript 4 |
播放器 | |
代码质量 | ESLint · Prettier · Jest |
部署 | Docker · Vercel · CloudFlare pages |
环境变量
变量 | 说明 | 可选值 | 默认值 |
USERNAME | redis 部署时的管理员账号 | 任意字符串 | (空) |
PASSWORD | 默认部署时为唯一访问密码,redis 部署时为管理员密码 | 任意字符串 | (空) |
SITE_NAME | 站点名称 | 任意字符串 | MoonTV |
ANNOUNCEMENT | 站点公告 | 任意字符串 | 本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。 |
NEXT_PUBLIC_STORAGE_TYPE | 播放记录/收藏的存储方式 | localstorage(本地浏览器存储)、redis(仅 docker 支持) | localstorage |
REDIS_URL | redis 连接 url,若 NEXT_PUBLIC_STORAGE_TYPE 为 redis 则必填 | 连接 url | 空 |
NEXT_PUBLIC_ENABLE_REGISTER | 是否开放注册,仅在 redis 部署时生效 | true / false | false |
NEXT_PUBLIC_SEARCH_MAX_PAGE | 搜索接口可拉取的最大页数 | 1-50 | 5 |
NEXT_PUBLIC_IMAGE_PROXY | 默认的浏览器端图片代理 | url prefix | (空) |
部署比较
看哪个功能更贴合实用场景
现阶段的版本只支持管理员配置功能,即
支持在运行时动态变更服务配置
设置环境变量 USERNAME 和 PASSWORD 即为站长用户,站长可设置用户为管理员
站长或管理员访问
/admin 即可进行管理员配置Vecel静态部署
先爬取部分高质量视频源,编辑完config,再部署
Cloudflare+D1数据库部署
成品

Roadmap
- 两个并行,看后期更新的功能情况
- tag分类自定义:libre > moon
- 源切换:moon > libre
- 无法靠一个站稳定,需要后期维护
Output

速度还挺快的
- Author:Frank
- URL:https://blog.fqqblog.com/article/2e7bd4d9-052e-8167-b1c9-d8c743da3938
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!

