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"