LunaTV

🎬 开箱即用的跨平台影视聚合播放器
基于 Next.js 14 + Tailwind CSS + TypeScript 构建

Next.js 14 TailwindCSS TypeScript MIT License Docker Ready

✨ 功能特性

多源聚合搜索

一次搜索立刻返回全源结果,汇聚海量影视资源,告别资源匮乏烦恼。

丰富详情页

支持剧集列表、演员信息、年份、简介等完整信息展示,提供专业级体验。

流畅在线播放

集成 HLS.js 和 ArtPlayer,支持多种视频格式,播放体验丝滑流畅。

收藏 + 继续观看

支持 Kvrocks/Redis/Upstash 存储,多端同步进度,随时随地续播。

PWA 支持

离线缓存、安装到桌面/主屏,移动端原生体验,告别浏览器限制。

响应式布局

桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸,完美适配。

智能去广告

自动跳过视频中的切片广告(实验性功能),纯净观影体验。

AndroidTV 支持

配合 OrionTV 在 Android TV 上使用,播放记录与网页端同步。

重要提醒:部署后项目为空壳项目,无内置播放源和直播源,需要自行收集配置。

🛠 技术栈

Next.js 14

App Router
现代化前端框架

Tailwind CSS 3

原子化 CSS 框架
快速构建美观界面

TypeScript 4

类型安全的 JavaScript
提升开发体验

ArtPlayer + HLS.js

专业视频播放器
支持多种格式

Docker

容器化部署
一键启动

Redis/Kvrocks

高性能缓存
数据持久化

PWA 技术

离线缓存支持
原生应用体验

RESTful API

标准化接口
高效数据交互

🚀 部署指南

本项目仅支持 Docker 或其他基于 Docker 的平台部署

Kvrocks 存储(推荐)

高性能、数据持久化

高性能 持久化 推荐方案
docker-compose.yml
version: '3.8' services: moontv-core: image: ghcr.io/moontechlab/lunatv:latest container_name: moontv-core restart: on-failure ports: - '3000:3000' environment: - USERNAME=admin - PASSWORD=admin_password - NEXT_PUBLIC_STORAGE_TYPE=kvrocks - KVROCKS_URL=redis://moontv-kvrocks:6666 networks: - moontv-network depends_on: - moontv-kvrocks moontv-kvrocks: image: apache/kvrocks container_name: moontv-kvrocks restart: unless-stopped volumes: - kvrocks-data:/var/lib/kvrocks networks: - moontv-network networks: moontv-network: driver: bridge volumes: kvrocks-data:

Redis 存储

轻量级选择

轻量级 快速部署 易于配置
docker-compose.yml
version: '3.8' services: moontv-core: image: ghcr.io/moontechlab/lunatv:latest container_name: moontv-core restart: on-failure ports: - '3000:3000' environment: - USERNAME=admin - PASSWORD=admin_password - NEXT_PUBLIC_STORAGE_TYPE=redis - REDIS_URL=redis://moontv-redis:6379 networks: - moontv-network depends_on: - moontv-redis moontv-redis: image: redis:alpine container_name: moontv-redis restart: unless-stopped networks: - moontv-network volumes: - ./data:/data networks: moontv-network: driver: bridge
请开启持久化,否则升级/重启后数据丢失

Upstash 存储

云端 Redis 服务

云端服务 免运维 高可用
upstash.com 注册并创建 Redis 实例
复制 HTTPS ENDPOINT 和 TOKEN
使用下方配置部署
docker-compose.yml
version: '3.8' services: moontv-core: image: ghcr.io/moontechlab/lunatv:latest container_name: moontv-core restart: on-failure ports: - '3000:3000' environment: - USERNAME=admin - PASSWORD=admin_password - NEXT_PUBLIC_STORAGE_TYPE=upstash - UPSTASH_URL=你的_HTTPS_ENDPOINT - UPSTASH_TOKEN=你的_TOKEN

部署后配置

完成部署后为空壳应用,需要在管理后台配置播放源

1

访问部署的网站

使用浏览器打开你的域名或IP地址

2

登录管理后台

使用设置的 USERNAME 和 PASSWORD 登录

3

配置播放源

在配置文件设置中填写播放源配置

4

API 格式支持

配置支持标准的苹果 CMS V10 API 格式

配置完成后,您的 LunaTV 实例就可以开始使用了!

🔐 安全与隐私须知

设置强密码

必须设置环境变量 PASSWORD,使用强密码保护您的实例,避免未授权访问。

仅供个人使用

请勿将实例链接公开分享或传播,仅限个人学习和使用。

遵守当地法律

请确保使用行为符合当地法律法规,承担相应法律责任。

重要声明:
  • 本项目仅供学习和个人使用
  • 请勿用于商业用途或公开服务
  • 如因公开分享导致的法律问题,用户需自行承担责任
  • 项目开发者不对用户使用行为承担任何法律责任
  • 本项目不在中国大陆地区提供服务,在该地区使用产生的法律风险由用户自行承担