diff --git a/.github/README.md b/.github/README.md
index 2e960ad44..dddd6b945 100644
--- a/.github/README.md
+++ b/.github/README.md
@@ -98,6 +98,7 @@
| 🟢 |
| Kavita | https://www.kavitareader.com/ | 自托管数字图书馆 | |
| 🟢 |
| Kimai | https://www.kimai.org/ | 基于网络的多用户时间追踪应用 | |
| 🟢 |
| Komga | https://komga.org/ | 漫画、漫画、蓝光光盘、杂志和电子书的媒体服务器 | |
+| 🟢 |
| LibreTV | https://libretv.is-an.org/ | 免费在线视频搜索与观看平台 | |
| 🟢 |
| 问卷星 | https://www.limesurvey.org/ | 在线问卷调查程序 | |
| 🟢 |
| LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
| 🟢 |
| Logto | https://logto.io/ | 开发者更好的身份基础设施,以及 Auth0 的开源替代方案。 | |
diff --git a/README.md b/README.md
index 3d03a0843..e96cf7b6b 100644
--- a/README.md
+++ b/README.md
@@ -93,6 +93,7 @@
| 🟢 |
| Kavita | https://www.kavitareader.com/ | 自托管数字图书馆 | |
| 🟢 |
| Kimai | https://www.kimai.org/ | 基于网络的多用户时间追踪应用 | |
| 🟢 |
| Komga | https://komga.org/ | 漫画、漫画、蓝光光盘、杂志和电子书的媒体服务器 | |
+| 🟢 |
| LibreTV | https://libretv.is-an.org/ | 免费在线视频搜索与观看平台 | |
| 🟢 |
| 问卷星 | https://www.limesurvey.org/ | 在线问卷调查程序 | |
| 🟢 |
| LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
| 🟢 |
| Logto | https://logto.io/ | 开发者更好的身份基础设施,以及 Auth0 的开源替代方案。 | |
diff --git a/apps/libretv/202507110114/data.yml b/apps/libretv/202507110114/data.yml
new file mode 100644
index 000000000..b24844ed2
--- /dev/null
+++ b/apps/libretv/202507110114/data.yml
@@ -0,0 +1,17 @@
+additionalProperties:
+ formFields:
+ - default: 8080
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelZh: WebUI 端口
+ labelEn: WebUI port
+ required: true
+ rule: paramPort
+ type: number
+ - default: "libretv"
+ edit: true
+ envKey: PASSWORD
+ labelZh: 密码
+ labelEn: Password
+ required: true
+ type: password
diff --git a/apps/libretv/202507110114/docker-compose.yml b/apps/libretv/202507110114/docker-compose.yml
new file mode 100644
index 000000000..c738d9658
--- /dev/null
+++ b/apps/libretv/202507110114/docker-compose.yml
@@ -0,0 +1,20 @@
+networks:
+ 1panel-network:
+ external: true
+
+services:
+ libretv:
+ image: bestzwei/libretv:202507110114
+ container_name: ${CONTAINER_NAME}
+ labels:
+ createdBy: "Apps"
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8080
+ env_file:
+ - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
+ - ${ENV_FILE:-/etc/1panel/envs/default.env}
+ environment:
+ - TZ=Asia/Shanghai
diff --git a/apps/libretv/202507110114/envs/default.env b/apps/libretv/202507110114/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/apps/libretv/202507110114/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/apps/libretv/202507110114/envs/global.env b/apps/libretv/202507110114/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/apps/libretv/202507110114/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/apps/libretv/202507110114/scripts/init.sh b/apps/libretv/202507110114/scripts/init.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/apps/libretv/202507110114/scripts/init.sh
@@ -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
diff --git a/apps/libretv/202507110114/scripts/uninstall.sh b/apps/libretv/202507110114/scripts/uninstall.sh
new file mode 100644
index 000000000..c86c4fbca
--- /dev/null
+++ b/apps/libretv/202507110114/scripts/uninstall.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/apps/libretv/202507110114/scripts/upgrade.sh b/apps/libretv/202507110114/scripts/upgrade.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/apps/libretv/202507110114/scripts/upgrade.sh
@@ -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
diff --git a/apps/libretv/README.md b/apps/libretv/README.md
new file mode 100644
index 000000000..44dec344c
--- /dev/null
+++ b/apps/libretv/README.md
@@ -0,0 +1,41 @@
+# LibreTV
+
+自由观影,畅享精彩
+
+
+
+
+
+## 简介
+
+LibreTV 是一个轻量级、免费的在线视频搜索与观看平台,提供来自多个视频源的内容搜索与播放服务。无需注册,即开即用,支持多种设备访问。项目结合了前端技术和后端代理功能,可部署在支持服务端功能的各类网站托管服务上。
+
+## 特性
+
+### 完全免费
+
+100%免费使用,无任何付费功能,无会员制度,让每个人都能享受自由观影。
+
+### 智能广告过滤
+
+内置HLS广告切片过滤逻辑,尽可能减少视频播放中的广告干扰,提供更纯净的观影体验。
+
+### 开源透明
+
+完全开源,代码透明,社区驱动开发,安全可信赖。
+
+### 多源聚合
+
+聚合多个优质视频源,智能搜索,丰富的内容库满足不同用户的观影需求。支持标准苹果CMS V10 API格式,可自定义接口源。
+
+### 响应式设计
+
+完美适配手机、平板、电脑等各种设备,支持键盘快捷键操作,随时随地享受观影。
+
+### 易于部署
+
+支持Docker、Vercel、Netlify、Cloudflare等多种部署方式,快速搭建个人实例。
+
+---
+
+
diff --git a/apps/libretv/data.yml b/apps/libretv/data.yml
new file mode 100644
index 000000000..1bf1ad129
--- /dev/null
+++ b/apps/libretv/data.yml
@@ -0,0 +1,14 @@
+additionalProperties:
+ key: libretv
+ name: LibreTV
+ tags:
+ - WebSite
+ - Local
+ shortDescZh: 免费在线视频搜索与观看平台
+ shortDescEn: Free online video search and viewing platform
+ type: website
+ crossVersionUpdate: true
+ limit: 0
+ website: https://libretv.is-an.org/
+ github: https://github.com/LibreSpark/LibreTV/
+ document: https://libretv.is-an.org/
diff --git a/apps/libretv/latest/data.yml b/apps/libretv/latest/data.yml
new file mode 100644
index 000000000..b24844ed2
--- /dev/null
+++ b/apps/libretv/latest/data.yml
@@ -0,0 +1,17 @@
+additionalProperties:
+ formFields:
+ - default: 8080
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelZh: WebUI 端口
+ labelEn: WebUI port
+ required: true
+ rule: paramPort
+ type: number
+ - default: "libretv"
+ edit: true
+ envKey: PASSWORD
+ labelZh: 密码
+ labelEn: Password
+ required: true
+ type: password
diff --git a/apps/libretv/latest/docker-compose.yml b/apps/libretv/latest/docker-compose.yml
new file mode 100644
index 000000000..0f5952646
--- /dev/null
+++ b/apps/libretv/latest/docker-compose.yml
@@ -0,0 +1,20 @@
+networks:
+ 1panel-network:
+ external: true
+
+services:
+ libretv:
+ image: bestzwei/libretv:latest
+ container_name: ${CONTAINER_NAME}
+ labels:
+ createdBy: "Apps"
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8080
+ env_file:
+ - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
+ - ${ENV_FILE:-/etc/1panel/envs/default.env}
+ environment:
+ - TZ=Asia/Shanghai
diff --git a/apps/libretv/latest/envs/default.env b/apps/libretv/latest/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/apps/libretv/latest/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/apps/libretv/latest/envs/global.env b/apps/libretv/latest/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/apps/libretv/latest/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/apps/libretv/latest/scripts/init.sh b/apps/libretv/latest/scripts/init.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/apps/libretv/latest/scripts/init.sh
@@ -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
diff --git a/apps/libretv/latest/scripts/uninstall.sh b/apps/libretv/latest/scripts/uninstall.sh
new file mode 100644
index 000000000..c86c4fbca
--- /dev/null
+++ b/apps/libretv/latest/scripts/uninstall.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/apps/libretv/latest/scripts/upgrade.sh b/apps/libretv/latest/scripts/upgrade.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/apps/libretv/latest/scripts/upgrade.sh
@@ -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
diff --git a/apps/libretv/logo.png b/apps/libretv/logo.png
new file mode 100644
index 000000000..1d96ad756
Binary files /dev/null and b/apps/libretv/logo.png differ