34
apps/moontv/README.md
Normal file
34
apps/moontv/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# MoonTV
|
||||
|
||||
跨平台的影视聚合播放站
|
||||
|
||||

|
||||
|
||||

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

|
||||
14
apps/moontv/data.yml
Normal file
14
apps/moontv/data.yml
Normal 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/
|
||||
97
apps/moontv/latest/data.yml
Normal file
97
apps/moontv/latest/data.yml
Normal 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"
|
||||
22
apps/moontv/latest/docker-compose.yml
Normal file
22
apps/moontv/latest/docker-compose.yml
Normal 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
|
||||
2
apps/moontv/latest/envs/default.env
Normal file
2
apps/moontv/latest/envs/default.env
Normal file
@@ -0,0 +1,2 @@
|
||||
# copyright© 2024 XinJiang Ms Studio
|
||||
ENV_FILE=.env
|
||||
2
apps/moontv/latest/envs/global.env
Normal file
2
apps/moontv/latest/envs/global.env
Normal file
@@ -0,0 +1,2 @@
|
||||
# copyright© 2024 XinJiang Ms Studio
|
||||
TZ=Asia/Shanghai
|
||||
17
apps/moontv/latest/scripts/init.sh
Normal file
17
apps/moontv/latest/scripts/init.sh
Normal 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
apps/moontv/latest/scripts/uninstall.sh
Normal file
10
apps/moontv/latest/scripts/uninstall.sh
Normal 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
apps/moontv/latest/scripts/upgrade.sh
Normal file
17
apps/moontv/latest/scripts/upgrade.sh
Normal 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
BIN
apps/moontv/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 200 KiB |
Reference in New Issue
Block a user