1118 字
6 分钟
部署开源影视聚合播放器 MoonTV 教程
2025-07-01

部署开源影视聚合播放器 MoonTV 教程#

发现一个非常好玩的开源项目——MoonTV,它是一个开箱即用、跨平台的影视聚合播放器。如果你想搭建一个属于自己的私人影院,这绝对是一个值得尝试的选择。

🚀 项目简介#

MoonTV 基于 Next.js 14 + Tailwind CSS + TypeScript 构建,支持多资源搜索、在线播放、收藏同步、播放记录等功能,让你随时随地畅享海量免费影视内容。

✨ 功能特性#

  • 🔍 多源聚合搜索:内置数十个免费资源站点,一次搜索立刻返回全源结果。
  • 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示。
  • ▶️ 流畅在线播放:集成 HLS.js & VidStack,播放体验优秀。
  • ❤️ 收藏 + 继续观看:使用 LocalStorage 存储数据,方便快捷。
  • 📱 PWA 支持:可将应用安装到桌面或手机主屏,提供接近原生的体验。
  • 🌗 响应式布局:自适应电脑、平板和手机等不同尺寸的屏幕。
  • 🚀 极简部署:支持 Docker 一键部署,也可免费部署到 Vercel。
  • 👿 智能去广告:自动跳过视频中的切片广告(实验性功能)。

部署教程#

官方提供了多种部署方式,这里主要介绍 Docker 和 Docker Compose 两种。对于有自己服务器或 NAS 的朋友,推荐使用 Docker Compose,配置更灵活。

方式一:官方 Docker 命令(最简单)#

这种方式最快,只需要两条命令即可运行。

Terminal window
# 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 文件。

Terminal window
mkdir moontv
cd moontv
touch 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 文件所在的目录中,执行以下命令启动服务。

Terminal window
docker compose up -d

部署成功后,通过 http://服务器IP:56111 访问(请将 56111 替换为您自己设置的端口)。

⚙️ 进阶配置#

自定义资源站#

随着时间推移,官方的资源站点可能会更新。通过挂载 config.json 文件,你可以轻松地保持资源站的最新状态。

  1. 官方仓库 下载最新的 config.json 文件。
  2. 将其放置在与 docker-compose.yml 相同的目录下。
  3. 确保 docker-compose.yml 文件中的 volumes 部分已取消注释。
  4. 重新启动容器即可生效:docker compose restart

Nginx 反向代理#

为了方便访问,你可以使用 Nginx 将域名反向代理到 MoonTV 服务,这样就可以通过域名(如 https://netflix.wlens.top)直接访问,而无需输入 IP 和端口号。

🎉 成果展示#

这是我部署的演示站点,欢迎体验:

部署开源影视聚合播放器 MoonTV 教程
https://blog.wlens.top/posts/部署开源影视聚合播放器-moontv-教程/
作者
Lao Wang
发布于
2025-07-01
许可协议
CC BY-NC-SA 4.0