🎬 MoonCakeTV 月饼TV 是一个影视聚合搜索服务。它基于 Next.js 15 + Tailwind CSS + TypeScript 构建,支持多资源搜索和在线播放。
作者鼓励社区同行fork本项目进行二次开发
- 🔍 多源聚合搜索:汇聚数十个免费资源站点,一次搜索立刻返回全源结果
- 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示
▶️ 在线播放:集成 HLS.js & Video.js 播放器- 📱 响应式布局:自适应各种屏幕尺寸
- 🚀 多平台部署:支持 Docker、Vercel 部署
- 先决条件:Node.js 18+(推荐 20/22),npm
- 安装依赖并启动开发服务器(默认端口
3333
):
npm install
npm run dev
# 访问 http://localhost:3333
- Telegram: https://t.me/mooncaketv
适用于自建服务器 / NAS / 群晖等场景。
为安全起见,强烈建议启用密码保护。请在项目根目录新建 .env
文件,至少设置:
# 密码模式:local | env | db(默认 local,无需登录)
PASSWORD_MODE=env
# 当 PASSWORD_MODE=env 时,访问口令:
MY_PASSWORD=your_secure_password
# 拉取镜像
docker pull ghcr.io/mooncaketv/mooncaketv:latest
# 运行容器(容器内监听 3000,映射到宿主机 3333)
docker run -d \
--name mooncaketv \
--env-file .env \
-p 3333:3000 \
ghcr.io/mooncaketv/mooncaketv:latest
# 构建镜像
make d-build
# 运行容器
make d-run
# 构建镜像
docker build -t mooncaketv .
# 运行容器(推荐将宿主机 3333 映射到容器 3000)
# 无密码(不建议)
docker run -d --name mooncaketv -p 3333:3000 mooncaketv
# 密码保护(需要 .env)
docker run -d --name mooncaketv --env-file .env -p 3333:3000 mooncaketv
零运维成本,免费额度足够个人使用
说明:播放直接在浏览器端请求源站
.m3u8
与分片资源(不经过服务器代理)。请确保上游源支持 CORS。
- Fork 本仓库到你的 GitHub 账户
- 登陆 Vercel,点击 Add New → Project,选择 Fork 后的仓库
- 在项目 Settings → Environment Variables 中添加:
PASSWORD_MODE=env
、MY_PASSWORD=your_secure_password
- 保持默认设置完成部署
部署完成后即可通过分配的域名访问,也可以绑定自定义域名。
近期多起封号事件
- 避免公开访问:不设置密码的实例任何人都可以访问,可能被恶意利用
- 防范版权风险:公开的视频搜索服务可能面临版权方的投诉举报
- 保护个人隐私:设置密码可以限制访问范围,保护您的使用记录
- 设置环境变量
PASSWORD_MODE=env
和MY_PASSWORD=my_password
:为您的实例设置一个强密码 - 仅供个人使用:请勿将您的实例链接公开分享或传播
- 遵守当地法律:请确保您的使用行为符合当地法律法规
- 本项目仅供学习和个人使用
- 请勿将部署的实例用于商业用途或公开服务
- 如因公开分享导致的任何法律问题,用户需自行承担责任
- 项目开发者不对用户的使用行为承担任何法律责任
PASSWORD_MODE
:local
|env
|db
(默认local
)local
:不开启登录(仅限自用环境)env
:使用MY_PASSWORD
作为访问口令db
:预留,暂未启用
MY_PASSWORD
:当PASSWORD_MODE=env
时必填
- 打不开页面或反复跳转登录?
- 确认
PASSWORD_MODE
与MY_PASSWORD
设置正确;清理浏览器 Cookie 后重试。
- 确认
- Docker 启动后访问不到?
- 请确认端口映射为
-p 3333:3000
,并访问http://localhost:3333
。
- 请确认端口映射为
- Vercel 是否安全?
- Vercel 免费额度有限;请谨慎评估使用风险和成本。播放走浏览器直连,不消耗函数带宽。
分类 | 主要依赖 |
---|---|
前端 | Next.js · Tailwind CSS · TypeScript |
播放器 | Video.js · HLS.js |
代码质量 | ESLint · Prettier |
服务器 | Cloudflare Workers · Racknerd VPS |
数据库 | Open Search · Cloudflare D1 |
- 本项目由MoonTV fork而来,进行了一系列优化
- ts-nextjs-tailwind-starter — 项目最初基于该脚手架。
- LibreTV — 由此启发,站在巨人的肩膀上。
- Video.js — 提供强大的网页视频播放器。
- HLS.js — 实现 HLS 流媒体在浏览器中的播放支持。
- 感谢所有提供免费影视接口的站点。