
部署开源影视聚合播放器 MoonTV 教程
发现一个非常好玩的开源项目——MoonTV,它是一个开箱即用、跨平台的影视聚合播放器。如果你想搭建一个属于自己的私人影院,这绝对是一个值得尝试的选择。
🚀 项目简介
MoonTV 基于 Next.js 14 + Tailwind CSS + TypeScript 构建,支持多资源搜索、在线播放、收藏同步、播放记录等功能,让你随时随地畅享海量免费影视内容。
✨ 功能特性
- 🔍 多源聚合搜索:内置数十个免费资源站点,一次搜索立刻返回全源结果。
- 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示。
- ▶️ 流畅在线播放:集成 HLS.js & VidStack,播放体验优秀。
- ❤️ 收藏 + 继续观看:使用 LocalStorage 存储数据,方便快捷。
- 📱 PWA 支持:可将应用安装到桌面或手机主屏,提供接近原生的体验。
- 🌗 响应式布局:自适应电脑、平板和手机等不同尺寸的屏幕。
- 🚀 极简部署:支持 Docker 一键部署,也可免费部署到 Vercel。
- 👿 智能去广告:自动跳过视频中的切片广告(实验性功能)。
部署教程
官方提供了多种部署方式,这里主要介绍 Docker 和 Docker Compose 两种。对于有自己服务器或 NAS 的朋友,推荐使用 Docker Compose,配置更灵活。
方式一:官方 Docker 命令(最简单)
这种方式最快,只需要两条命令即可运行。
# 1. 拉取预构建的镜像docker pull ghcr.io/senshinya/moontv:latest
# 2. 运行容器 (-d 后台运行, -p 映射端口)docker run -d --name moontv -p 3000:3000 ghcr.io/senshinya/moontv:latest
部署成功后,通过 http://服务器IP:3000
访问。
方式二:Docker Compose 部署(推荐)
这种方式更适合个性化配置,例如修改端口、设置密码、更新资源等。
1. 创建目录和文件
首先,在你的服务器上创建一个专门的文件夹,例如 moontv
,然后在该文件夹内新建一个 docker-compose.yml
文件。
mkdir moontvcd moontvtouch docker-compose.yml
2. 编辑 docker-compose.yml
文件
将以下内容复制到 docker-compose.yml
文件中。我已经根据您的示例添加了详细的中文注释,方便理解和修改。
version: '3.9'services: moontv: # 使用官方提供的最新镜像 image: ghcr.io/senshinya/moontv:latest # 给容器起个名字,方便管理 container_name: moontv # 设置容器在退出后总是自动重启,除非手动停止 restart: unless-stopped # 端口映射:将服务器的 56111 端口映射到容器的 3000 端口 # 如果你服务器的 56111 端口被占用了,可以改成其他未被占用的端口 ports: - '56111:3000'
# ---- 环境变量配置 ---- environment: # 【建议】设置一个你自己的访问密码,取消注释并修改 # - PASSWORD=your_strong_password_here
# 【可选】修改站点名称 - SITE_NAME=我的私人影视库
# 【可选】开启去广告功能 (默认为 false) - NEXT_PUBLIC_ENABLE_BLOCKAD=true
# 其他变量,一般保持默认即可 - NEXT_PUBLIC_STORAGE_TYPE=localstorage - NEXT_PUBLIC_SEARCH_MAX_PAGE=10 - NEXT_PUBLIC_AGGREGATE_SEARCH_RESULT=true
# ---- 高级配置(可选):自定义资源站 ---- # 如果你想自定义资源站 (修改 config.json),可以取消下面这部分的注释 # 步骤: # 1. 在当前目录下(与 docker-compose.yml 同级)创建一个 config.json 文件 # 2. 从官方仓库下载最新的 config.json 内容并粘贴进去,然后按需修改 # 3. 取消下面的注释,将你的本地文件挂载到容器里 volumes: - ./config.json:/app/config.json:ro
3. 启动容器
在 docker-compose.yml
文件所在的目录中,执行以下命令启动服务。
docker compose up -d
部署成功后,通过 http://服务器IP:56111
访问(请将 56111
替换为您自己设置的端口)。
⚙️ 进阶配置
自定义资源站
随着时间推移,官方的资源站点可能会更新。通过挂载 config.json
文件,你可以轻松地保持资源站的最新状态。
- 从 官方仓库 下载最新的
config.json
文件。 - 将其放置在与
docker-compose.yml
相同的目录下。 - 确保
docker-compose.yml
文件中的volumes
部分已取消注释。 - 重新启动容器即可生效:
docker compose restart
。
Nginx 反向代理
为了方便访问,你可以使用 Nginx 将域名反向代理到 MoonTV 服务,这样就可以通过域名(如 https://netflix.wlens.top
)直接访问,而无需输入 IP 和端口号。
🎉 成果展示
这是我部署的演示站点,欢迎体验: