mirror of
https://github.com/QYG2297248353/appstore-1panel.git
synced 2026-06-16 01:02:14 +08:00
发布应用 MoonTV 衍生应用
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# LunaTV (MoonTV)
|
||||
|
||||
🎬 MoonTV 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript
|
||||
构建,支持多资源搜索、在线播放、收藏同步、播放记录、云端存储,让你可以随时随地畅享海量免费影视内容。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
<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
|
||||
|
||||
离线缓存、安装到桌面/主屏,移动端原生体验。
|
||||
|
||||
### 🌗 响应式布局
|
||||
|
||||
桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸。
|
||||
|
||||
### 👿 智能去广告
|
||||
|
||||
自动跳过视频中的切片广告(实验性)。
|
||||
|
||||
---
|
||||
|
||||

|
||||
@@ -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/
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
# copyright© 2024 XinJiang Ms Studio
|
||||
ENV_FILE=.env
|
||||
@@ -0,0 +1,2 @@
|
||||
# copyright© 2024 XinJiang Ms Studio
|
||||
TZ=Asia/Shanghai
|
||||
@@ -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
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
@@ -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 |
Reference in New Issue
Block a user