告别全网 VIP影视资源限制,MoonTV自建追剧平台,多方式部署!
1. 项目介绍
本项目是一个影视聚合型播放站点,可以聚合全网影视资源,实现在一个页面内搜索和观看。本次教程将演示如何在 NAS 上通过 Docker 进行部署。
- 项目来源: 一个在 GitHub 上非常受欢迎的开源项目,已有超过 4000 个星标。
- 支持平台:
- NAS (通过 Docker)
- Vercel
- Cloudflare
- 演示环境: 本次教程使用 飞牛 NAS 系统进行演示。
2. 部署前准备:理解 Docker Compose 文件
在部署前,需要先了解 docker-compose.yml
文件中的几个关键配置项。
- 1. 端口 (Port)
- 默认端口为
3000
。 - 部署前需确认 NAS 的
3000
端口未被其他服务占用。 - 如果端口被占用,需要修改映射端口,例如将
3000:3000
修改为3001:3000
。
- 默认端口为
- 2. 用户名和密码 (Username & Password)
- 可根据个人需求修改
environment
部分的用户名和密码,也可以保持默认设置。
- 可根据个人需求修改
- 3. 自定义配置 (Custom Configuration)
- Compose 文件中有两处被注释掉的配置,第一处用于挂载自定义文件,如
config.json
,用于调整 API 接口。 - 注意:根据视频作者测试,即使取消注释并修改了接口文件,效果也未生效。自带的接口已基本够用,不希望折腾的用户可以保持默认(即保留注释)。
- 本教程将演示 去掉注释 的部署过程,如果选择保持默认,则可以跳过与
config.json
相关的步骤。
- Compose 文件中有两处被注释掉的配置,第一处用于挂载自定义文件,如
3. 部署步骤 (飞牛 NAS 演示)
以下是在飞牛 NAS 系统上进行部署的详细步骤。
1. 创建文件夹
- 在飞牛系统的文件管理器中,创建一个新的文件夹用于存放项目文件,名称可自定义。
2. 准备
config.json
文件- 访问项目的 GitHub 页面,找到
config.json
文件并下载。这个文件包含了影视站点的 API 接口。 - 将下载好的
config.json
文件上传到刚才在 NAS 中创建的文件夹内。
- 访问项目的 GitHub 页面,找到
3. 设置文件权限
- 关键步骤: 如果不设置正确的权限,部署后可能无法打开网页。飞牛系统的权限设置需要通过 SSH 完成。
- 使用 SSH 工具连接到你的 NAS。
- 进入(
cd
)到存放config.json
的文件夹。 - 执行以下命令赋予文件权限:
4. 创建 Docker Compose 项目
- 进入飞牛系统的 Docker 管理界面。
- 选择新增项目,项目名称可自定义。
- 将项目路径指向第一步创建的文件夹。
- 选择“创建 Compose 文件”的方式。
5. 配置并启动容器
- 将
docker-compose.yml
文件的内容复制并粘贴到配置框中。 - 修改配置:
- 端口:根据需要修改为未被占用的端口。
- 用户名/密码:根据需要修改。
- 自定义配置:如果你选择自定义接口,请取消
volumes
部分关于config.json
的注释。注意:取消注释后,必须确保代码对齐(缩进)正确,否则会出错。 - 点击确定保存配置。
- 在项目列表中,点击“构建”或“启动”来拉取镜像并运行容器。
1. 访问站点
- 当容器成功运行后,通过浏览器访问
http://<你的NAS_IP>:<你设置的端口>
。 - 输入你设置的用户名和密码即可登录。
- 当容器成功运行后,通过浏览器访问
2. 功能与内容
- 站点资源非常丰富,涵盖电影、电视剧、综艺等。
- 内容更新速度快,播放速度流畅。
3. 其他信息
- 如果希望深入折腾自定义接口,下面提供了一些额外的接口地址。
- 部署中遇到问题,可以在视频评论区留言或加入社群寻求帮助。
- vercel官网:https://vercel.com/
- Upstash储存库:https://upstash.com/
- clouflare官网:https://www.cloudflare.com/zh-cn/
4. 部署后验证与总结
5.Docker部署
# 拉取预构建镜像docker pull ghcr.io/lunatechlab/moontv:latest# 运行容器# -d: 后台运行 -p: 映射端口 3000 -> 3000docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/lunatechlab/moontv:latest访问http://服务器 IP:3000
即可。(需自行到服务器控制台放通3000
端口)services: moontv-core: image: ghcr.io/lunatechlab/moontv:latest container_name: moontv-core restart: unless-stopped ports: - '3000:3000' environment: - PASSWORD=your_password # 如需自定义配置,可挂载文件 # volumes: # - ./config.json:/app/config.json:ro
services: moontv-core: image: ghcr.io/lunatechlab/moontv:latest container_name: moontv-core restart: unless-stopped ports: - '3000:3000' environment: - USERNAME=admin - PASSWORD=admin_password - NEXT_PUBLIC_STORAGE_TYPE=redis - REDIS_URL=redis://moontv-redis:6379 - NEXT_PUBLIC_ENABLE_REGISTER=true networks: - moontv-network depends_on: - moontv-redis # 如需自定义配置,可挂载文件 # volumes: # - ./config.json:/app/config.json:ro moontv-redis: image: redis:alpine container_name: moontv-redis restart: unless-stopped networks: - moontv-network # 如需持久化 # volumes: # - ./data:/data networks: moontv-network:
driver: bridge
目前该项目可以配合 OrionTV 在 Android TV 上使用,可以直接作为 OrionTV 后端
暂时收藏夹与播放记录和网页端隔离,后续会支持同步用户数据 。
链接汇总
- 将
评论
发表评论