发布应用 MoonTV

Signed-off-by: Meng Sen <qyg2297248353@gmail.com>
This commit is contained in:
Meng Sen
2025-07-15 11:38:45 +08:00
parent b45d4fdb7f
commit 72c10ebaff
10 changed files with 215 additions and 0 deletions

34
apps/moontv/README.md Normal file
View File

@@ -0,0 +1,34 @@
# MoonTV
跨平台的影视聚合播放站
![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)
## 简介
MoonTV 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript
构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量免费影视内容。
## 特性
🔍 多源聚合搜索:内置数十个免费资源站点,一次搜索立刻返回全源结果。
📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示。
▶️ 流畅在线播放:集成 HLS.js & ArtPlayer。
❤️ 收藏 + 继续观看:支持 Redis/D1 存储,多端同步进度。
📱 PWA离线缓存、安装到桌面/主屏,移动端原生体验。
🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸。
🚀 极简部署:一条 Docker 命令即可将完整服务跑起来,或免费部署到 Vercel 和 Cloudflare。
👿 智能去广告:自动跳过视频中的切片广告(实验性)
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

14
apps/moontv/data.yml Normal file
View File

@@ -0,0 +1,14 @@
additionalProperties:
key: moontv
name: MoonTV
tags:
- WebSite
- Local
shortDescZh: 跨平台的影视聚合播放站
shortDescEn: Cross-platform video aggregation station
type: website
crossVersionUpdate: true
limit: 0
website: https://github.com/senshinya/MoonTV/
github: https://github.com/senshinya/MoonTV/
document: https://github.com/senshinya/MoonTV/

View File

@@ -0,0 +1,97 @@
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
- default: "/home/moontv"
edit: true
envKey: MOONTV_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 3000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: "MoonTV"
edit: true
envKey: SITE_NAME
labelZh: 网站名称
labelEn: Site Name
required: true
type: text
- default: "本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。"
edit: true
envKey: ANNOUNCEMENT
labelZh: 站点公告
labelEn: Site Announcement
required: true
type: text
- default: 5
edit: true
envKey: NEXT_PUBLIC_SEARCH_MAX_PAGE
labelZh: 搜索结果最大页数
labelEn: Search result maximum number of pages
required: true
type: number
- default: "localstorage"
edit: true
envKey: NEXT_PUBLIC_STORAGE_TYPE
labelZh: 数据存储类型
labelEn: Storage Type
required: true
type: select
values:
- label: 本地浏览器存储
value: "localstorage"
- label: Redis
value: "redis"
- 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: ""
edit: true
envKey: USERNAME
labelZh: Redis 用户 (Redis 存储)
labelEn: Redis User (Redis Storage)
required: false
type: text
- default: ""
edit: true
envKey: PASSWORD
labelZh: Redis 密码 (Redis 存储)
labelEn: Redis Password (Redis Storage)
required: false
type: password
- default: "false"
edit: true
envKey: NEXT_PUBLIC_ENABLE_REGISTER
labelZh: 是否允许注册
labelEn: Enable Register
required: true
type: select
values:
- label: 允许注册
value: "true"
- label: 禁用注册
value: "false"

View File

@@ -0,0 +1,22 @@
networks:
1panel-network:
external: true
services:
moontv:
image: ghcr.io/senshinya/moontv: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}
volumes:
- ${MOONTV_ROOT_PATH}/data:/data
environment:
- TZ=Asia/Shanghai

View File

@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env

View File

@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai

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

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

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

BIN
apps/moontv/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB