有没有一个应用服务,能满足既没有足够预算购置硬盘,也不想依托网盘的朋友的家庭观影需求?之前我介绍过LibreTV,本篇再来看看另一个更好用的项目:MoonTV。本项目支持 Vercel、Docker 和 Cloudflare 部署。关于如何部署以及效果如何,还请耐心看完~
播放质量还是挺不错的。
碎碎念
笔者的第一台NAS是 威联通 TS-453Bmini,对于NAS虽早有耳闻,但当时群晖太贵啦,这时候出来个2k的威联通简直不要太香,果断入手!估计很多朋友都跟我一样是JD搞活动的时候下单,后面记得1999,应该保价过~
从那会开始,我逐渐沉迷NAS。陆续倒腾过树莓派、星际蜗牛···也上过虚拟机,体验TrueNas、Uraid、黑裙/黑威等各式NAS系统。近几年随着新兴NAS品牌入场,NAS也进一步进入大众视野,现在也算是不那么小众的数码产品。
NAS走进千家万户,对于现如今的应用场景,我想相册、家庭影音这种生活娱乐向的功能会占据非常大的比重。相册还好说,官方能提供一个好用的软体即可,但影音呢?最早那会硬盘是刚需,刮削整理媒体库的痛苦大家想必也经历过。再到现在网盘兴起,硬盘变成了可选项。但是网盘的用户基数一旦达到标定值,必然会开启订阅机制。
现在想白嫖,那可太难了!!!不过还是有办法!
下面进入正题。
项目介绍
项目名:senshinya/MoonTV
,在GHUB搜索即可。
MoonTV 是一个开箱即用的、跨平台的项目。它基于Next.js 14 + Tailwind CSS + TypeScript
构建,支持多源搜索、在线看、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量内容。支持多账户数据隔离,跨设备同步。
✨ 功能特性
- 🔍 多源聚合搜索:内置数十个免费站点,一次搜索立刻返回全源结果。
- 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示。
- ▶️ 流畅在线播放:集成 HLS.js & VidStack。
- ❤️ 收藏 + 继续观看:LocalStorage 存储,后续扩展 DB 存储。
- 📱 PWA:离线缓存、安装到桌面/主屏,移动端原生体验。
- 🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸。
- 🚀 极简部署:一条 Docker 命令即可将完整服务跑起来,或免费部署到 Vercel。
- 👿 智能去广告:自动跳过视频中的切片广告(实验性)
部署流程
以威联通NAS为部署演示平台,通过Docker Compose的方式进行部署。
到项目界面下载名为config.json
的配置文件(主要是配置源)。
再准备文件目录,我的具体路径为/share/Container/moontv
,将上面的文件传到NAS。
作者提供了3种部署方法,推荐第3种。
最简单的部署方式,威联通的朋友可直接抄作业。注意格式对齐!!!:
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 版本(推荐,多账户数据隔离,跨设备同步),威联通的可以直接抄作业
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,将代码粘贴进框内修改后创建项目。
使用展示
这个用起来相当简单,功能都没问题。
若按照上文未部署,浏览器输入 NAS_IP:5895 即可访问服务。先注册一个账户。
登入,先弹出一个公告,上文说过可改。
这里可以将上面的 NEXT_PUBLIC_ENABLE_REGISTER=true
改为false
关闭注册,然后更新下容器。
也没啥好介绍的其实,看看效果吧。。。。
手机端。
最后
好项目,有需求抓紧整起来~
感谢观看,本文完。
评论区