diff --git a/docs/deployment.md b/docs/deployment.md index 8b1949b..30c00f3 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -89,11 +89,43 @@ cat /var/lib/safesight-edge-agent/device_id ## 更新部署 -在设备上更新代码和二进制: +### 在线更新(可访问 git) ```bash cd ~/apps/safesight-edge git pull bash scripts/build.sh -m -j4 +cd agent && go build -o safesight-edge-agent ./cmd/safesight-agent && cd .. sudo ./scripts/deploy.sh upgrade ``` + +### 离线更新(生产内网) + +在开发机上编译并打包: + +```bash +# 在开发机(可访问 git 的机器)上执行 +cd ~/apps/safesight-edge +git pull +bash scripts/build.sh -m -j4 +cd agent && go build -o safesight-edge-agent ./cmd/safesight-agent && cd .. + +# 打包升级文件 +mkdir -p /tmp/safesight-upgrade +cp build/safesight-edge-server /tmp/safesight-upgrade/ +cp agent/safesight-edge-agent /tmp/safesight-upgrade/ +cp scripts/deploy.sh /tmp/safesight-upgrade/ +cp scripts/upgrade-from-old.sh /tmp/safesight-upgrade/ +cp -r scripts/deploy/ /tmp/safesight-upgrade/ +tar -czf safesight-upgrade-$(date +%Y%m%d).tar.gz -C /tmp safesight-upgrade +``` + +将 `safesight-upgrade-*.tar.gz` 通过 U 盘或 scp 传到生产设备,在生产设备上: + +```bash +tar -xzf safesight-upgrade-*.tar.gz -C /tmp/ +cd /tmp/safesight-upgrade +sudo ./deploy.sh upgrade # 已升级过的新设备 +# 或 +sudo ./upgrade-from-old.sh # 首次从旧版本升级 +``` diff --git a/scripts/package-offline.sh b/scripts/package-offline.sh new file mode 100644 index 0000000..b1dcf63 --- /dev/null +++ b/scripts/package-offline.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# 离线升级包构建脚本 +# 编译所有组件并打包,用于内网生产设备升级 +set -e + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +PACKAGE_NAME="safesight-upgrade-$(date +%Y%m%d-%H%M%S)" +BUILD_DIR="/tmp/$PACKAGE_NAME" + +echo "========== 构建离线升级包 ==========" +echo "" + +# 编译 +echo "[1/3] 编译 Edge Server..." +cd "$PROJECT_DIR" +bash scripts/build.sh -m -j4 + +echo "[2/3] 编译 Agent..." +cd "$PROJECT_DIR/agent" +go build -o safesight-edge-agent ./cmd/safesight-agent +cd "$PROJECT_DIR" + +# 打包 +echo "[3/3] 打包..." +mkdir -p "$BUILD_DIR" +cp build/safesight-edge-server "$BUILD_DIR/" +cp agent/safesight-edge-agent "$BUILD_DIR/" +cp scripts/deploy.sh "$BUILD_DIR/" +cp scripts/upgrade-from-old.sh "$BUILD_DIR/" +cp -r scripts/deploy/ "$BUILD_DIR/" + +# 创建说明文件 +cat > "$BUILD_DIR/README.txt" << 'EOF' +离线升级包使用说明 +================== + +新设备(已升级过): + sudo ./deploy.sh upgrade + +旧设备(首次从 rk3588-media-server 升级): + sudo ./upgrade-from-old.sh +EOF + +cd /tmp +tar -czf "$PROJECT_DIR/$PACKAGE_NAME.tar.gz" "$PACKAGE_NAME" +rm -rf "$BUILD_DIR" + +echo "" +echo "✓ 打包完成: $PROJECT_DIR/$PACKAGE_NAME.tar.gz" +ls -lh "$PROJECT_DIR/$PACKAGE_NAME.tar.gz"