#!/usr/bin/env bash
set -euo pipefail
KIT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
CONFIG=${1:-"$KIT/config/deploy.env"}
[ "$(id -u)" = 0 ] || { echo "请由管理员执行安装"; exit 1; }
[ -f "$CONFIG" ] || { echo "先复制并填写config/deploy.env"; exit 1; }
set -a
source "$CONFIG"
set +a
python3 "$KIT/scripts/configure.py" --validate-only
[ "$(uname -m)" = x86_64 ] || { echo '此制品仅支持x86_64'; exit 1; }
"$NODE_BIN" -e 'if(process.platform!=="linux"||!process.version.startsWith("v20."))process.exit(1)'
[ ! -e "$APP_ROOT" ] && [ ! -L "$APP_ROOT" ] || { echo "目标目录已存在，为保留配置和数据停止：$APP_ROOT"; exit 1; }
id "$APP_USER" >/dev/null
runuser -u "$APP_USER" -- "$NODE_BIN" -e 'if(!process.version.startsWith("v20."))process.exit(1)'
cd "$KIT"
sha256sum -c PAYLOAD.sha256 > /dev/null
install -d -m 755 "$APP_ROOT"
cp -a "$KIT/payload/." "$APP_ROOT/"
python3 "$KIT/scripts/configure.py"
chown -R "$APP_USER:$(id -gn "$APP_USER")" "$APP_ROOT/data" "$APP_ROOT/aiboxfile" "$APP_ROOT/logs"
chown "$APP_USER:$(id -gn "$APP_USER")" "$APP_ROOT/services/gateway-service/.env"
chmod 600 "$APP_ROOT/services/gateway-service/.env"
echo "安装完成：$APP_ROOT"
echo '下一步：修改私有.env、迁数据与文件；先运行check.sh，再按手册启用Nginx及PM2。没有自动启动。'
