diff --git a/README.md b/README.md
index fa5a9907..238417b0 100644
--- a/README.md
+++ b/README.md
@@ -1,54 +1,102 @@
-# 1Panel 第三方应用商店
+# Docker 应用商店 - `1Panel` 版本
-> # 2024年07月17日 公告
->
-> 正式开始维护,新老用户推荐使用自动化脚本完成软件订阅。
->
-> # 2024年07月16日 公告
->
-> 为了解决应用安装问题,我们将在近期发布新的应用安装脚本,敬请期待!
->
-> 具体上线应用,可以参考下方应用列表状态标识。
->
-> 通过固定环境变量文件,解决应用安装问题,不再需要手动创建 `.env` 文件。
->
-> 对于 `FIT2CLOUD 飞致云` 旗下开源产品 `1Panel` 经过多次商讨,依旧无法将原有问题解决。迫于无奈,这次我们采用迂回战术,通过固定环境变量文件的方式解决问题。
->
-> 因此提高了维护成本,但相比于用户体验,我们认为这是值得的。简洁的 `docker-compose.yml` 才是我们的目标。
->
-> 后续接入 `Dockge` 应用,将会迎来新的安装方式,敬请期待!
->
-> 新老用户均可使用新的安装方式,升级或安装自动化脚本,无需卸载原有安装脚本。
->
-> 由于结构变化,我们建议您,完全卸载应用后重新安装,以免出现问题。
->
-> # 2024年06月14日 公告
-> 由于 1Panel 的升级,自版本 `v1.10.10-lts` 开始,所有应用均已停止更新!
->
-> 经过与 1Panel 官方商议,由于其认为安装或升级应用或面板出现的问题不属于 `Bug`,对于使用本仓库的用户,我们深感抱歉!
-> 截至目前,我们将不再更新任何应用,如果您有任何问题,请放弃使用当前第三方应用。
->
-> 如果您依旧收到应用更新提示,当前唯一解决升级方案为:卸载应用并重新安装。
-> 安装时出现的相关问题,请参考常见问题解决。
->
-> 🥰 祝大家周末愉快~~
->
-> # 2024年06月12日 公告
-> 由于 1Panel 的升级,造成部分应用无法正常使用,我们考虑到用户体验,决定暂时关闭应用商店更新,等待团队商议解决方案。
->
-> ### 拟定解决方案
-> 1. 当您收到提示 /xxx/xxx/.env 文件不存在时,请手动创建该文件,不需要填写任何内容的空文件。
-> 2. 当您升级 1Panel 出现容器不存在时,请查看容器列表是否正常运行,如果没有运行,可卸载应用并重新安装。
-> 3. 当您升级 1Panel 出现应用无法正常使用时,请查看应用是否正常运行,如果没有运行,可卸载应用并重新安装。
-> 4. 关闭期间,您可能会收到部分应用的更新,没有关系,您可以选择性更新,不会影响您的使用。
-> 5. 由于数据均采用持久化方式存储,卸载应用不会删除数据,您可以放心卸载并重新安装。
->
-> # 2024年06月09日 公告
-> 警告 请勿升级 1Panel 到 v1.10.10-lts 版本,否则会导致应用商店无法使用!
+本项目由 [`新疆萌森软件开发工作室`](https://lifebus.top/) 提供技术支持,我们致力于为 `1Panel` 应用商店用户提供更多的应用程序。
-本仓库中的所有应用不会与 1Panel 官方应用商店冲突(存在相同应用并不影响后续的安装与升级,择优选择你需要的版本即可)
+本仓库中的所有应用不会与 `1Panel` 官方应用商店冲突(存在相同应用并不影响后续的安装与升级,择优选择你需要的版本即可)
,我们会定期更新应用,如果您有任何问题,请联系我们。
-当前仓库由 [`新疆萌森软件开发工作室`](https://lifebus.top/) 维护,我们致力于为 1Panel 用户提供更多的应用程序。
+
+
+
+
+
+
+
+
+
+
+
+
2024年07月17日 公告
+
正式开始维护,新老用户推荐使用自动化脚本完成软件订阅。
+
+
+
+
2024年07月16日 公告
+
为了解决应用安装问题,我们将在近期发布新的应用安装脚本,敬请期待!
+
具体上线应用,可以参考下方应用列表状态标识。
+
通过固定环境变量文件,解决应用安装问题,不再需要手动创建 .env 文件。
+
对于 FIT2CLOUD 飞致云 旗下开源产品 1Panel 经过多次商讨,依旧无法将原有问题解决。迫于无奈,这次我们采用迂回战术,通过固定环境变量文件的方式解决问题。
+
因此提高了维护成本,但相比于用户体验,我们认为这是值得的。简洁的 docker-compose.yml 才是我们的目标。
+
后续接入 Dockge 应用,将会迎来新的安装方式,敬请期待!
+
新老用户均可使用新的安装方式,升级或安装自动化脚本,无需卸载原有安装脚本。
+
由于结构变化,我们建议您,完全卸载应用后重新安装,以免出现问题。
+
+
+
+
2024年06月14日 公告
+
由于 1Panel 的升级,自版本 v1.10.10-lts 开始,所有应用均已停止更新!
+
经过与 1Panel 官方商议,由于其认为安装或升级应用或面板出现的问题不属于 Bug,对于使用本仓库的用户,我们深感抱歉!
+
截至目前,我们将不再更新任何应用,如果您有任何问题,请放弃使用当前第三方应用。
+
如果您依旧收到应用更新提示,当前唯一解决升级方案为:卸载应用并重新安装。安装时出现的相关问题,请参考常见问题解决。
+
🥰 祝大家周末愉快~~
+
+
+
+
2024年06月12日 公告
+
由于 1Panel 的升级,造成部分应用无法正常使用,我们考虑到用户体验,决定暂时关闭应用商店更新,等待团队商议解决方案。
+
拟定解决方案
+
+ - 当您收到提示 /xxx/xxx/.env 文件不存在时,请手动创建该文件,不需要填写任何内容的空文件。
+ - 当您升级 1Panel 出现容器不存在时,请查看容器列表是否正常运行,如果没有运行,可卸载应用并重新安装。
+ - 当您升级 1Panel 出现应用无法正常使用时,请查看应用是否正常运行,如果没有运行,可卸载应用并重新安装。
+ - 关闭期间,您可能会收到部分应用的更新,没有关系,您可以选择性更新,不会影响您的使用。
+ - 由于数据均采用持久化方式存储,卸载应用不会删除数据,您可以放心卸载并重新安装。
+
+
+
+
+
2024年06月09日 公告
+
警告 请勿升级 1Panel 到 v1.10.10-lts 版本,否则会导致应用商店无法使用!
+
+
+
+
## 维护状态
@@ -167,6 +215,24 @@ export http_proxy="$proxy_protocols://$proxy_server:$proxy_port"
export https_proxy="$proxy_protocols://$proxy_server:$proxy_port"
```
+## 安装 `Pre 尝鲜版` 应用
+
+> 说明:
+>
+> `Pre 尝鲜版` 应用为测试版本,可能存在未知问题,我们建议您在测试环境中使用。
+
+### 安装尝鲜版应用
+
+```sh
+curl -sSL https://install.lifebus.top/pre_app_install.sh | bash
+```
+
+### 卸载尝鲜版应用
+
+```sh
+curl -sSL https://install.lifebus.top/pre_app_uninstall.sh | bash
+```
+
## 常见问题
+ 升级失败
@@ -192,18 +258,69 @@ export https_proxy="$proxy_protocols://$proxy_server:$proxy_port"
## 联系我们
-[📮邮箱](mailto:qyg2297248353@gmail.com)
+
+
+
+
+
+
+
+
-[🌍官网](https://lifebus.top/)
+
+
+
+
-[🌍博客](https://blog.lifebus.top/)
-
-[🌍GitHub](https://github.com/qyg2297248353)
-
-[✈️Telegram](https://t.me/qyg2297248353)
-
-[🌍Twitter](https://twitter.com/qyg2297248353)
-
-[🌍Facebook](https://www.facebook.com/qyg2297248353)
-
-[🌍Instagram](https://www.instagram.com/qyg2297248353)
+
+
diff --git a/script/pre_app_install.sh b/script/pre_app_install.sh
new file mode 100644
index 00000000..945163dd
--- /dev/null
+++ b/script/pre_app_install.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+echo "$(date): Step Tip - Start installing the 1Panel third-party app store"
+echo "$(date): Step Init - Checking for required commands..."
+
+check_command() {
+ command -v "$1" > /dev/null 2>&1 || {
+ echo >&2 "Error: $1 is not installed. Please install it and try again."
+ exit 1
+ }
+}
+
+check_command "git"
+check_command "cp"
+check_command "rm"
+check_command "echo"
+check_command "which"
+check_command "xargs"
+check_command "grep"
+check_command "cut"
+
+BASE_DIR=$(which 1pctl | xargs grep '^BASE_DIR=' | cut -d'=' -f2)
+echo "Step Init - 1panel install directory: $BASE_DIR"
+
+if [ -z "$BASE_DIR" ]; then
+ echo "Error: 1panel install directory not found."
+ exit 1
+fi
+
+echo "$(date): Step 1 - Cloning repository..."
+repos=(
+ 'https://github.com/QYG2297248353/appstore-1panel'
+ 'https://gitee.com/qyg2297248353/appstore-1panel'
+ 'https://gitea.com/QYG2297248353/appstore-1panel'
+)
+
+for repo in "${repos[@]}"; do
+ git clone --depth 1 -b custom "$repo" "${BASE_DIR:?}/1panel/resource/apps/local/appstore-localApps" && break
+done
+
+if [ ! -d "${BASE_DIR:?}/1panel/resource/apps/local/appstore-localApps" ]; then
+ echo "Error: Failed to clone repository."
+ exit 1
+fi
+
+APPS_DIR="$BASE_DIR/1panel/resource/apps/local/appstore-localApps/apps"
+LOCAL_DIR="$BASE_DIR/1panel/resource/apps/local"
+ENVS_DIR="$BASE_DIR/1panel/resource/apps/local/appstore-localApps/envs"
+DEST_ENVS_DIR="/etc/1panel/envs"
+
+echo "$(date): Step 2 - Checking for updated apps..."
+for app_directory in "${APPS_DIR:?}"/*; do
+ app_name=$(basename "$app_directory")
+ app_name_pre="${app_name}-pre"
+
+ if [ -d "${LOCAL_DIR:?}/$app_name_pre" ]; then
+ rm -rf "${LOCAL_DIR:?}/$app_name_pre"
+ cp -r "${app_directory:?}" "${LOCAL_DIR:?}/$app_name_pre"
+ echo "$(date): Step 2 - Upgraded applications $app_name"
+ echo "$(date): Step 2 - Copied and replaced directory $app_directory to $LOCAL_DIR/"
+ else
+ cp -r "${app_directory:?}" "${LOCAL_DIR:?}/$app_name_pre"
+ echo "$(date): Step 2 - Installed applications $app_name"
+ echo "$(date): Step 2 - Copied directory $app_directory to $LOCAL_DIR/"
+ fi
+done
+
+echo "$(date): Step 3 - Copying envs directory..."
+if [ -d "${ENVS_DIR:?}" ]; then
+ rm -rf "${DEST_ENVS_DIR:?}"
+ mkdir -p "${DEST_ENVS_DIR:?}"
+ cp -r "${ENVS_DIR:?}/"* "${DEST_ENVS_DIR:?}/"
+ echo "$(date): Step 3 - Copied envs directory to $DEST_ENVS_DIR/"
+else
+ echo "$(date): Step 3 - Envs directory not found, skipping."
+fi
+
+echo "$(date): Step 4 - Cleaning installed directory..."
+rm -rf "${BASE_DIR:?}/1panel/resource/apps/local/appstore-localApps"
+echo "$(date): Step 4 - Finished cleaning installed directory"
+
+echo "$(date): Step Tip - Installation the 1Panel third-party app store completed!"
+echo "$(date): Step Tip - Copyright© 2024 Xinjiang Mengsen Software Development Studio."
+echo "$(date): Step Tip - https://blog.lifebus.top/"
+echo "$(date): Step Tip - Done!"
diff --git a/script/pre_app_uninstall.sh b/script/pre_app_uninstall.sh
new file mode 100644
index 00000000..3001d9ae
--- /dev/null
+++ b/script/pre_app_uninstall.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+echo "$(date): Step Tip - Start installing the 1Panel third-party app store"
+echo "$(date): Step Init - Checking for required commands..."
+
+check_command() {
+ command -v "$1" > /dev/null 2>&1 || {
+ echo >&2 "Error: $1 is not installed. Please install it and try again."
+ exit 1
+ }
+}
+
+check_command "git"
+check_command "cp"
+check_command "rm"
+check_command "echo"
+check_command "which"
+check_command "xargs"
+check_command "grep"
+check_command "cut"
+
+BASE_DIR=$(which 1pctl | xargs grep '^BASE_DIR=' | cut -d'=' -f2)
+echo "Step Init - 1panel install directory: $BASE_DIR"
+
+if [ -z "$BASE_DIR" ]; then
+ echo "Error: 1panel install directory not found."
+ exit 1
+fi
+
+LOCAL_DIR="$BASE_DIR/1panel/resource/apps/local"
+
+echo "$(date): Step 1 - Uninstalling applications..."
+for app in "$LOCAL_DIR"/*-pre; do
+ if [ -d "$app" ]; then
+ echo "$(date): Step 1 - Uninstalling $(basename "$app")..."
+ rm -rf "$app"
+ fi
+done
+
+echo "$(date): Step Tip - Uninstalling the 1Panel third-party app store completed!"
+echo "$(date): Step Tip - Copyright© 2024 Xinjiang Mengsen Software Development Studio."
+echo "$(date): Step Tip - https://blog.lifebus.top/"
+echo "$(date): Step Tip - Done!"