📺 LunaTV ➕ 🐾 ClawCloud|▲ vercel|🐳 Docker 多种方式搭建个人多终端影视资源库
简要说明
- 适用人群:这里涉及到科学上网, DNS解析配置, Docker部署相关参数, Redis实例创建等操作, 需要具备一定的IT基础
- 环境要求:使用免费clawcloud部署, 需要国内能访问的域名, 免费域名可以参考白嫖Digitalplat免费域名
- 重点说明:我也是抄袭整理的, 而且这里的免费, 重点在于量少(Upstash)配置低(clawcloud), 个人用很OK, 商用可不太刑哦~
关于LunaTV
原名MoonTV, 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript 构建,支持多资源搜索、在线播放、收藏同步、播放记录、云端存储,让你可以随时随地畅享海量免费影视内容。
✨ 功能特性
- 🔍 多源聚合搜索:一次搜索立刻返回全源结果。
- 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示。
- ▶️ 流畅在线播放:集成 HLS.js & ArtPlayer。
- ❤️ 收藏 + 继续观看:支持 Kvrocks/Redis/Upstash 存储,多端同步进度。
- 📱 PWA:离线缓存、安装到桌面/主屏,移动端原生体验。
- 🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸。
- 👿 智能去广告:自动跳过视频中的切片广告(实验性)。
部署准备
- 后面提供了三种部署方式, ClawCloud和Vercel都是基于Upstash, docker本地部署可以选择redis或者Upstash
Upstash配置
- 在 upstash 注册账号并新建一个 Redis实例, 实例用于替代本地部署Redis
Upstash地址: https://upstash.com
注册后登录Upstash面板, 选择创建database, 名称随意起, 比如lunatv

创建后, 进入Redis实力库, 保存URL和TOKEN

ClawCloud部署方式
☁️ 关于 Clawcloud
Clawcloud 是一个现代化的、以开发者为中心的云原生应用托管平台。它专注于提供极简、高效、高性能的部署体验,让开发者可以轻松地将他们的应用(如前端、后端 API、数据库和边缘函数)在全球范围内进行扩展。它致力于简化复杂的云基础设施管理,让开发者可以把精力集中在编写代码上。
✨ 核心特性
- 🌍 全球边缘网络 (CDN): 内置高性能内容分发网络,通过全球部署的节点加速应用内容和 API 响应,实现低延迟、高可用。
- 🛠️ 一体化工作流: 深度集成 Git 工作流,支持**自动构建、持续集成/持续部署 (CI/CD)**,每一次代码推送都会触发新的部署。
- ⚙️ 强大的 PaaS 能力: 提供托管式数据库、Serverless Functions(无服务器函数)、密钥管理等平台服务,简化后端基础设施搭建。
- 💰 弹性计费: 基于使用量(如请求次数、数据传输量)进行精确计费,灵活且成本可控,适合各种规模的项目。
- 🛡️ 内建安全与监控: 自动配置 SSL 证书、DDoS 防护,并提供详细的实时日志和性能监控面板。
- 🔌 扩展和集成: 支持与各种第三方服务(如 GitHub、GitLab、主流数据库)进行无缝集成。
使用GitHub登录(注册超过一周), 每月可以获得**$5免费额度**, 也就是说, 配置选择控制在每天$0.16, 就能实现免费。
此部署步骤围绕有自定义域名的方法, 如果没有自已域名, 可以适当省略部分步骤(部分网络配置和cloudflare相关配置)
注册账号
登录地址: https://ap-southeast-1.run.claw.cloud/signin
选择GitHub登录

登录后点击头像–> Plan, 查看是否有每月$5的免费额度, 下图就代表有$5的赠送

创建APP
进入创建APP配置页, 选择对应的配置, 一定控制在每天$0.16以下, 因为LunaTV就是个静态页, 不占资源

基础配置

1 | 名称: lunatv |
资源配置
- 看好左侧的价格表, 要每天小于$0.16才免费
这里我选1核512内存

变量配置

添加后点击ADD保存

1 | USERNAME=admin |
网络配置
端口配置3000, 地址为clawcloud分配的随机地址, clawcloud分配的随机地址只能科学上网访问, 如果有可以学网保存默认即可使用

如果需要国内访问, 可以参考白嫖Digitalplat免费域名先获得免费域名, 或者自己买一个域名, 然后填入自定义域名, 先别点确认, 需要先配置CNAME解析之后才能点确认, 否则报错

这里以Cloudflare为例:
登录Cloudflare, 进入到域, 添加一个CNAME记录

CNAME记录配置如下, 配置后点击保存.

然后回到clawcloud参数配置页面, 在网络中配置自己刚创建的域名, 点击确认

配置完成后如下

重要操作:
- 配置CNAME记录时候先关闭代理, 等全部配置生效后再开启, 否则clawcloud查询域名失效导致网络配置确认报错
- 先配置CNAME记录并保存再去确认clawcloud的网络配置, 不然会查询不到自定义域名导致确认报错
- 如果配置了自定义域名, 保存之后之前配置的端口会重置, 需要重新改成3000端口, 切记切记~
资源部署
全部配置完毕, 点击右上角的部署并确认

- 部署可能需要一些时间, 这是因为有时候pod池是满的, 需要等待或者调度空闲的pod资源
- 如果长时间(超过半小时)卡住可是尝试restart
开启代理
网络状态变为Available后, 回到cloudflare的CNAME配置页面, 启动代理

将Cloudflare的代理开启, 之后即可使用自定义域名访问lunatv, 访问页不需要加端口了

Vercel部署方式
🚀 关于 Vercel
Vercel 是一个为前端框架(尤其是 Next.js)量身定制的、专注于部署和协作的平台。它最初是 Next.js 的创建者,旨在提供一个零配置(Zero-Config) 的部署环境,让开发者能够快速构建、部署和扩展他们的 Web 应用。Vercel 的核心理念是“开发者的完美平台”,通过集成前沿的 Web 技术来提供极速的开发体验和最终用户体验。
✨ 核心特性
- ⚡ Next.js 最佳拍档: 作为 Next.js 官方推荐的部署平台,提供对 Next.js 特性的深度优化和原生支持(如 Server Components、Middleware)。
- 🌐 边缘函数 (Edge Functions): 允许你在全球网络边缘运行代码,以极低的延迟响应用户请求,非常适合个性化内容。
- 🔄 零配置部署: 自动识别项目类型(React, Vue, Astro 等),实现一键部署,无需手动配置复杂的构建流程。
- 🔒 自动 HTTPS/SSL: 所有部署的应用都自动配置免费的 SSL 证书,确保数据传输安全。
Vercel注册账号

GitHub复刻项目

Vercel部署项目
登录Vercel后, 选择Add New–> Project

如果你用GitHub登录, 这时候就弹出你的仓库列表, 选择刚刚复刻的LunaTV项目, 可以直接搜索luna, 然后点击后面的Import

导入之后, 名称自定义, 但不能有大写, 可以直接默认, 然后展开环境变量, 填入下面的信息, 填入后, 点击部署(Deploy)即可。
1 | USERNAME=admin |

自定义域名配置
部署完毕后, 点击前往仪表盘, 跳转到控制面板

到这里就可以使用Vercel分配的域名进行访问了, 但是Vercel分配的域名大多数会被污染, 导致国内无法访问, 这时候, 就需要我们配置自己都域名了

点击setting–> Domains–> Add Domain

这里, 直接输入你想使用的二级域名(这里和ClawCloud不一样, 先设定后解析), 然后Vercel会自动根据你的域名, 生成提示信息, 告诉你怎么去配置DNS解析

登录Cloudflare, 进入到域, 添加一个CNAME记录, 严格按照Vercel的配置填写, 最后保存设置

回到Vercel域名配置, 稍等片刻, 点击刷新按钮, 域名生效后会给生成一个SSL证书, 再稍等片刻, 证书生效后, 域名就可以访问了。

本地Docker部署方式
直接参考官方部署方案即可, 使用docker-compose部署更方便
docker-compose.yml
基于Redis
1 | services: |
基于Upstash
1 | services: |
晋级篇
影视库配置
登录lunatv后, 点击头像–>控制面板, 展开配置, 可以进行影视库配置, json示例如下
1 | { |
配置保存后, 可以进行验证测试

查看资源是否稳定可用, 如果资源可用, 就说明配置生效, 可以回到首页搜索自己喜欢的影视资源进行观看了
常用影视库
查找资源站
可以自己Google, 去搜一些常用的影视库, 主要看里面片源多少,自己喜欢的类型多不多, 这里我列出几个常用的影视库官网
提取采集资源
以卧龙资源为例, 进入官网后, 找到搭建教程, 有的也叫采集教程

进入采集教程页面后, 会列出很多的资源采集方式, lunatv一般提取综合资源, 路径就到vod就行

也就是https://collect.wolongzy.cc/api.php/provide/vod 就是我们要配置的采集路径, 可以放到浏览器中验证一下, 内容是否正常, 然后根据模板, 将采集路径配置到里影视库配置里面即可

采集资源优化
有时候资源站示例地址用的人比较多, 会被封, 或者很慢, 这时候, 我们就要想别的办法, 一般资源站都有很多备用地址, 比如卧龙资源站, 首页上会有很多备用地址

我们将备用地址替换到示例中的采集地址, 放到浏览器中访问一下, 如果采集正常, 速度还可以, 就可以配置在影视库配置中了

客户端
因为LunaTV默认是WEB页面访问, 所以电脑端访问还行, 但对于手机端用户不太友好, 那手机端咋办呢, 别着急,它来了
Selene📱
GitHub下载地址: https://github.com/MoonTechLab/Selene/releases
🎬 Selene 是以 MoonTV v100 版本 / Helios 为后端的客户端,保证原汁原味的同时,优化了移动端和桌面端操作体验。它基于 Flutter 构建,目前支持 Android、iOS、macOS 和 Windows 平台。
🎯 核心功能
- 多源聚合搜索 - 支持多个视频源的聚合搜索,快速找到想看的内容
- 智能播放记录 - 自动记录播放进度,支持断点续播
- 个人收藏夹 - 收藏喜欢的影视作品,方便随时观看
- 多平台支持 - 支持电影、电视剧、动漫、综艺等多种内容类型
- DLNA 投屏 - 大屏看片就是爽
🎨 用户体验
- 现代化 UI - 基于 Material Design 3 的现代化界面设计
- 深色模式 - 支持深色/浅色主题切换,护眼更舒适
- 流畅动画 - 丰富的交互动画,提升使用体验
🔧 技术特性
- 高性能播放 - 移动端使用 Awesome Video Player + FVP 后端,桌面端使用 Media Kit,支持多种视频格式
- 智能缓存 - 图片缓存和数据缓存机制,提升加载速度
- 网络优化 - 支持 WebSocket 实时通信,响应更迅速
- 跨平台适配 - 针对不同平台优化的播放器和 UI 控件
📱 支持平台
- Android - 最低支持 Android 5.0 (API 21)
- iOS - 最低支持 iOS 13.0
- macOS - 最低支持 macOS 11.0 (Big Sur)
- Windows - 最低支持 Windows 10
~手机端都有了, 那么电视端怎么办呢, 别着急, 它也来了。。。
OrionTV 📺
GitHub下载地址: http://github.com/orion-lib/OrionTV/releases
OrionTV是一个基于 React Native TVOS 和 Expo 构建的播放器,旨在提供流畅的视频观看体验。
✨ 功能特性
- 框架跨平台支持: 同时支持构建 Apple TV 和 Android TV。
- 现代化前端: 使用 Expo、React Native TVOS 和 TypeScript 构建,性能卓越。
- Expo Router: 基于文件系统的路由,使导航逻辑清晰简单。
- TV 优化的 UI: 专为电视遥控器交互设计的用户界面。
同类资源
KatelyaTV
此项目自「MoonTV」演进而来,为其二创/继承版本,持续维护与改进功能与体验。重点是保留了多元化的部署方式, 如Pages部署, 不过可能二开难度较大, 目前已经二开到满目疮痍了, 作者已崩溃, 期待后续更新吧~
🚀 部署特性
- 🐳 Docker 一键部署:提供完整的 Docker 镜像,开箱即用
- ☁️ 多平台支持:Vercel、Docker、Cloudflare Pages 全兼容
- 🔧 灵活配置:支持自定义资源站、代理设置、主题配置
- 📱 PWA 支持:可安装为桌面/手机应用
- 📺 TVBox 兼容:支持 TVBox 配置接口
**GitHub地址: ** https://github.com/katelya77
LibreTV
LibreTV 是一个轻量级、免费的在线视频搜索与观看平台,提供来自多个视频源的内容搜索与播放服务。无需注册,即开即用,支持多种设备访问。项目结合了前端技术和后端代理功能,可部署在支持服务端功能的各类网站托管服务上。
项目门户地址:libretv.is-an.org
**GitHub地址: ** https://github.com/LibreSpark