NAS部署MoonTV完整教程:实现家庭影院级免费观影自由
你是否在寻找一个应用服务,既能满足家庭观影需求,又无需投入大量预算购买硬盘,或依赖网盘?此前我介绍过LibreTV,今天我们将探讨另一个更为出色的项目:MoonTV。该项目支持Vercel、Docker和Cloudflare部署。关于部署方法及实际效果,请继续阅读下文。
MoonTV的播放质量表现相当出色。

个人经历与NAS发展
我的第一台NAS是威联通TS-453Bmini。虽然对NAS早有耳闻,但当时群晖价格较高,而威联通仅售2千元,性价比极高,于是果断入手。许多朋友可能和我一样,在京东促销时下单,后续价格甚至降至1999元,并成功保价。

从那时起,我便逐渐沉迷于NAS的探索。陆续尝试过树莓派、星际蜗牛等设备,也体验过虚拟机环境,安装了TrueNas、Unraid、黑群晖及黑威联通等多种NAS系统。近年来,随着新兴NAS品牌不断涌现,NAS设备已进一步普及,如今它已成为不再小众的数码产品。
随着NAS走入更多家庭,其应用场景中,相册管理和家庭影音这类生活娱乐功能占据了相当大的比重。相册管理相对简单,只要官方提供好用软件即可,但影音解决方案呢?早期阶段,本地硬盘几乎是必需品,而整理媒体库和刮削信息的痛苦过程许多人都经历过。如今网盘兴起,硬盘变成了可选项。然而,一旦网盘用户数量达到特定阈值,订阅收费模式几乎不可避免。

现在想要完全免费使用,确实颇具挑战!但办法总比困难多。
下面让我们进入正题。
MoonTV项目简介
项目名称:senshinya/MoonTV,在GitHub搜索即可找到。
MoonTV 是一个开箱即用、跨平台的多媒体项目。它基于Next.js 14 + Tailwind CSS + TypeScript技术栈构建,支持多源搜索、在线播放、收藏同步、播放记录、本地与云端存储,让用户可以随时随地享受海量影音内容。该项目还支持多账户数据隔离和跨设备同步。
核心功能特性
- 🔍 多源聚合搜索:内置数十个免费资源站点,一次搜索即可返回全部来源的结果。
- 📄 丰富详情页面:完整展示剧集列表、演员信息、上映年份、内容简介等。
- ▶️ 流畅在线播放:集成 HLS.js 和 VidStack 播放技术。
- ❤️ 收藏与续播功能:数据通过 LocalStorage 存储,未来计划扩展数据库支持。
- 📱 PWA 支持:支持离线缓存、安装到桌面或主屏幕,提供接近原生的移动端体验。
- 🌗 响应式布局:桌面端采用侧边栏,移动端使用底部导航,完美适应各种屏幕尺寸。
- 🚀 极简部署流程:仅需一条 Docker 命令即可运行完整服务,或免费部署到 Vercel 平台。
- 👿 智能广告过滤:实验性功能,可自动跳过视频中的分段广告。
详细部署步骤
本节以威联通NAS为演示平台,通过Docker Compose方式部署MoonTV。
首先,访问项目页面下载名为config.json的配置文件(主要用于配置视频源)。

接着,准备文件存储目录。我的具体路径为/share/Container/moontv,请将上述配置文件上传至NAS的对应位置。

项目作者提供了三种部署方式,其中第三种最为推荐。
基础部署代码(注意格式对齐):
services:
moontv:
image: ghcr.io/senshinya/moontv:latest
container_name: moontv
ports:
- "3000:3000" # 左侧端口可自定义
restart: unless-stopped
启用本地存储的普通部署版本:
services:
moontv:
image: ghcr.io/senshinya/moontv:latest
container_name: moontv
restart: unless-stopped
ports:
- '5895:3000' # 左侧端口可自定义
environment:
- PASSWORD=your_password
# 如需自定义配置,可挂载配置文件
# 将配置和缓存保存到本地
# volumes:
# - ./config.json:/app/config.json:ro
Redis 版本(推荐,支持多账户数据隔离与跨设备同步),威联通NAS用户可直接使用以下配置:
services:
moontv-core:
image: ghcr.io/senshinya/moontv:latest
container_name: moontv
restart: unless-stopped
ports:
- '3000:3000' # 左侧端口可修改
environment:
- NEXT_PUBLIC_STORAGE_TYPE=redis
- REDIS_URL=redis://moontv-redis:6379
- NEXT_PUBLIC_ENABLE_REGISTER=true # 首次部署请启用此变量,注册初始账户后可关闭
depends_on:
- moontv-redis
volumes:
- /share/Container/moontv/config.json:/app/config.json:ro
moontv-redis:
image: redis
container_name: moontv-redis
restart: unless-stopped
volumes:
- /share/Container/moontv/data:/data
更多环境变量,例如设置站点公告、自定义站点名称等,请参考项目页面说明,按需添加。
打开威联通的Container Station,将上述代码粘贴到编辑框中,根据实际情况修改后创建项目。

实际使用体验
MoonTV的使用相当简便,各项功能运行稳定。
如果按照上述未启用Redis的部署,在浏览器中输入 NAS_IP:5895 即可访问服务。首先需要注册一个账户。

登录后,系统会弹出一个站点公告,上文提到此内容可以自定义修改。

此时,你可以将环境变量 NEXT_PUBLIC_ENABLE_REGISTER=true 修改为 false 以关闭新用户注册功能,然后更新容器配置即可。
MoonTV的界面直观易用,具体效果如下所示。。。。表现非常强大

手机端访问效果。

总结与建议
MoonTV是一个优秀的多媒体解决方案,建议有相关需求的朋友尽快尝试部署。
感谢阅读,本文到此结束。