百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

没硬盘、网盘也能看片自由!NAS一键部署MoonTV,随时随地爽看。

myzbx 2025-07-24 20:22 6 浏览

本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:羊刀仙

有没有一个应用服务,能满足既没有足够预算购置硬盘,也不想依托网盘的朋友的家庭观影需求?之前我介绍过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关闭注册,然后更新下容器。

也没啥好介绍的其实,看看效果吧。。。。

手机端。

最后

好项目,有需求抓紧整起来~

感谢观看,本文完。

#头条兴趣联欢会#

相关推荐

大白话讲nnvm(大白话讲解什么是卷积)

之前工作经验中,在某大厂,开发过机器学习框架,在和业务同学的合作下,取得还可以的成绩,但是一直觉得缺少了什么,最近在刷ai-system相关的公开课,才明白计算图的重要性,以往觉得不能理解的东西,现在...

Python之Json模块详解(python.json()用法)

Step1:Json是什么JSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式。具有数据格式简单,读写方便易懂等很多优点。许多主流的编程语言都...

最新潮最流行的影音资源——MAU影视

MAO影视,一款完全免费的影视软件,为您带来最新潮最流行的影音资源,软件本身并不具备任何资源,只是作为一款播放器提供给大家。配合相关的接口链接,即可为您呈现丰富多彩的影音节目。软件版本支持:1.安卓2...

Python版的迷你程序——json文件转换为csv

浅话C语言是过去几十年软件和硬件两个阵营之间,签署的最坚实的契约。硬件为C语言的语义提供了最能发挥其性能的基础构件,而软件虽然搞了很多的圆环套圆环般的层次,但最终都以C语言作为最后的沉淀收尾。----...

没硬盘、网盘也能看片自由!NAS一键部署MoonTV,随时随地爽看。

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:羊刀仙有没有一个应用服务,能满足既没有足够预算购置硬盘,也不想依托网盘的朋友的家庭观影需求?之前我介绍过LibreTV,本篇再来看看另一个更...

用云存储30分钟快速搭建APP,你信吗?

背景不管你承认与否,移动互联的时代已经到来,这是一个移动互联的时代,手机已经是当今世界上引领潮流的趋势,大型的全球化企业和中小企业都把APP程序开发纳入到他们的企业发展策略当中。但随着手机APP上传的...

Python的dict和json区别(python中dict的特点)

大家有没有发现,python中的字典类型的数据结构,和我们目前比较流行的web端的json格式,非常类似,几乎有点分不清了。那么这2者的区别是什么呢?首先,从概念上,我们要理解这2者是截然不同的。py...

越晚搞懂 MySQL JSON 数据类型,你就越吃亏

作者介绍陈臣,甲骨文MySQL首席解决方案工程师,公众号《MySQL实战》作者,有大规模的MySQL,Redis,MongoDB,ES的管理和维护经验,擅长MySQL数据库的性能优化及日常操作的原理剖...

揭秘你不会画“信息结构图”的本质

编辑导语:产品信息结构图有助于清晰地展示产品信息,一定程度上可以为后台上传数据提供依据,但不少人可能觉得产品信息结构图很难,这可能是对数据库表结构不理解等因素导致的。本篇文章里,作者就产品信息结构图的...

python之json基本操作(.json python)

1.概述JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,它具有简洁、清晰的层次结构,易于阅读和编写,还可以有效的提升网络传输效率。Python标准库的...

JWT 和 JJWT 还傻傻的分不清吗(jwt jti)

JWTs是JSON对象的编码表示。JSON对象由零或多个名称/值对组成,其中名称为字符串,值为任意JSON值。JWT有助于在clear(例如在URL中)发送这样的信息,可以被信任为不可读(即加密的)、...

比json快20-100倍!protobuf原理深入剖析

一、protobuf语法指南1.1定义一个消息类型先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结...

了解一下ProtoBuf(了解一下相亲对象的年龄)

序列化与反序列化我们在进行网络通信调用的时候,总是需要将内存的数据块经过序列化,转换成为一种可以通过网络流进行传输的格式。而这种格式在经过了传输之后再经过序列化,能还原成我们预想中的数据结构。那么我们...

JSON数据类型详细总结(json数据类型详细总结怎么写)

JSON详解一、JSON的概述及其使用JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于javascript的一个子集。JSON是的数据交换语言,易...

接口自动化测试之JSON Schema模式该如何使用?

JSONSchema模式是一个词汇表,可用于注释和验证JSON文档。在实际工作中,对接口返回值进行断言校验,除了常用字段的断言检测以外,还要对其他字段的类型进行检测。对返回的字段一个个写断言显...