发布应用 MoonTV 衍生应用

This commit is contained in:
2025-10-18 17:32:25 +08:00
parent 1e0f42a270
commit 39a5e96e87
24 changed files with 311 additions and 228 deletions
+61
View File
@@ -0,0 +1,61 @@
# LunaTV (MoonTV)
🎬 MoonTV 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript
构建,支持多资源搜索、在线播放、收藏同步、播放记录、云端存储,让你可以随时随地畅享海量免费影视内容。
![MoonTV](https://file.lifebus.top/imgs/moontv_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
<div style="border: 1px solid #FFC107; padding: 10px; border-radius: 5px; color: #856404; background-color: #FFF3CD; display: inline-block; width: 100%; max-width: 60%; margin-top: 10px;">
<div style="display: flex; align-items: center;">
<span style="font-size: 24px; margin-right: 8px;">⚠️</span>
<div>
<strong style="font-size: 16px;">温馨提示</strong><br>
<span style="font-size: 14px; color: #333;">请勿在国内宣传该产品</span>
</div>
</div>
</div>
## 公告
请不要在 B站、小红书、微信公众号、抖音、今日头条或其他中国大陆社交平台发布视频或文章宣传本项目,不授权任何“科技周刊/月刊”类项目或站点收录本项目。
## 简介
MoonTV 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript
构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量免费影视内容。
## 特性
### 🔍 多源聚合搜索
一次搜索立刻返回全源结果。
### 📄 丰富详情页
支持剧集列表、演员、年份、简介等完整信息展示。
### ▶️ 流畅在线播放
集成 HLS.js & ArtPlayer。
### ❤️ 收藏 + 继续观看
支持 Kvrocks/Redis/Upstash 存储,多端同步进度。
### 📱 PWA
离线缓存、安装到桌面/主屏,移动端原生体验。
### 🌗 响应式布局
桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸。
### 👿 智能去广告
自动跳过视频中的切片广告(实验性)。
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
+14
View File
@@ -0,0 +1,14 @@
additionalProperties:
key: lunatv
name: LunaTv (MoonTV)
tags:
- WebSite
- Local
shortDescZh: 跨平台的影视聚合播放站
shortDescEn: Cross-platform video aggregation station
type: website
crossVersionUpdate: true
limit: 0
website: https://github.com/MoonTechLab/LunaTV/
github: https://github.com/MoonTechLab/LunaTV/
document: https://github.com/MoonTechLab/LunaTV/
+186
View File
@@ -0,0 +1,186 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_REDIS_SERVICE
required: false
type: service
default: redis
envKey: PANEL_REDIS_TYPE
labelZh: Redis 服务 (前置检查)
labelEn: Redis Service (Pre-check)
required: false
type: apps
values:
- label: Redis
value: redis
- label: Kvrocks
value: kvrocks
- default: 3000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: USERNAME
labelZh: 管理员用户名
labelEn: Admin Username
required: true
type: text
- default: ""
edit: true
envKey: PASSWORD
labelZh: 管理员密码
labelEn: Admin Password
required: true
type: password
- default: ""
edit: true
envKey: SITE_BASE
labelZh: 站点URL
labelEn: Site Url
required: false
type: text
- default: "MoonTV"
edit: true
envKey: NEXT_PUBLIC_SITE_NAME
labelZh: 站点名称
labelEn: Site Name
required: true
type: text
- default: "本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。"
edit: true
envKey: ANNOUNCEMENT
labelZh: 站点公告
labelEn: Site Announcement
required: true
type: text
- default: "redis"
edit: true
envKey: NEXT_PUBLIC_STORAGE_TYPE
labelZh: 数据存储类型
labelEn: Storage Type
required: true
type: select
values:
- label: Upstash
value: "upstash"
- label: Redis
value: "redis"
- label: Kvrocks
value: "kvrocks"
- default: "redis://127.0.0.1:6379"
edit: true
envKey: REDIS_URL
labelZh: Redis 地址 (Redis 存储)
labelEn: Redis Address (Redis Storage)
required: false
type: text
- default: "redis://127.0.0.1:6666"
edit: true
envKey: KVROCKS_URL
labelZh: Kvrocks 地址 (Kvrocks 存储)
labelEn: Kvrocks Address (Kvrocks Storage)
required: false
type: text
- default: ""
edit: true
envKey: UPSTASH_URL
labelZh: Upstash 地址 (Upstash 存储)
labelEn: Upstash Address (Upstash Storage)
required: false
type: text
- default: ""
edit: true
envKey: UPSTASH_TOKEN
labelZh: Upstash 授权码 (Upstash 存储)
labelEn: Upstash Token (Upstash Storage)
required: false
type: password
- default: 5
edit: true
envKey: NEXT_PUBLIC_SEARCH_MAX_PAGE
labelZh: 搜索结果最大页数
labelEn: Search result maximum number of pages
required: true
type: number
- default: "direct"
edit: true
envKey: NEXT_PUBLIC_DOUBAN_PROXY_TYPE
labelZh: 豆瓣数据源请求方式
labelEn: Douban data source request method
required: true
type: select
values:
- label: 直连
value: "direct"
- label: cors-proxy-zwei
value: "cors-proxy-zwei"
- label: cmliussss-cdn-tencent
value: "cmliussss-cdn-tencent"
- label: cmliussss-cdn-ali
value: "cmliussss-cdn-ali"
- label: 自定义
value: "custom"
- default: ""
edit: true
envKey: NEXT_PUBLIC_DOUBAN_PROXY
labelZh: 自定义豆瓣数据代理 URL
labelEn: Customize Douban data proxy URL
required: false
type: text
- default: "direct"
edit: true
envKey: NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPE
labelZh: 豆瓣图片代理类型
labelEn: Douban picture agent type
required: true
type: select
values:
- label: 直连
value: "direct"
- label: 服务端代理
value: "server"
- label: 豆瓣官方的精品 cdn(阿里云)
value: "img3"
- label: cmliussss-cdn-tencent
value: "cmliussss-cdn-tencent"
- label: cmliussss-cdn-ali
value: "cmliussss-cdn-ali"
- label: 自定义
value: "custom"
- default: ""
edit: true
envKey: NEXT_PUBLIC_DOUBAN_IMAGE_PROXY
labelZh: 自定义豆瓣图片代理 URL
labelEn: Customize Douban image proxy URL
required: false
type: text
- default: "false"
edit: true
envKey: NEXT_PUBLIC_DISABLE_YELLOW_FILTER
labelZh: 关闭色情内容过滤
labelEn: Disable Yellow Filter
required: true
type: select
values:
- label: 开启过滤
value: "true"
- label: 禁用过滤
value: "false"
- default: "true"
edit: true
envKey: NEXT_PUBLIC_FLUID_SEARCH
labelZh: 流式输出功能
labelEn: Streaming output function
required: true
type: select
values:
- label: 开启流式输出
value: "true"
- label: 禁用流式输出
value: "false"
+20
View File
@@ -0,0 +1,20 @@
networks:
1panel-network:
external: true
services:
moontv:
image: ghcr.io/moontechlab/lunatv:latest
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:3000
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
environment:
- TZ=Asia/Shanghai
+2
View File
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
+2
View File
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB