更新:2.0版本已经包含2个app应用——手机版和电视TV版应用。请前往Releases页面下载!https://github.com/moli-xia/MoonTV-app/releases
- 本项目来源:
- https://github.com/LunaTechLab/MoonTV
- https://github.com/orion-lib/OrionTV
- 一个基于 Next.js 构建的现代化影视资源聚合平台,支持多种视频源,提供流畅的观影体验。
- 本项目仅修改了页面样式,使页面顶部留出足够空间,避免了手机端与顶部手机状态栏重叠的问题。
- 使用您的服务器搭建好本项目,使用AI编程工具,将项目地址设为http://你的服务器IP:3000 即可直接打包为安卓应用。
- 项目运行在3000端口,记得开启端口访问。
- 版本已经提供了成品apk文件,默认访问密码为654321

- 🎬 多源影视资源聚合
- 📱 响应式设计,支持移动端
- 🌙 深色/浅色主题切换
- 🔍 智能搜索功能
- 📺 在线播放支持
- 💾 观看历史记录
- 🔐 用户认证系统
- 📊 管理后台
- 前端框架: Next.js 14
- UI 组件: React 18, Tailwind CSS
- 视频播放: Artplayer, HLS.js
- 状态管理: React Hooks
- 数据存储: Redis/Upstash
- 部署: Docker, PM2
# Docker 部署
./deploy.sh docker
# 本机部署
./deploy.sh local- Docker
- Docker Compose
-
克隆项目
git clone https://github.com/moli-xia/MoonTV-app.git cd Moontv -
配置环境变量(可选)
cp .env.local .env.production # 编辑 .env.production 文件,修改相关配置 -
构建并启动
docker-compose up -d
-
查看日志
docker-compose logs -f
-
停止服务
docker-compose down
- Node.js 18+
- pnpm (推荐) 或 npm
- PM2 (可选,用于生产环境)
# 安装 Node.js (如果未安装)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 安装 pnpm
npm install -g pnpm
# 安装 PM2 (可选)
npm install -g pm2-
克隆并配置项目
git clone https://github.com/moli-xia/MoonTV-app.git cd Moontv # 安装依赖 pnpm install # 配置环境变量 cp .env.local .env.production # 根据需要修改 .env.production 文件
-
构建项目
pnpm build
-
启动服务
开发模式:
pnpm dev
生产模式(直接启动):
pnpm start
生产模式(使用 PM2):
# 使用 PM2 启动 pm2 start ecosystem.config.js # 查看状态 pm2 status # 查看日志 pm2 logs moontv # 重启服务 pm2 restart moontv # 停止服务 pm2 stop moontv
在 .env.local 或 .env.production 文件中配置:
# 管理员密码
PASSWORD=654321
# 存储类型
NEXT_PUBLIC_STORAGE_TYPE=localstorage
# 站点名称
SITE_NAME=MoonTV
# 服务端口
PORT=3000
# 运行环境
NODE_ENV=production编辑 config.json 文件来配置视频源:
{
"cache_time": 7200,
"api_site": {
"source_name": {
"api": "https://api.example.com/api.php/provide/vod",
"name": "源名称",
"detail": "https://example.com"
}
}
}部署完成后,通过以下地址访问:
默认管理员密码: 654321(建议部署后立即修改)
# 查看端口占用
sudo netstat -tlnp | grep :3000
# 杀死占用进程
sudo kill -9 <PID># 给予执行权限
chmod +x start.js
# 修改文件所有者
sudo chown -R $USER:$USER .在 ecosystem.config.js 中调整内存限制:
max_memory_restart: '2G' // 根据服务器配置调整# PM2 日志
pm2 logs moontv
# 应用日志
tail -f logs/combined.log
# Docker 日志
docker-compose logs -f# 拉取最新代码
git pull
# 重新构建并启动
docker-compose down
docker-compose up -d --build# 拉取最新代码
git pull
# 安装新依赖
pnpm install
# 重新构建
pnpm build
# 重启服务
pm2 restart moontv项目已包含优化的 Dockerfile,支持多阶段构建:
- 基于 Node.js 18 Alpine
- 多阶段构建优化镜像大小
- 非 root 用户运行
- 健康检查支持
version: '3.8'
services:
moontv:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- PORT=3000
- PASSWORD=654321
- NEXT_PUBLIC_STORAGE_TYPE=localstorage
- SITE_NAME=MoonTV
volumes:
- ./logs:/app/logs
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3000/login || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s- 启用 Redis 缓存: 配置 Redis 来提高数据查询性能
- CDN 加速: 使用 CDN 来加速静态资源加载
- 反向代理: 使用 Nginx 作为反向代理
- 负载均衡: 多实例部署时使用负载均衡
- 修改默认管理员密码
- 使用 HTTPS 部署
- 配置防火墙规则
- 定期更新依赖包
- 监控系统资源使用情况
Moontv/
├── src/ # 源代码目录
│ ├── app/ # Next.js App Router
│ ├── components/ # React 组件
│ ├── lib/ # 工具库和配置
│ └── styles/ # 样式文件
├── public/ # 静态资源
├── scripts/ # 构建脚本
├── logs/ # 日志文件
├── config.json # 视频源配置
├── ecosystem.config.js # PM2 配置
├── docker-compose.yml # Docker Compose 配置
├── Dockerfile # Docker 镜像配置
└── deploy.sh # 自动化部署脚本
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
# 代码检查
pnpm lint
# 格式化代码
pnpm format# 生成运行时配置
pnpm gen:runtime
# 生成 manifest
pnpm gen:manifest
# 构建项目
pnpm build本项目采用 MIT 许可证。详见 LICENSE 文件。
欢迎提交 Issue 和 Pull Request 来改进项目。
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
如果您在部署过程中遇到问题,请:
- 查看本文档的常见问题部分
- 检查项目的 Issue 页面
- 提交新的 Issue 描述您的问题
- 初始版本发布
- 支持多源视频聚合
- Docker 部署支持
- 管理后台功能
注意: 本项目仅供学习和研究使用,请遵守相关法律法规。
