From 5731759606c3cc2b3644cca989a30ea84c2c5fb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=8C=E6=A3=AE?= Date: Fri, 19 Jul 2024 14:24:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=B5=8B=E8=AF=95=E7=89=88?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 萌森 --- README.md | 239 +++++++++++++++++++++++++++--------- script/pre_app_install.sh | 85 +++++++++++++ script/pre_app_uninstall.sh | 43 +++++++ 3 files changed, 306 insertions(+), 61 deletions(-) create mode 100644 script/pre_app_install.sh create mode 100644 script/pre_app_uninstall.sh 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日 公告

+

警告 请勿升级 1Panelv1.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/) + + Profile Picture +
+
邮箱
+
通过邮箱反馈您所遇到的问题
+
+
-[🌍博客](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!"