From e2677ce1182ebdb648e2914ce882b56cb6976177 Mon Sep 17 00:00:00 2001 From: eddy Date: Wed, 1 Jul 2026 03:15:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=20Sub2API=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20app=20=E9=95=9C=E5=83=8F=E6=AF=8F=E6=97=A5=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 生成 auto-update.sh,仅拉取并重启 app 服务(不动 db / redis) - 注册每天 04:00 的定时任务,按脚本路径去重避免重复写入 - 兼容 docker compose 与 docker-compose,安装与更新均自动检测 - 更新后清理悬空镜像,并写入 auto-update.log 日志 - 安装结束时打印手动更新提示与自动更新说明 --- install/23-Sub2API.sh | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/install/23-Sub2API.sh b/install/23-Sub2API.sh index 1d977b4..2b53fbe 100644 --- a/install/23-Sub2API.sh +++ b/install/23-Sub2API.sh @@ -2,16 +2,19 @@ # chmod +x 23-Sub2API.sh && ./23-Sub2API.sh # curl -sS -O https://gitea.tohub.top/Share/vps/raw/branch/main/install/23-Sub2API.sh && chmod +x 23-Sub2API.sh && ./23-Sub2API.sh -ipv4_address=$(curl -s ipv4.ip.sb) +set -euo pipefail + port80=8230 -# 1、更新包 -apt update -y && apt upgrade -y #更新一下包 +# 1、更新包(更新失败不阻断后续安装) +export DEBIAN_FRONTEND=noninteractive +apt update -y || true +apt upgrade -y || true #更新一下包 # 2、创建安装目录 mkdir -p /root/data/docker_data/Sub2API -cd /root/data/docker_data/Sub2API +cd /root/data/docker_data/Sub2API || { echo "无法进入安装目录 /root/data/docker_data/Sub2API" >&2; exit 1; } # 3、填写docker-compose配置 cat < docker-compose.yml @@ -52,18 +55,30 @@ services: EOF # 4、安装 +if ! command -v docker >/dev/null 2>&1; then + echo "未检测到 docker,请先安装 Docker 后再运行本脚本。" >&2 + exit 1 +fi + if docker compose version >/dev/null 2>&1; then docker compose up -d -else +elif command -v docker-compose >/dev/null 2>&1; then docker-compose up -d +else + echo "未检测到 docker compose 或 docker-compose,请先安装 Docker Compose。" >&2 + exit 1 fi # 5、打开防火墙的端口 -ufw allow $port80 -ufw status +if command -v ufw >/dev/null 2>&1; then + ufw allow "$port80" + ufw status +else + echo "未检测到 ufw,跳过防火墙端口放行。" +fi # 6、配置每日自动更新 -# install_dir 已在脚本开头(第 13 行)创建,这里仅定义路径 +# install_dir 已在脚本开头创建,这里仅定义路径 install_dir=/root/data/docker_data/Sub2API update_script="$install_dir/auto-update.sh"