From 3aa39512c0ff244b6e8f1e1bdae5f11a63491679 Mon Sep 17 00:00:00 2001 From: 10000ge10000 <10000ge10000@users.noreply.github.com> Date: Fri, 13 Mar 2026 00:20:08 +0800 Subject: [PATCH] =?UTF-8?q?release:=20v1.0.15=20=E2=80=94=20QQBot=20?= =?UTF-8?q?=E6=AD=BB=E9=94=81=E4=BF=AE=E5=A4=8D=E3=80=81=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E5=8C=85=E3=80=81musl=20=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-node-musl.yml | 20 +- .github/workflows/build.yml | 136 ++++-- .gitignore | 6 + CHANGELOG.md | 25 ++ README.md | 94 ++-- VERSION | 2 +- docs/images/1.png | Bin 0 -> 305443 bytes luasrc/controller/openclaw.lua | 96 ++++- luasrc/view/openclaw/status.htm | 15 +- root/usr/bin/openclaw-env | 134 +++++- root/usr/share/openclaw/oc-config.sh | 105 +++-- scripts/build-node-musl.sh | 8 +- scripts/build_offline_run.sh | 594 ++++++++++++++++++++++++++ scripts/build_run.sh | 2 +- scripts/download_deps.sh | 304 +++++++++++++ scripts/gen-release-body.sh | 48 +++ scripts/sync_openlist.sh | 230 ++++++++++ scripts/upload_openlist.sh | 221 ++++++++++ 18 files changed, 1870 insertions(+), 170 deletions(-) create mode 100644 docs/images/1.png create mode 100755 scripts/build_offline_run.sh create mode 100755 scripts/download_deps.sh create mode 100644 scripts/gen-release-body.sh create mode 100755 scripts/sync_openlist.sh create mode 100755 scripts/upload_openlist.sh diff --git a/.github/workflows/build-node-musl.yml b/.github/workflows/build-node-musl.yml index 8cedbaf..9b271b6 100644 --- a/.github/workflows/build-node-musl.yml +++ b/.github/workflows/build-node-musl.yml @@ -2,15 +2,10 @@ name: Build Node.js ARM64 musl on: workflow_dispatch: - inputs: - node_version: - description: 'Node.js 版本 (如 22.16.0)' - required: true - default: '22.16.0' jobs: build: - name: Build Node.js ${{ github.event.inputs.node_version }} ARM64 musl + name: Build Node.js ARM64 musl runs-on: ubuntu-latest permissions: contents: write @@ -19,6 +14,13 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Extract Node.js version from source + id: node_ver + run: | + NODE_VER=$(grep -oP 'NODE_VERSION="\$\{NODE_VERSION:-\K[0-9.]+' root/usr/bin/openclaw-env) + echo "version=${NODE_VER}" >> "$GITHUB_OUTPUT" + echo "Node.js version from openclaw-env: v${NODE_VER}" + - name: Set up QEMU uses: docker/setup-qemu-action@v3 with: @@ -26,7 +28,7 @@ jobs: - name: Build Node.js ARM64 musl portable run: | - NODE_VER="${{ github.event.inputs.node_version }}" + NODE_VER="${{ steps.node_ver.outputs.version }}" mkdir -p dist echo "=== Building Node.js v${NODE_VER} ARM64 musl portable tarball ===" docker run --rm --platform linux/arm64 \ @@ -64,7 +66,7 @@ jobs: Node.js 官方 [unofficial-builds](https://unofficial-builds.nodejs.org/) 仅提供 x64 musl 构建,不提供 ARM64 musl。 此 Release 使用 Alpine Linux ARM64 (musl libc) 环境打包。 - **注意**: 实际 Node.js 版本可能与文件名中的版本略有差异(取决于 Alpine 仓库提供的版本), - 但主版本号 (v22.x) 保证兼容。 + **注意**: 文件名中的版本号为 Alpine `apk add nodejs` 实际安装的版本, + 构建时自动从 `openclaw-env` 读取。 `openclaw-env setup` 会在 ARM64 musl 设备上自动从此处下载。 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9ab84f..0ff245a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,14 +4,24 @@ on: workflow_dispatch: inputs: version: - description: '版本号 (留空自动生成,格式: 1.0.0)' + description: '版本号 (留空则读取 VERSION 文件)' required: false default: '' + build_offline: + description: '是否构建离线安装包 (~130MB/架构)' + required: false + type: boolean + default: false create_release: description: '是否创建 Release' required: false type: boolean default: true + upload_openlist: + description: '是否上传到 OpenList 网盘' + required: false + type: boolean + default: false jobs: build: @@ -38,6 +48,17 @@ jobs: echo "tag=v$VER" >> "$GITHUB_OUTPUT" echo "Version: $VER" + - name: Extract build versions from source + id: build_versions + run: | + # 从 openclaw-env 中提取版本号 (唯一的版本真相源) + NODE_VER=$(grep -oP 'NODE_VERSION="\$\{NODE_VERSION:-\K[0-9.]+' root/usr/bin/openclaw-env) + OC_VER=$(grep -oP 'OC_TESTED_VERSION="\K[0-9.]+' root/usr/bin/openclaw-env) + echo "node_version=${NODE_VER}" >> "$GITHUB_OUTPUT" + echo "oc_version=${OC_VER}" >> "$GITHUB_OUTPUT" + echo "Node.js: v${NODE_VER}" + echo "OpenClaw: v${OC_VER}" + - name: Inject version run: | VER="${{ steps.version.outputs.version }}" @@ -45,7 +66,9 @@ jobs: # 同步到 Makefile sed -i "s/^PKG_VERSION:=.*/PKG_VERSION:=$VER/" Makefile - - name: Build .run installer + # ── 在线安装包 (始终构建) ── + + - name: Build .run installer (online) run: | chmod +x scripts/build_run.sh sh scripts/build_run.sh dist @@ -55,19 +78,50 @@ jobs: chmod +x scripts/build_ipk.sh sh scripts/build_ipk.sh dist + # ── 离线安装包 (可选) ── + + - name: Setup Node.js (for offline build) + if: github.event.inputs.build_offline == 'true' + uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Download offline dependencies + if: github.event.inputs.build_offline == 'true' + run: | + chmod +x scripts/download_deps.sh + sh scripts/download_deps.sh .offline-cache + env: + NODE_VERSION: ${{ steps.build_versions.outputs.node_version }} + OC_VERSION: ${{ steps.build_versions.outputs.oc_version }} + + - name: Build offline .run (musl only) + if: github.event.inputs.build_offline == 'true' + run: | + chmod +x scripts/build_offline_run.sh + sh scripts/build_offline_run.sh dist/ + env: + CACHE_DIR: .offline-cache + NODE_VERSION: ${{ steps.build_versions.outputs.node_version }} + + # ── 通用步骤 ── + - name: List outputs - run: ls -lh dist/ + run: | + echo "=== Build artifacts ===" + ls -lh dist/ + echo "" + echo "=== SHA256 checksums ===" + sha256sum dist/*.run dist/*.ipk 2>/dev/null || true - name: Extract changelog id: changelog run: | VER="${{ steps.version.outputs.version }}" - # 提取当前版本的 CHANGELOG 内容 (从 ## [version] 到下一个 ## [ 之间) CHANGELOG=$(awk "/^## \\[${VER}\\]/{found=1; next} /^## \\[/{if(found) exit} found{print}" CHANGELOG.md) if [ -z "$CHANGELOG" ]; then CHANGELOG="暂无更新日志" fi - # 写入多行输出 { echo "content< + OpenClaw LuCI 管理界面 + + **系统要求** | 项目 | 要求 | |------|------| | 架构 | x86_64 或 aarch64 (ARM64) | -| C 库 | glibc 或 musl(自动检测) | +| C 库 | musl(自动检测;离线包仅支持 musl) | | 依赖 | luci-compat, luci-base, curl, openssl-util | | 存储 | **1.5GB 以上可用空间** | | 内存 | 推荐 1GB 及以上 | -### 🖥️ 兼容性矩阵 - -#### 支持的架构 × C 库组合 - -| 架构 | C 库 | Node.js 来源 | 状态 | -|------|------|-------------|------| -| x86_64 | musl | [unofficial-builds.nodejs.org](https://unofficial-builds.nodejs.org/) | ✅ 已验证 | -| x86_64 | glibc | [nodejs.org](https://nodejs.org/) 官方 | ✅ 支持 | -| aarch64 | musl | 项目自托管(Alpine 打包,含完整依赖) | ✅ 已验证 | -| aarch64 | glibc | [nodejs.org](https://nodejs.org/) 官方 | ✅ 支持 | -| mips / mipsel | - | — | ❌ 不支持 | -| armv7l / armv6l | - | — | ❌ 不支持 | - -> **说明**:Node.js 22+ 仅提供 x86_64 和 aarch64 预编译包,不支持 MIPS(如 MT7620/MT7621 路由器)和 32 位 ARM(armv7l/armv6l)。大部分老旧路由器(MT76xx 系列)为 MIPS 架构,无法运行。 - -#### 支持的 OpenWrt 版本 - -| OpenWrt 版本 | LuCI 版本 | 验证状态 | 说明 | -|-------------|-----------|---------|------| -| 24.x (iStoreOS 24.10) | LuCI 24.x | ✅ 已验证 | 推荐版本 | -| 23.05 | LuCI openwrt-23.05 | ✅ 支持 | | -| 22.03 (iStoreOS 22.03) | LuCI openwrt-22.03 | ✅ 已验证 | 需自托管 Node.js(ARM64 musl) | -| 21.02 | LuCI openwrt-21.02 | ⚠️ 应兼容 | 未测试,procd / LuCI API 兼容 | -| 19.07 | LuCI openwrt-19.07 | ⚠️ 应兼容 | 未测试 | -| 18.06 及更早 | LuCI 旧版 | ❌ 不保证 | procd API 可能不兼容 | - -> 插件使用标准 procd init 和 LuCI CBI (luci-compat) 接口,理论上兼容 OpenWrt 19.07+。 - -#### 已验证的典型设备 - -| 设备 / 平台 | 架构 | 系统 | 验证结果 | -|------------|------|------|---------| -| N100 / N5105 软路由 | x86_64 musl | iStoreOS 24.10.5 | ✅ 通过 | -| 晶晨 S905 系列 (Cortex-A53) | aarch64 musl | iStoreOS 22.03.7 | ✅ 通过 | -| Raspberry Pi 4/5 | aarch64 | OpenWrt 23.05+ | ✅ 应支持 | -| FriendlyElec R4S/R5S | aarch64 | OpenWrt / FriendlyWrt | ✅ 应支持 | -| 通用 x86 虚拟机 (PVE/ESXi) | x86_64 | OpenWrt 22.03+ | ✅ 应支持 | -| MT7621 路由器 (如 Redmi AC2100) | mipsel | — | ❌ 不支持 (MIPS) | -| MT7620/MT7628 路由器 | mipsel | — | ❌ 不支持 (MIPS) | - -#### ARM64 musl 特别说明 - -ARM64 + musl 的 OpenWrt 设备(绝大多数 ARM64 路由器)使用**项目自托管的 Node.js 包**: - -- 基于 Alpine Linux 3.21 ARM64 环境打包 -- 包含完整的共享库(libstdc++、libssl、libicu 等)和 musl 动态链接器 -- 包含完整 ICU 国际化数据(`icudt74l.dat`) -- 通过 `patchelf` 将 ELF interpreter 和 rpath 指向打包的 musl 链接器,**不依赖系统库版本** -- 因此即使系统是 OpenWrt 22.03(musl 1.2.3)也能正常运行 Alpine 3.21 编译的 Node.js - ## 📦 安装 ### 方式一:.run 自解压包(推荐) @@ -135,6 +90,32 @@ sh /etc/uci-defaults/99-openclaw rm -f /tmp/luci-indexcache /tmp/luci-modulecache/* ``` +### 方式五:离线安装包(无需联网) + +适用于**无法联网**的路由器。安装包中已包含 Node.js + OpenClaw 运行环境,全程离线完成。 + +**下载离线包**(在联网的电脑上): + +前往 [Releases](https://github.com/10000ge10000/luci-app-openclaw/releases) 页面下载对应架构的 `_offline.run` 文件: + +| 架构 | 文件名 | +|------|--------| +| x86_64 | `luci-app-openclaw_*_x86_64-musl_offline.run` | +| aarch64 (ARM64) | `luci-app-openclaw_*_aarch64-musl_offline.run` | + +**传输到路由器并安装**: + +```bash +# 从电脑传输到路由器(替换为实际文件名和路由器 IP) +scp luci-app-openclaw_*_offline.run root@192.168.1.1:/tmp/ + +# SSH 登录路由器后执行安装 +sh /tmp/luci-app-openclaw_*_offline.run +``` + +> **提示**:离线包约 130MB,ARM 设备上安装需要 3-5 分钟(主要是解压时间)。 +> 安装完成后无需再运行 `openclaw-env setup`,直接进入 LuCI 配置即可。 + ## 🔰 首次使用 1. 打开 LuCI → 服务 → OpenClaw,点击「安装运行环境」 @@ -164,8 +145,15 @@ luci-app-openclaw/ │ └── share/openclaw/ # 配置终端资源 ├── scripts/ │ ├── build_ipk.sh # 本地 IPK 构建 -│ └── build_run.sh # .run 安装包构建 -└── .github/workflows/build.yml # GitHub Actions +│ ├── build_run.sh # .run 安装包构建 +│ ├── build_offline_run.sh # 离线 .run 安装包构建 +│ ├── download_deps.sh # 下载离线依赖 (Node.js + OpenClaw) +│ ├── upload_openlist.sh # 上传到网盘 (OpenList) +│ └── build-node-musl.sh # 编译 Node.js musl 静态链接版本 +└── .github/workflows/ + ├── build.yml # 在线构建 + 发布 + ├── build-offline.yml # 离线包构建 + 发布 + └── build-node-musl.yml # Node.js musl 构建 ``` ## 🤝 贡献 diff --git a/VERSION b/VERSION index 5b09c67..a970716 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.14 +1.0.15 diff --git a/docs/images/1.png b/docs/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..34b3972be5c59935ac6babbb77404e40c4bb0d59 GIT binary patch literal 305443 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ξ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%0D`&dEhL(3f7@qn4PevE-)ah*_yq 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/luasrc/controller/openclaw.lua b/luasrc/controller/openclaw.lua index ef32288..6b7acf5 100644 --- a/luasrc/controller/openclaw.lua +++ b/luasrc/controller/openclaw.lua @@ -81,6 +81,18 @@ function action_status() pvf:close() end + -- 安装方式检测 (离线 / 在线) + local olf = io.open("/usr/share/openclaw/.offline-install", "r") + if olf then + local content = olf:read("*a") + olf:close() + result.install_type = "offline" + result.install_date = content:match("date=([^\n]+)") or "" + result.install_arch = content:match("arch=([^\n]+)") or "" + else + result.install_type = "online" + end + -- 检查 Node.js local node_bin = "/opt/openclaw/node/bin/node" local f = io.open(node_bin, "r") @@ -682,31 +694,73 @@ function action_backup() http.write_json({ status = "error", message = "未找到备份文件,请先创建备份" }) return end - local config_path = "/opt/openclaw/data/.openclaw/openclaw.json" - -- 先备份当前配置 - sys.exec("cp -f " .. config_path .. " " .. config_path .. ".pre-restore 2>/dev/null") - -- 从 tar.gz 中提取 openclaw.json - local extract_cmd = "tar -xzf " .. restore_path .. " --wildcards '*/openclaw.json' -O > " .. config_path .. ".tmp 2>/dev/null" - sys.exec(extract_cmd) - -- 验证提取的文件是否有效 JSON - local check = sys.exec(node_bin .. " -e \"try{JSON.parse(require('fs').readFileSync('" .. config_path .. ".tmp','utf8'));console.log('OK')}catch(e){console.log('FAIL')}\" 2>/dev/null"):gsub("%s+", "") - if check == "OK" then - sys.exec("mv -f " .. config_path .. ".tmp " .. config_path) - sys.exec("chown openclaw:openclaw " .. config_path .. " 2>/dev/null") - -- 重启服务使配置生效 - sys.exec("/etc/init.d/openclaw restart >/dev/null 2>&1 &") + local oc_data_dir = "/opt/openclaw/data/.openclaw" + local config_path = oc_data_dir .. "/openclaw.json" + + -- 1) 先验证备份中的 openclaw.json 是否有效 + local check_cmd = "tar -xzf " .. restore_path .. " --wildcards '*/openclaw.json' -O 2>/dev/null" + local json_content = sys.exec(check_cmd) + if not json_content or json_content == "" then http.prepare_content("application/json") - http.write_json({ - status = "ok", - action = "restore", - message = "配置已从备份恢复,服务正在重启。原配置已保存为 openclaw.json.pre-restore", - backup_path = restore_path - }) - else - sys.exec("rm -f " .. config_path .. ".tmp") + http.write_json({ status = "error", message = "备份文件中未找到 openclaw.json" }) + return + end + -- 写入临时文件并用 node 验证 + local tmpfile = "/tmp/oc-restore-check.json" + local f = io.open(tmpfile, "w") + if f then f:write(json_content); f:close() end + local check = sys.exec(node_bin .. " -e \"try{JSON.parse(require('fs').readFileSync('" .. tmpfile .. "','utf8'));console.log('OK')}catch(e){console.log('FAIL')}\" 2>/dev/null"):gsub("%s+", "") + os.remove(tmpfile) + if check ~= "OK" then http.prepare_content("application/json") http.write_json({ status = "error", message = "备份文件中的配置无效,恢复已取消" }) + return end + + -- 2) 备份当前配置 + sys.exec("cp -f " .. config_path .. " " .. config_path .. ".pre-restore 2>/dev/null") + + -- 3) 获取备份名前缀 (如: 2026-03-11T18-21-17.209Z-openclaw-backup) + -- 备份结构: /payload/posix/<绝对路径> + local first_entry = sys.exec("tar -tzf " .. restore_path .. " 2>/dev/null | head -1"):gsub("%s+", "") + local backup_name = first_entry:match("^([^/]+)/") or "" + if backup_name == "" then + http.prepare_content("application/json") + http.write_json({ status = "error", message = "备份文件格式无法识别" }) + return + end + local payload_prefix = backup_name .. "/payload/posix/" + -- strip 3 层: / payload / posix + local strip_count = 3 + + -- 4) 停止服务 + sys.exec("/etc/init.d/openclaw stop >/dev/null 2>&1") + -- 等待端口释放 + sys.exec("sleep 2") + + -- 5) 提取 payload 文件到根目录 (还原到原始绝对路径) + -- 注: --wildcards 与 --strip-components 组合在某些 tar 版本不兼容 + -- 使用精确路径前缀代替 wildcards + local extract_cmd = string.format( + "tar -xzf %s --strip-components=%d -C / '%s' 2>&1", + restore_path, strip_count, payload_prefix + ) + local extract_out = sys.exec(extract_cmd) + + -- 6) 修复权限 + sys.exec("chown -R openclaw:openclaw " .. oc_data_dir .. " 2>/dev/null") + + -- 7) 重启服务 + sys.exec("/etc/init.d/openclaw start >/dev/null 2>&1 &") + + http.prepare_content("application/json") + http.write_json({ + status = "ok", + action = "restore", + message = "已从备份完整恢复所有配置和数据,服务正在重启。原配置已保存为 openclaw.json.pre-restore", + backup_path = restore_path, + extract_output = extract_out or "" + }) elseif action == "list" then -- 返回结构化的备份文件列表(含类型/大小/时间) local files_raw = sys.exec("ls -t " .. backup_dir .. "/*-openclaw-backup.tar.gz 2>/dev/null"):gsub("%s+$", "") diff --git a/luasrc/view/openclaw/status.htm b/luasrc/view/openclaw/status.htm index 96e5f9d..3132909 100644 --- a/luasrc/view/openclaw/status.htm +++ b/luasrc/view/openclaw/status.htm @@ -57,6 +57,8 @@ .oc-badge-starting { background: #fff8c5; color: #9a6700; } .oc-badge-disabled { background: #f0f0f0; color: #656d76; } .oc-badge-unknown { background: #fff8c5; color: #9a6700; } +.oc-badge-offline { background: #ddf4ff; color: #0969da; border: 1px solid #54aeff; } +.oc-badge-online { background: #f0f0f0; color: #656d76; } .oc-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: middle; } .oc-dot-green { background: #1a7f37; } .oc-dot-red { background: #cf222e; } @@ -64,7 +66,7 @@

@@ -148,6 +151,16 @@ document.getElementById('oc-st-oc-ver').textContent = d.oc_version ? ('v' + d.oc_version) : '未安装'; document.getElementById('oc-st-plugin').textContent = d.plugin_version ? ('v' + d.plugin_version) : '-'; + var itEl = document.getElementById('oc-st-install-type'); + if (d.install_type === 'offline') { + var tip = '📦 离线安装'; + if (d.install_arch) tip += ' (' + d.install_arch + ')'; + if (d.install_date) tip += '\n安装时间: ' + d.install_date; + itEl.innerHTML = '📦 离线版'; + } else { + itEl.innerHTML = '🌐 在线版'; + } + } catch(e) { document.getElementById('oc-st-status').innerHTML = '查询失败'; } diff --git a/root/usr/bin/openclaw-env b/root/usr/bin/openclaw-env index f18a17a..1d1574a 100755 --- a/root/usr/bin/openclaw-env +++ b/root/usr/bin/openclaw-env @@ -11,7 +11,7 @@ # ============================================================================ set -e -NODE_VERSION="${NODE_VERSION:-22.16.0}" +NODE_VERSION="${NODE_VERSION:-22.15.1}" # 经过验证的 OpenClaw 稳定版本 (更新此值需同步测试) OC_TESTED_VERSION="2026.3.8" # 用户可通过 OC_VERSION 环境变量覆盖安装版本 @@ -145,7 +145,7 @@ download_node() { return 0 fi # ARM64 musl 使用 Alpine 打包,版本号可能不完全匹配 - # 只要主版本号相同即认为兼容 (如 22.15.1 vs 22.16.0) + # 只要主版本号相同即认为兼容 (如 22.15.1 vs 22.15.0) local cur_major=$(echo "$current_ver" | cut -d. -f1) local want_major=$(echo "$node_ver" | cut -d. -f1) if [ "$cur_major" = "$want_major" ]; then @@ -418,7 +418,7 @@ do_setup() { fi echo "╔══════════════════════════════════════════════════════════════╗" - echo "║ 一万AI分享 OpenClaw 环境安装 ║" + echo "║ 一万AI分享 OpenClaw 环境安装 ║" echo "╚══════════════════════════════════════════════════════════════╝" echo "" echo " 架构: $(uname -m)" @@ -439,15 +439,15 @@ do_setup() { echo "" echo "╔══════════════════════════════════════════════════════════════╗" - echo "║ ✅ 安装完成! ║" - echo "║ ║" - echo "║ 下一步: ║" - echo "║ uci set openclaw.main.enabled=1 ║" - echo "║ uci commit openclaw ║" - echo "║ /etc/init.d/openclaw enable ║" - echo "║ /etc/init.d/openclaw start ║" - echo "║ ║" - echo "║ 或在 LuCI → 服务 → OpenClaw 中启用 ║" + echo "║ ✅ 安装完成! ║" + echo "║ ║" + echo "║ 下一步: ║" + echo "║ uci set openclaw.main.enabled=1 ║" + echo "║ uci commit openclaw ║" + echo "║ /etc/init.d/openclaw enable ║" + echo "║ /etc/init.d/openclaw start ║" + echo "║ ║" + echo "║ 或在 LuCI → 服务 → OpenClaw 中启用 ║" echo "╚══════════════════════════════════════════════════════════════╝" } @@ -498,7 +498,7 @@ do_check() { do_upgrade() { echo "╔══════════════════════════════════════════════════════════════╗" - echo "║ 一万AI分享 OpenClaw 升级 ║" + echo "║ 一万AI分享 OpenClaw 升级 ║" echo "╚══════════════════════════════════════════════════════════════╝" echo "" @@ -549,7 +549,7 @@ do_upgrade() { fi echo "" echo "╔══════════════════════════════════════════════════════════════╗" - echo "║ ✅ 升级完成! ║" + echo "║ ✅ 升级完成! ║" echo "╚══════════════════════════════════════════════════════════════╝" else log_error "升级验证失败,OpenClaw 入口文件未找到" @@ -623,11 +623,114 @@ do_factory_reset() { log_info "出厂设置已恢复,Gateway 重启中..." } +# ── 离线安装 (从本地文件安装 Node.js + OpenClaw) ── +do_setup_offline() { + local offline_dir="${2:-/tmp/openclaw-offline}" + + if [ ! -d "$offline_dir" ]; then + log_error "离线安装目录不存在: $offline_dir" + log_error "此命令通常由离线 .run 安装器自动调用" + exit 1 + fi + + # 检查是否已安装 + if [ -x "$NODE_BIN" ] && [ -n "$(find_oc_entry)" ]; then + log_warn "OpenClaw 运行环境已安装" + log_warn "如需重新离线安装,请先卸载现有环境" + exit 0 + fi + + echo "╔══════════════════════════════════════════════════════════════╗" + echo "║ 一万AI分享 OpenClaw 离线安装 ║" + echo "╚══════════════════════════════════════════════════════════════╝" + echo "" + echo " 架构: $(uname -m)" + echo " 安装路径: ${NODE_BASE}" + echo " 数据路径: ${OC_DATA}" + echo " 离线包: ${offline_dir}" + echo "" + + # [1] 安装 Node.js + local node_tarball="$offline_dir/node.tar.xz" + if [ -f "$node_tarball" ]; then + echo "=== 安装 Node.js (离线) ===" + rm -rf "$NODE_BASE" 2>/dev/null + [ -d /overlay/upper ] && rm -rf "/overlay/upper${NODE_BASE}" 2>/dev/null + ensure_mkdir "$NODE_BASE" + + if tar --strip-components=1 -xf "$node_tarball" -C "$NODE_BASE" 2>/dev/null; then + : # GNU tar + else + local tmp_extract="/tmp/node-extract-$$" + ensure_mkdir "$tmp_extract" + tar xf "$node_tarball" -C "$tmp_extract" + local top_dir=$(ls "$tmp_extract" 2>/dev/null | head -1) + if [ -n "$top_dir" ] && [ -d "$tmp_extract/$top_dir" ]; then + cp -a "$tmp_extract/$top_dir/." "$NODE_BASE/" + fi + rm -rf "$tmp_extract" + fi + + if [ -x "$NODE_BIN" ]; then + log_info "Node.js $($NODE_BIN --version 2>/dev/null) 安装成功" + else + log_error "Node.js 安装失败" + exit 1 + fi + else + log_error "未找到 Node.js 离线包: $node_tarball" + exit 1 + fi + + # [2] 安装 OpenClaw + local oc_tarball="$offline_dir/openclaw-deps.tar.gz" + if [ -f "$oc_tarball" ]; then + echo "" + echo "=== 安装 OpenClaw (离线) ===" + rm -rf "$OC_GLOBAL" 2>/dev/null + [ -d /overlay/upper ] && rm -rf "/overlay/upper${OC_GLOBAL}" 2>/dev/null + ensure_mkdir "$OC_GLOBAL" + + tar xzf "$oc_tarball" -C "$OC_GLOBAL" + + local oc_entry=$(find_oc_entry) + if [ -n "$oc_entry" ]; then + local oc_ver=$("$NODE_BIN" "$oc_entry" --version 2>/dev/null | tr -d '[:space:]') + log_info "OpenClaw v${oc_ver} 安装成功" + else + log_error "OpenClaw 安装验证失败" + exit 1 + fi + else + log_error "未找到 OpenClaw 离线包: $oc_tarball" + exit 1 + fi + + # [3] 初始化 + init_openclaw + + echo "" + echo "╔══════════════════════════════════════════════════════════════╗" + echo "║ ✅ 离线安装完成! ║" + echo "║ ║" + echo "║ 下一步: ║" + echo "║ uci set openclaw.main.enabled=1 ║" + echo "║ uci commit openclaw ║" + echo "║ /etc/init.d/openclaw enable ║" + echo "║ /etc/init.d/openclaw start ║" + echo "║ ║" + echo "║ 或在 LuCI → 服务 → OpenClaw 中启用 ║" + echo "╚══════════════════════════════════════════════════════════════╝" +} + # ── 主入口 ── case "${1:-}" in setup) do_setup ;; + setup-offline) + do_setup_offline "$@" + ;; check) do_check ;; @@ -641,9 +744,10 @@ case "${1:-}" in do_factory_reset ;; *) - echo "用法: openclaw-env {setup|check|upgrade|node|factory-reset}" + echo "用法: openclaw-env {setup|setup-offline|check|upgrade|node|factory-reset}" echo "" echo " setup — 完整安装 (下载 Node.js + pnpm + OpenClaw)" + echo " setup-offline — 离线安装 (从本地文件安装,由 .run 安装器调用)" echo " check — 检查环境状态" echo " upgrade — 升级 OpenClaw 到最新版" echo " node — 仅下载/更新 Node.js" diff --git a/root/usr/share/openclaw/oc-config.sh b/root/usr/share/openclaw/oc-config.sh index 44e8e76..cdfc19f 100755 --- a/root/usr/share/openclaw/oc-config.sh +++ b/root/usr/share/openclaw/oc-config.sh @@ -1195,13 +1195,33 @@ configure_qq() { echo -e " ${BOLD}🐧 QQ 机器人配置${NC}" echo "" - # 检查 qqbot 插件是否已安装 + # 检查 qqbot 插件是否已安装并正常加载 local plugin_installed=0 + local plugin_blocked=0 + local qqbot_ext_dir="${OC_STATE_DIR}/extensions/openclaw-qqbot" if [ -n "$OC_ENTRY" ] && [ -x "$NODE_BIN" ]; then - local plugin_check=$(oc_cmd plugins list 2>/dev/null | grep -i "qqbot" | grep -i "loaded\|disabled") - if [ -n "$plugin_check" ]; then + local plugin_list=$(oc_cmd plugins list 2>&1) + # 在表格输出中查找含 qqbot 的行是否也包含 loaded + if echo "$plugin_list" | grep -i "qqbot" | grep -qi "loaded"; then + plugin_installed=1 + echo -e " ${GREEN}✅ qqbot 插件已安装并加载${NC}" + elif echo "$plugin_list" | grep -qi "plugin not found.*openclaw-qqbot\|suspicious ownership"; then + # 插件目录存在但被阻止 (权限问题或 stale config) + if [ -d "$qqbot_ext_dir" ]; then + plugin_blocked=1 + echo -e " ${YELLOW}⚠️ qqbot 插件已安装但未能正常加载${NC}" + echo -e " ${CYAN}正在修复插件目录权限...${NC}" + chown -R root:root "$qqbot_ext_dir" 2>/dev/null + echo -e " ${GREEN}✅ 权限已修复,重启 Gateway 后生效${NC}" + plugin_installed=1 + fi + elif [ -d "$qqbot_ext_dir" ] && [ -f "${qqbot_ext_dir}/openclaw.plugin.json" ]; then + # 目录存在、有 plugin.json 但未出现在插件列表 — 修复权限 + echo -e " ${YELLOW}⚠️ qqbot 插件目录存在但未能加载${NC}" + echo -e " ${CYAN}正在修复插件目录权限...${NC}" + chown -R root:root "$qqbot_ext_dir" 2>/dev/null + echo -e " ${GREEN}✅ 权限已修复${NC}" plugin_installed=1 - echo -e " ${GREEN}✅ qqbot 插件已安装${NC}" fi fi @@ -1216,20 +1236,36 @@ configure_qq() { local install_out install_out=$(oc_cmd plugins install @tencent-connect/openclaw-qqbot@latest 2>&1) local install_rc=$? + + # 关键: 安装后立即修复插件目录权限为 root (OpenClaw 安全策略要求) + if [ -d "$qqbot_ext_dir" ]; then + chown -R root:root "$qqbot_ext_dir" 2>/dev/null + fi + if [ $install_rc -eq 0 ]; then echo -e " ${GREEN}✅ qqbot 插件安装成功${NC}" plugin_installed=1 else - echo -e " ${RED}❌ 插件安装失败 (exit: $install_rc)${NC}" - echo -e " ${DIM}${install_out}${NC}" | tail -5 + # 安装命令返回非零,可能是因为 config invalid (死锁) + # 检查插件目录是否实际已存在 (说明下载成功但校验报错) + if [ -d "$qqbot_ext_dir" ] && [ -f "${qqbot_ext_dir}/openclaw.plugin.json" ]; then + echo -e " ${YELLOW}⚠️ 插件已下载但加载校验未通过 (exit: $install_rc)${NC}" + echo -e " ${CYAN}这通常是因为配置中已有 qqbot 设置但插件未被信任。${NC}" + echo -e " ${CYAN}已自动修复权限,重启 Gateway 后应能正常加载。${NC}" + plugin_installed=1 + else + echo -e " ${RED}❌ 插件安装失败 (exit: $install_rc)${NC}" + echo -e " ${DIM}${install_out}${NC}" | tail -5 + echo "" + echo -e " ${YELLOW}插件安装失败,但你仍然可以先配置 QQ 机器人参数。${NC}" + echo -e " ${YELLOW}稍后可手动安装: openclaw plugins install @tencent-connect/openclaw-qqbot@latest${NC}" + fi echo "" - echo -e " ${YELLOW}请手动安装: openclaw plugins install @tencent-connect/openclaw-qqbot@latest${NC}" - return fi else - echo -e " ${YELLOW}已跳过插件安装。请先安装 qqbot 插件后再配置。${NC}" - echo -e " ${CYAN}安装命令: openclaw plugins install @tencent-connect/openclaw-qqbot@latest${NC}" - return + echo -e " ${YELLOW}已跳过插件安装,继续配置 QQ 机器人参数。${NC}" + echo -e " ${CYAN}稍后安装命令: openclaw plugins install @tencent-connect/openclaw-qqbot@latest${NC}" + echo "" fi fi @@ -1483,7 +1519,7 @@ telegram_pairing() { echo "" echo -e " ${GREEN}╔══════════════════════════════════════════════════╗${NC}" - echo -e " ${GREEN}║ 请在 Telegram 中向 Bot 发送 /start ║${NC}" + echo -e " ${GREEN}║ 请在 Telegram 中向 Bot 发送 /start ║${NC}" echo -e " ${GREEN}║ 然后回到这里按回车,脚本自动检测配对请求 ║${NC}" echo -e " ${GREEN}╚══════════════════════════════════════════════════╝${NC}" echo "" @@ -1999,26 +2035,39 @@ backup_restore_menu() { echo -e " ${CYAN}将从以下备份恢复:${NC}" echo -e " ${DIM}${latest}${NC}" echo "" - echo -e " ${YELLOW}⚠️ 这会覆盖当前的 openclaw.json 配置!${NC}" + echo -e " ${YELLOW}⚠️ 这会还原备份中的所有配置和数据文件到原路径!${NC}" prompt_with_default "确认恢复? (y/N)" "N" confirm_restore if [ "$confirm_restore" = "y" ] || [ "$confirm_restore" = "Y" ]; then - # 备份当前配置 - cp -f "$CONFIG_FILE" "${CONFIG_FILE}.pre-restore" 2>/dev/null - # 从 tar.gz 中提取 openclaw.json - local tmp_json="${CONFIG_FILE}.tmp" + # 验证备份中 openclaw.json 有效 + local tmp_json="/tmp/oc-restore-check.json" tar -xzf "$latest" --wildcards '*/openclaw.json' -O > "$tmp_json" 2>/dev/null - if [ -s "$tmp_json" ] && "$NODE_BIN" -e "JSON.parse(require('fs').readFileSync('${tmp_json}','utf8'))" 2>/dev/null; then - mv -f "$tmp_json" "$CONFIG_FILE" - chown openclaw:openclaw "$CONFIG_FILE" 2>/dev/null - echo -e " ${GREEN}✅ 配置已恢复!原配置已保存为 openclaw.json.pre-restore${NC}" - echo "" - prompt_with_default "是否重启服务使配置生效? (Y/n)" "Y" do_restart - if [ "$do_restart" != "n" ] && [ "$do_restart" != "N" ]; then - restart_gateway - fi - else + if [ ! -s "$tmp_json" ] || ! "$NODE_BIN" -e "JSON.parse(require('fs').readFileSync('${tmp_json}','utf8'))" 2>/dev/null; then rm -f "$tmp_json" echo -e " ${RED}❌ 备份中的配置文件无效,恢复已取消${NC}" + else + rm -f "$tmp_json" + # 备份当前配置 + cp -f "$CONFIG_FILE" "${CONFIG_FILE}.pre-restore" 2>/dev/null + # 获取备份名前缀 + local backup_name=$(tar -tzf "$latest" 2>/dev/null | head -1 | cut -d/ -f1) + if [ -z "$backup_name" ]; then + echo -e " ${RED}❌ 备份文件格式无法识别${NC}" + else + echo -e " ${DIM}正在还原文件...${NC}" + # 停止服务 + /etc/init.d/openclaw stop >/dev/null 2>&1 + sleep 2 + # 提取 payload 到根目录 (还原到原始绝对路径) + tar -xzf "$latest" --strip-components=3 -C / "${backup_name}/payload/posix/" 2>&1 + # 修复权限 + chown -R openclaw:openclaw /opt/openclaw/data/.openclaw 2>/dev/null + echo -e " ${GREEN}✅ 配置和数据已完整恢复!原配置已保存为 openclaw.json.pre-restore${NC}" + echo "" + prompt_with_default "是否重启服务使配置生效? (Y/n)" "Y" do_restart + if [ "$do_restart" != "n" ] && [ "$do_restart" != "N" ]; then + restart_gateway + fi + fi fi else echo -e " ${DIM}已取消${NC}" @@ -2034,7 +2083,7 @@ main_menu() { while true; do echo "" echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}" - echo -e "${GREEN}║${NC} ${BOLD}OpenClaw AI Gateway — OpenWrt 配置管理${NC} ${GREEN}║${NC}" + echo -e "${GREEN}║${NC} ${BOLD}OpenClaw AI Gateway — OpenWrt 配置管理${NC} ${GREEN}║${NC}" echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}" echo "" echo -e " ${CYAN}1)${NC} 📋 查看当前配置" diff --git a/scripts/build-node-musl.sh b/scripts/build-node-musl.sh index d3cd442..6fbea3c 100755 --- a/scripts/build-node-musl.sh +++ b/scripts/build-node-musl.sh @@ -16,8 +16,12 @@ apk add --no-cache nodejs npm xz icu-data-full patchelf ACTUAL_VER=$(node --version | sed 's/^v//') echo "Alpine Node.js version: v${ACTUAL_VER} (requested: v${NODE_VER})" -# 打包为 portable tarball (与官方 tarball 相同结构) -PKG_NAME="node-v${NODE_VER}-linux-arm64-musl" +# 使用实际版本号作为文件名 (Alpine apk 的 nodejs 版本可能与请求版本不同) +if [ "$ACTUAL_VER" != "$NODE_VER" ]; then + echo "WARNING: Actual version (${ACTUAL_VER}) differs from requested (${NODE_VER})" + echo " Using actual version for package name" +fi +PKG_NAME="node-v${ACTUAL_VER}-linux-arm64-musl" PKG_DIR="/tmp/${PKG_NAME}" mkdir -p "${PKG_DIR}/bin" "${PKG_DIR}/lib/node_modules" "${PKG_DIR}/include/node" diff --git a/scripts/build_offline_run.sh b/scripts/build_offline_run.sh new file mode 100755 index 0000000..058291d --- /dev/null +++ b/scripts/build_offline_run.sh @@ -0,0 +1,594 @@ +#!/bin/sh +# ============================================================================ +# OpenClaw 离线 .run 自解压包构建脚本 +# 构建包含所有离线依赖的全架构 .run 安装包 +# +# 用法: +# sh scripts/build_offline_run.sh [output_dir] +# +# 前置条件: +# 先运行 sh scripts/download_deps.sh 下载离线依赖到 .offline-cache/ +# +# 产出: +# dist/luci-app-openclaw__x86_64-musl_offline.run +# dist/luci-app-openclaw__aarch64-musl_offline.run +# ============================================================================ +set -e + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +PKG_DIR=$(cd "$SCRIPT_DIR/.." && pwd) +OUT_DIR="${1:-$PKG_DIR/dist}" +CACHE_DIR="${CACHE_DIR:-$PKG_DIR/.offline-cache}" + +case "$OUT_DIR" in + /*) ;; + *) OUT_DIR="$PKG_DIR/$OUT_DIR" ;; +esac +case "$CACHE_DIR" in + /*) ;; + *) CACHE_DIR="$PKG_DIR/$CACHE_DIR" ;; +esac + +PKG_NAME="luci-app-openclaw" +PKG_VERSION=$(cat "$PKG_DIR/VERSION" 2>/dev/null | tr -d '[:space:]' || echo "1.0.0") +NODE_VERSION="${NODE_VERSION:-22.15.1}" +OC_VERSION=$(cat "$CACHE_DIR/openclaw/VERSION" 2>/dev/null | tr -d '[:space:]' || echo "2026.3.8") + +echo "╔══════════════════════════════════════════════════════════════╗" +echo "║ 构建 OpenClaw 离线 .run 安装包 ║" +echo "╚══════════════════════════════════════════════════════════════╝" +echo "" +echo " 插件版本: v${PKG_VERSION}" +echo " Node.js: v${NODE_VERSION}" +echo " OpenClaw: v${OC_VERSION}" +echo " 缓存目录: ${CACHE_DIR}" +echo " 输出目录: ${OUT_DIR}" +echo "" + +# 检查缓存目录 +if [ ! -d "$CACHE_DIR/node" ] || [ ! -d "$CACHE_DIR/openclaw" ]; then + echo "错误: 离线缓存不存在,请先运行:" + echo " sh scripts/download_deps.sh" + exit 1 +fi + +mkdir -p "$OUT_DIR" + +# ── 安装 LuCI 插件文件到暂存区 ── +install_luci_files() { + local dest="$1" + + mkdir -p "$dest/etc/config" + cp "$PKG_DIR/root/etc/config/openclaw" "$dest/etc/config/openclaw.default" + + mkdir -p "$dest/etc/uci-defaults" + cp "$PKG_DIR/root/etc/uci-defaults/99-openclaw" "$dest/etc/uci-defaults/" + chmod +x "$dest/etc/uci-defaults/99-openclaw" + + mkdir -p "$dest/etc/init.d" + cp "$PKG_DIR/root/etc/init.d/openclaw" "$dest/etc/init.d/" + chmod +x "$dest/etc/init.d/openclaw" + + mkdir -p "$dest/usr/bin" + cp "$PKG_DIR/root/usr/bin/openclaw-env" "$dest/usr/bin/" + chmod +x "$dest/usr/bin/openclaw-env" + + mkdir -p "$dest/usr/lib/lua/luci/controller" + cp "$PKG_DIR/luasrc/controller/openclaw.lua" "$dest/usr/lib/lua/luci/controller/" + + mkdir -p "$dest/usr/lib/lua/luci/model/cbi/openclaw" + cp "$PKG_DIR/luasrc/model/cbi/openclaw/"*.lua "$dest/usr/lib/lua/luci/model/cbi/openclaw/" + + mkdir -p "$dest/usr/lib/lua/luci/view/openclaw" + cp "$PKG_DIR/luasrc/view/openclaw/"*.htm "$dest/usr/lib/lua/luci/view/openclaw/" + + mkdir -p "$dest/usr/share/openclaw" + cp "$PKG_DIR/VERSION" "$dest/usr/share/openclaw/VERSION" + cp "$PKG_DIR/root/usr/share/openclaw/oc-config.sh" "$dest/usr/share/openclaw/" + chmod +x "$dest/usr/share/openclaw/oc-config.sh" + cp "$PKG_DIR/root/usr/share/openclaw/web-pty.js" "$dest/usr/share/openclaw/" + cp -r "$PKG_DIR/root/usr/share/openclaw/ui" "$dest/usr/share/openclaw/" + + # i18n + mkdir -p "$dest/usr/lib/lua/luci/i18n" + if command -v po2lmo >/dev/null 2>&1 && [ -f "$PKG_DIR/po/zh-cn/openclaw.po" ]; then + po2lmo "$PKG_DIR/po/zh-cn/openclaw.po" "$dest/usr/lib/lua/luci/i18n/openclaw.zh-cn.lmo" 2>/dev/null || true + fi +} + +# ── 创建离线安装器脚本 ── +create_offline_installer() { + local target_arch="$1" # 如 x86_64 + local target_libc="$2" # 如 musl + local staging="$3" + + cat > "$staging/install.sh" << 'INSTALLER_HEADER' +#!/bin/sh +# ============================================================================ +# luci-app-openclaw 离线安装器 +# 包含所有依赖,无需联网即可完成完整安装 +# ============================================================================ +set -e + +echo "╔══════════════════════════════════════════════════════════════╗" +echo "║ luci-app-openclaw — OpenClaw AI Gateway 离线安装器 ║" +echo "║ 包含 Node.js + OpenClaw 运行环境,无需联网 ║" +echo "╚══════════════════════════════════════════════════════════════╝" +echo "" + +# ── 基本检查 ── +if [ ! -f /etc/openwrt_release ]; then + echo "错误: 此安装包仅适用于 OpenWrt/iStoreOS 系统" + exit 1 +fi + +ARCH=$(uname -m) +TARGET_ARCH="__TARGET_ARCH__" +TARGET_LIBC="__TARGET_LIBC__" + +# 架构检查 +case "$ARCH" in + x86_64|aarch64) ;; + *) echo "错误: 不支持的架构 $ARCH (仅支持 x86_64/aarch64)"; exit 1 ;; +esac + +if [ "$ARCH" != "$TARGET_ARCH" ]; then + echo "错误: 架构不匹配!" + echo " 当前设备: $ARCH" + echo " 安装包: ${TARGET_ARCH}-${TARGET_LIBC}" + echo "" + echo "请下载对应架构的安装包。" + exit 1 +fi + +# libc 检查 +detect_libc() { + if ldd --version 2>&1 | grep -qi musl; then + echo "musl" + elif [ -f /lib/ld-musl-*.so.1 ] 2>/dev/null; then + echo "musl" + elif [ -f /etc/openwrt_release ] || grep -qi "openwrt\|istoreos\|lede" /etc/os-release 2>/dev/null; then + echo "musl" + else + echo "glibc" + fi +} + +SYS_LIBC=$(detect_libc) +if [ "$SYS_LIBC" != "$TARGET_LIBC" ]; then + echo "警告: C 库类型不匹配 (系统: $SYS_LIBC, 安装包: $TARGET_LIBC)" + echo " 如果安装后 Node.js 无法运行,请下载对应 libc 类型的安装包。" + echo "" + printf "是否继续?[y/N] " + read -r answer + case "$answer" in + y|Y|yes|YES) ;; + *) echo "已取消"; exit 0 ;; + esac +fi + +# ── 磁盘空间预检查 ── +echo "检查磁盘空间..." +# 预估解压后大小: Node.js ~100-200MB + OpenClaw ~200-400MB + 插件 ~1MB +NEED_MB=500 +# 检查 /opt 所在分区 (OverlayFS 下可能是 /overlay) +AVAIL_KB=0 +for mount_point in /opt /overlay /; do + if df "$mount_point" >/dev/null 2>&1; then + AVAIL_KB=$(df "$mount_point" 2>/dev/null | tail -1 | awk '{print $4}') + break + fi +done +AVAIL_MB=$((AVAIL_KB / 1024)) +if [ "$AVAIL_MB" -lt "$NEED_MB" ] 2>/dev/null; then + echo "警告: 可用空间不足!" + echo " 需要: 至少 ${NEED_MB}MB" + echo " 当前: ${AVAIL_MB}MB 可用" + echo "" + printf "是否继续?[y/N] " + read -r answer + case "$answer" in + y|Y|yes|YES) ;; + *) echo "已取消"; exit 0 ;; + esac +fi + +# ── OverlayFS 修复 ── +_oc_fix_opt() { + mkdir -p /opt/openclaw/.probe 2>/dev/null && { rmdir /opt/openclaw/.probe 2>/dev/null; return 0; } + if [ -d /overlay/upper/opt ]; then + mkdir -p /overlay/upper/opt/openclaw 2>/dev/null + mount --bind /overlay/upper/opt /opt 2>/dev/null && return 0 + fi + return 1 +} +_oc_fix_opt || true + +NODE_BASE="/opt/openclaw/node" +OC_GLOBAL="/opt/openclaw/global" +OC_DATA="/opt/openclaw/data" + +ensure_mkdir() { + local target="$1" + [ -d "$target" ] && return 0 + if ! mkdir -p "$target" 2>/dev/null; then + echo " [✗] 无法创建目录: $target" + return 1 + fi +} + +# ── 解压安装 ── + +# 先停止已有服务 (避免文件被占用导致覆盖安装失败) +if [ -x /etc/init.d/openclaw ]; then + echo "停止已有服务..." + /etc/init.d/openclaw stop 2>/dev/null || true + # 等待进程退出和端口释放 + sleep 2 + # 确保 gateway 子进程也已退出 + for pid in $(pgrep -f "openclaw-gateway|openclaw" 2>/dev/null); do + kill "$pid" 2>/dev/null + done + sleep 1 +fi + +echo "" +echo "正在提取安装文件..." + +# 解压 payload (从 MARKER 行之后) +ARCHIVE=$(awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' "$0") +EXTRACT_DIR=$(mktemp -d) +trap "rm -rf '$EXTRACT_DIR'" EXIT + +tail -n +$ARCHIVE "$0" | tar xzf - -C "$EXTRACT_DIR" 2>/dev/null + +# ── [Step 1/5] 安装 LuCI 插件文件 ── +echo "" +echo "[1/5] 安装 LuCI 插件..." + +# 复制插件文件到系统 (从 luci-files/ 子目录) +if [ -d "$EXTRACT_DIR/luci-files" ]; then + cp -a "$EXTRACT_DIR/luci-files/." / 2>/dev/null +fi + +# UCI 配置文件保护 +if [ -f /etc/config/openclaw ] && [ -f /etc/config/openclaw.default ]; then + rm -f /etc/config/openclaw.default +elif [ -f /etc/config/openclaw.default ]; then + mv /etc/config/openclaw.default /etc/config/openclaw +fi + +echo " [✓] LuCI 插件已安装" + +# ── [Step 2/5] 安装 Node.js ── +echo "" +echo "[2/5] 安装 Node.js..." + +NODE_TARBALL="$EXTRACT_DIR/node.tar.xz" +if [ -f "$NODE_TARBALL" ]; then + # 清理旧安装 + rm -rf "$NODE_BASE" 2>/dev/null + [ -d /overlay/upper ] && rm -rf "/overlay/upper${NODE_BASE}" 2>/dev/null + ensure_mkdir "$NODE_BASE" + + # 解压 Node.js (兼容 BusyBox tar) + if tar --strip-components=1 -xf "$NODE_TARBALL" -C "$NODE_BASE" 2>/dev/null; then + : # GNU tar + else + # BusyBox tar 回退 + local tmp_node="/tmp/node-extract-$$" + ensure_mkdir "$tmp_node" + tar xf "$NODE_TARBALL" -C "$tmp_node" + local top_dir=$(ls "$tmp_node" 2>/dev/null | head -1) + if [ -n "$top_dir" ] && [ -d "$tmp_node/$top_dir" ]; then + cp -a "$tmp_node/$top_dir/." "$NODE_BASE/" + fi + rm -rf "$tmp_node" + fi + + if [ -x "$NODE_BASE/bin/node" ]; then + echo " [✓] Node.js $($NODE_BASE/bin/node --version 2>/dev/null) 已安装" + else + echo " [✗] Node.js 安装失败" + exit 1 + fi +else + echo " [✗] 安装包中未找到 Node.js" + exit 1 +fi + +# ── [Step 3/5] 安装 OpenClaw ── +echo "" +echo "[3/5] 安装 OpenClaw..." + +OC_DEPS_TARBALL="$EXTRACT_DIR/openclaw-deps.tar.gz" +if [ -f "$OC_DEPS_TARBALL" ]; then + rm -rf "$OC_GLOBAL" 2>/dev/null + [ -d /overlay/upper ] && rm -rf "/overlay/upper${OC_GLOBAL}" 2>/dev/null + ensure_mkdir "$OC_GLOBAL" + + tar xzf "$OC_DEPS_TARBALL" -C "$OC_GLOBAL" + + # 验证 openclaw 入口 + OC_ENTRY="" + for d in "$OC_GLOBAL/lib/node_modules/openclaw" "$OC_GLOBAL/node_modules/openclaw"; do + if [ -f "${d}/openclaw.mjs" ]; then + OC_ENTRY="${d}/openclaw.mjs" + break + elif [ -f "${d}/dist/cli.js" ]; then + OC_ENTRY="${d}/dist/cli.js" + break + fi + done + + if [ -n "$OC_ENTRY" ]; then + OC_VER=$("$NODE_BASE/bin/node" "$OC_ENTRY" --version 2>/dev/null | tr -d '[:space:]' || echo "unknown") + echo " [✓] OpenClaw v${OC_VER} 已安装" + else + echo " [✗] OpenClaw 安装验证失败" + exit 1 + fi +else + echo " [✗] 安装包中未找到 OpenClaw 依赖" + exit 1 +fi + +# ── [Step 4/5] 初始化 OpenClaw ── +echo "" +echo "[4/5] 初始化 OpenClaw..." + +ensure_mkdir "$OC_DATA/.openclaw" + +# 创建 openclaw 系统用户 (如果不存在) +if ! id openclaw >/dev/null 2>&1; then + # OpenWrt 使用 BusyBox adduser + if command -v adduser >/dev/null 2>&1; then + adduser -D -H -s /bin/false -h "$OC_DATA" openclaw 2>/dev/null || true + fi +fi + +# 运行 onboard +if [ -n "$OC_ENTRY" ] && [ -x "$NODE_BASE/bin/node" ]; then + HOME="$OC_DATA" \ + OPENCLAW_HOME="$OC_DATA" \ + OPENCLAW_STATE_DIR="${OC_DATA}/.openclaw" \ + OPENCLAW_CONFIG_PATH="${OC_DATA}/.openclaw/openclaw.json" \ + "$NODE_BASE/bin/node" "$OC_ENTRY" onboard --non-interactive --accept-risk --tools-profile coding 2>/dev/null || true +fi + +# 设置权限 +chown -R openclaw:openclaw "$OC_DATA" 2>/dev/null || true +chown -R openclaw:openclaw "$OC_GLOBAL" 2>/dev/null || true +chown -R openclaw:openclaw "$NODE_BASE" 2>/dev/null || true + +echo " [✓] 初始化完成" + +# ── [Step 5/5] 注册 opkg + 启动服务 ── +echo "" +echo "[5/5] 注册到系统..." + +# 注册到 opkg +PKG="luci-app-openclaw" +PKG_VER="__PKG_VERSION__" +INFO_DIR="/usr/lib/opkg/info" +STATUS_FILE="/usr/lib/opkg/status" +INSTALL_TIME=$(date +%s) + +mkdir -p "$INFO_DIR" + +cat > "$INFO_DIR/$PKG.control" << CTLEOF +Package: $PKG +Version: $PKG_VER +Depends: luci-compat, luci-base +Section: luci +Architecture: all +Installed-Size: 0 +Description: OpenClaw AI Gateway — LuCI 界面 (离线安装) +CTLEOF + +cat > "$INFO_DIR/$PKG.list" << LISTEOF +__FILE_LIST__ +LISTEOF + +cat > "$INFO_DIR/$PKG.prerm" << 'RMEOF' +#!/bin/sh +/etc/init.d/openclaw stop 2>/dev/null +/etc/init.d/openclaw disable 2>/dev/null +exit 0 +RMEOF +chmod +x "$INFO_DIR/$PKG.prerm" + +# 更新 opkg status +if [ -f "$STATUS_FILE" ]; then + awk -v pkg="$PKG" ' + BEGIN { skip=0 } + /^Package:/ { skip=($2==pkg) } + /^$/ { if(skip){skip=0; next} } + !skip { print } + ' "$STATUS_FILE" > "${STATUS_FILE}.tmp" + mv "${STATUS_FILE}.tmp" "$STATUS_FILE" +fi + +cat >> "$STATUS_FILE" << STEOF + +Package: $PKG +Version: $PKG_VER +Depends: luci-compat, luci-base +Status: install user installed +Architecture: all +Conffiles: + /etc/config/openclaw 0 +Installed-Time: $INSTALL_TIME +STEOF + +echo " [✓] 已注册到 opkg" + +# 写入离线安装标记 (供 LuCI 界面识别安装方式) +cat > /usr/share/openclaw/.offline-install << OFFEOF +type=offline +date=$(date '+%Y-%m-%d %H:%M:%S' 2>/dev/null || date) +arch=${TARGET_ARCH}-${TARGET_LIBC} +node=$($NODE_BASE/bin/node --version 2>/dev/null || echo unknown) +openclaw=${OC_VER:-unknown} +plugin=__PKG_VERSION__ +OFFEOF +echo " [✓] 离线安装标记已写入" + +# 执行 uci-defaults +if [ -f /etc/uci-defaults/99-openclaw ]; then + ( . /etc/uci-defaults/99-openclaw ) && rm -f /etc/uci-defaults/99-openclaw +fi + +# 清除 LuCI 缓存 +rm -f /tmp/luci-indexcache /tmp/luci-modulecache/* 2>/dev/null +rm -f /tmp/luci-indexcache.*.json 2>/dev/null + +# 启用并启动服务 +/etc/init.d/openclaw enable 2>/dev/null || true +uci set openclaw.main.enabled=1 2>/dev/null || true +uci commit openclaw 2>/dev/null || true + +# 清理 +rm -rf "$EXTRACT_DIR" +trap - EXIT + +echo "" +echo "╔══════════════════════════════════════════════════════════════╗" +echo "║ ✅ 离线安装完成! ║" +echo "║ ║" +echo "║ Node.js + OpenClaw + LuCI 插件已全部安装 ║" +echo "║ 无需再运行 openclaw-env setup ║" +echo "║ ║" +echo "║ 下一步: ║" +echo "║ 访问 LuCI → 服务 → OpenClaw 进行配置 ║" +echo "║ 或执行: /etc/init.d/openclaw start ║" +echo "║ ║" +echo "║ 配置模型 API 密钥后即可使用,全程无需联网! ║" +echo "╚══════════════════════════════════════════════════════════════╝" +echo "" + +exit 0 +__ARCHIVE_BELOW__ +INSTALLER_HEADER +} + +# ============================================================================ +# 为每种架构构建 .run +# ============================================================================ +build_one_variant() { + local label="$1" # 如 x86_64-musl + local uname_arch="$2" # 如 x86_64 + local node_suffix="$3" # 如 linux-x64-musl + local libc="$4" # 如 musl + + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo " 构建: ${label}" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + + local node_tarball="$CACHE_DIR/node/node-v${NODE_VERSION}-${node_suffix}.tar.xz" + if [ ! -f "$node_tarball" ]; then + echo " [!] 跳过: 未找到 Node.js 包 $(basename "$node_tarball")" + return 1 + fi + + # 查找 OpenClaw 依赖包 + local oc_deps="" + for f in "$CACHE_DIR/openclaw/openclaw-deps-"*.tar.gz; do + [ -f "$f" ] && oc_deps="$f" && break + done + if [ -z "$oc_deps" ]; then + echo " [!] 跳过: 未找到 OpenClaw 依赖包" + return 1 + fi + + # 创建临时暂存区 + local staging=$(mktemp -d) + + # [1] 准备 payload 结构 + local payload="$staging/payload" + mkdir -p "$payload/luci-files" + + echo " [1/5] 安装 LuCI 插件文件..." + install_luci_files "$payload/luci-files" + + echo " [2/5] 复制 Node.js 包..." + cp "$node_tarball" "$payload/node.tar.xz" + + echo " [3/5] 复制 OpenClaw 依赖包..." + cp "$oc_deps" "$payload/openclaw-deps.tar.gz" + + # [2] 生成文件列表 + echo " [4/5] 生成安装器..." + local file_list=$(cd "$payload/luci-files" && find . -type f | sed 's|^\./|/|' | sed 's|/etc/config/openclaw.default|/etc/config/openclaw|' | sort) + + # 创建安装器 + create_offline_installer "$uname_arch" "$libc" "$staging" + + # 替换占位符 + sed -i "s|__TARGET_ARCH__|${uname_arch}|g" "$staging/install.sh" + sed -i "s|__TARGET_LIBC__|${libc}|g" "$staging/install.sh" + sed -i "s|__PKG_VERSION__|${PKG_VERSION}|g" "$staging/install.sh" + + # 替换文件列表 + { + sed '/__FILE_LIST__/,$d' "$staging/install.sh" + echo "$file_list" + sed '1,/__FILE_LIST__/d' "$staging/install.sh" + } > "$staging/install_final.sh" + mv "$staging/install_final.sh" "$staging/install.sh" + + # [3] 打包 payload (gzip 压缩, 减小 .run 文件体积) + echo " [5/5] 打包..." + (cd "$payload" && tar czf "$staging/payload.tar.gz" .) + + # [4] 组合: installer + payload + local run_file="$OUT_DIR/${PKG_NAME}_${PKG_VERSION}_${label}_offline.run" + cat "$staging/install.sh" "$staging/payload.tar.gz" > "$run_file" + chmod +x "$run_file" + + local file_size=$(wc -c < "$run_file" | tr -d ' ') + local file_size_mb=$((file_size / 1024 / 1024)) + + echo " [✓] ${run_file}" + echo " 大小: ${file_size_mb}MB (${file_size} bytes)" + + # 生成 SHA256 + sha256sum "$run_file" > "${run_file}.sha256" 2>/dev/null || true + + rm -rf "$staging" + return 0 +} + +# ── 主构建流程 ── +SUCCESS=0 +FAILED=0 + +# 使用 for 循环避免 BusyBox ash 的 IFS/read 管道问题 +for variant in \ + "x86_64-musl:x86_64:linux-x64-musl:musl" \ + "aarch64-musl:aarch64:linux-arm64-musl:musl" \ +; do + label=$(echo "$variant" | cut -d: -f1) + uname_arch=$(echo "$variant" | cut -d: -f2) + node_suffix=$(echo "$variant" | cut -d: -f3) + libc=$(echo "$variant" | cut -d: -f4) + + if build_one_variant "$label" "$uname_arch" "$node_suffix" "$libc"; then + SUCCESS=$((SUCCESS + 1)) + else + FAILED=$((FAILED + 1)) + fi +done + +echo "" +echo "╔══════════════════════════════════════════════════════════════╗" +echo "║ 构建完成 ║" +echo "╚══════════════════════════════════════════════════════════════╝" +echo "" +echo "输出目录: $OUT_DIR" +echo "" +ls -lh "$OUT_DIR/"*_offline.run 2>/dev/null || echo "(无输出文件)" +echo "" +echo "安装方法: 将 .run 文件传输到路由器后执行:" +echo " sh luci-app-openclaw_*_offline.run" diff --git a/scripts/build_run.sh b/scripts/build_run.sh index 3af5768..a5b35dc 100755 --- a/scripts/build_run.sh +++ b/scripts/build_run.sh @@ -80,7 +80,7 @@ create_installer() { set -e echo "╔══════════════════════════════════════════════════════════════╗" -echo "║ luci-app-openclaw — OpenClaw AI Gateway 插件 ║" +echo "║ luci-app-openclaw — OpenClaw AI Gateway 插件 ║" echo "╚══════════════════════════════════════════════════════════════╝" echo "" diff --git a/scripts/download_deps.sh b/scripts/download_deps.sh new file mode 100755 index 0000000..8b0b766 --- /dev/null +++ b/scripts/download_deps.sh @@ -0,0 +1,304 @@ +#!/bin/sh +# ============================================================================ +# 离线依赖预下载脚本 (在有网络的构建机上运行) +# 为所有支持的架构下载 Node.js + OpenClaw + pnpm +# +# 用法: +# sh scripts/download_deps.sh [cache_dir] +# +# 产出目录结构: +# cache_dir/ +# node/ +# node-v22.15.1-linux-x64-musl.tar.xz +# node-v22.15.1-linux-arm64-musl.tar.xz +# openclaw/ +# openclaw-deps-v.tar.gz (完整 node_modules, 跨架构通用, ~150MB) +# ============================================================================ +set -e + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +PKG_DIR=$(cd "$SCRIPT_DIR/.." && pwd) +CACHE_DIR="${1:-$PKG_DIR/.offline-cache}" + +# 确保 CACHE_DIR 是绝对路径 +case "$CACHE_DIR" in + /*) ;; + *) CACHE_DIR="$PKG_DIR/$CACHE_DIR" ;; +esac + +# ── 版本配置 (与 openclaw-env 保持一致) ── +NODE_VERSION="${NODE_VERSION:-22.15.1}" +OC_VERSION="${OC_VERSION:-2026.3.8}" + +# ── 下载镜像 ── +NODE_MIRROR="${NODE_MIRROR:-https://nodejs.org/dist}" +NODE_MIRROR_CN="https://npmmirror.com/mirrors/node" +NODE_MUSL_MIRROR="https://unofficial-builds.nodejs.org/download/release" +NODE_SELF_HOST="https://github.com/10000ge10000/luci-app-openclaw/releases/download/node-bins" +NPM_REGISTRY="${NPM_REGISTRY:-https://registry.npmjs.org}" + +log_info() { echo " [✓] $1"; } +log_warn() { echo " [!] $1"; } +log_error() { echo " [✗] $1"; } + +# 自动检测 Node.js / npm (兼容 OpenWrt 上已安装的 openclaw 环境) +if ! command -v node >/dev/null 2>&1; then + for try_path in /opt/openclaw/node/bin /usr/local/bin; do + if [ -x "$try_path/node" ]; then + export PATH="$try_path:$PATH" + log_info "检测到 Node.js: $try_path/node" + break + fi + done +fi + +# 下载文件 (支持 curl 和 wget) +download_file() { + local url="$1" dest="$2" + if [ -f "$dest" ]; then + local fsize=$(wc -c < "$dest" 2>/dev/null || echo 0) + if [ "$fsize" -gt 1000000 ] 2>/dev/null; then + log_info "已缓存: $(basename "$dest") ($(du -h "$dest" | cut -f1))" + return 0 + fi + fi + echo " 下载: $url" + if curl -fSL --connect-timeout 30 --max-time 600 -o "$dest" "$url" 2>/dev/null; then + return 0 + elif wget -q --timeout=30 -O "$dest" "$url" 2>/dev/null; then + return 0 + fi + rm -f "$dest" + return 1 +} + +# ============================================================================ +# Phase 1: 下载 Node.js (全架构) +# ============================================================================ +download_all_node() { + echo "" + echo "╔══════════════════════════════════════════════════════════════╗" + printf "║ [1/3] 下载 Node.js v%-8s (musl 架构) ║\n" "$NODE_VERSION" + echo "╚══════════════════════════════════════════════════════════════╝" + echo "" + + local node_dir="$CACHE_DIR/node" + mkdir -p "$node_dir" + + # x86_64 musl + echo "=== x86_64 musl ===" + local x64_musl="node-v${NODE_VERSION}-linux-x64-musl.tar.xz" + download_file "${NODE_MUSL_MIRROR}/v${NODE_VERSION}/${x64_musl}" "$node_dir/$x64_musl" || \ + download_file "${NODE_MIRROR_CN}/v${NODE_VERSION}/${x64_musl}" "$node_dir/$x64_musl" || \ + log_error "x86_64 musl 下载失败" + + # aarch64 musl (项目自托管) + echo "=== aarch64 musl ===" + local arm64_musl="node-v${NODE_VERSION}-linux-arm64-musl.tar.xz" + download_file "${NODE_SELF_HOST}/${arm64_musl}" "$node_dir/$arm64_musl" || \ + download_file "${NODE_MUSL_MIRROR}/v${NODE_VERSION}/${arm64_musl}" "$node_dir/$arm64_musl" || \ + log_error "aarch64 musl 下载失败" + + echo "" + echo "Node.js 下载完成:" + ls -lh "$node_dir/"*.tar.xz 2>/dev/null || echo " (无文件)" +} + +# ============================================================================ +# Phase 2: 下载并预装 OpenClaw + 依赖 +# ============================================================================ +download_openclaw_deps() { + echo "" + echo "╔══════════════════════════════════════════════════════════════╗" + printf "║ [2/3] 下载 OpenClaw v%-8s + 全部依赖 ║\n" "$OC_VERSION" + echo "╚══════════════════════════════════════════════════════════════╝" + echo "" + + local oc_dir="$CACHE_DIR/openclaw" + mkdir -p "$oc_dir" + + # 检查 npm 是否可用 (构建机上需要 node + npm) + local NPM_CMD="" + if command -v npm >/dev/null 2>&1; then + NPM_CMD="npm" + elif [ -x /opt/openclaw/node/bin/npm ]; then + # OpenWrt 上 npm wrapper 可能需要显式 node 调用 + NPM_CMD="/opt/openclaw/node/bin/node /opt/openclaw/node/bin/npm" + else + log_error "构建机上需要 npm" + log_error "请执行: apt install -y nodejs npm 或 apk add nodejs npm" + log_error "或者确保 /opt/openclaw/node 中有 Node.js" + exit 1 + fi + log_info "使用 npm: $NPM_CMD" + + # 方案: 使用 npm install 到临时目录,然后打包整个 node_modules + # 这是最可靠的方式,确保所有依赖树完整 + + local tmp_install="/tmp/openclaw-offline-$$" + trap "rm -rf '$tmp_install'" EXIT + + # ── 为每种架构生成预安装包 ── + # 注意: openclaw 的依赖树中可能包含平台特定的 optional dependencies + # musl 环境下用 --ignore-scripts 跳过原生编译 + # 对于离线包,我们在构建机上安装后直接打包 node_modules + + # 通用安装 (忽略平台特定编译脚本) + echo "=== 安装 OpenClaw 依赖 (通用包) ===" + mkdir -p "$tmp_install/global" + + # ── 强制 npm 使用 musl 平台检测 ── + # 目标系统是 OpenWrt/iStoreOS (musl libc),无论构建机是什么系统 + # 在 glibc 系统 (如 GitHub Actions ubuntu-latest) 上,npm 默认安装 *-gnu 变体 + # 的原生可选依赖 (如 @napi-rs/canvas-linux-x64-gnu),比 *-musl 变体大得多 + # 通过设置 npm_config_libc=musl 强制安装 musl 变体,确保跨平台一致的产物大小 + export npm_config_os=linux + export npm_config_libc=musl + + echo " 正在用 npm 安装 openclaw@${OC_VERSION}..." + echo " npm 平台覆盖: os=${npm_config_os}, libc=${npm_config_libc}" + $NPM_CMD install -g "openclaw@${OC_VERSION}" \ + --prefix="$tmp_install/global" \ + --ignore-scripts \ + --omit=dev \ + --omit=optional \ + --no-optional \ + --registry="$NPM_REGISTRY" 2>&1 | tail -20 + + # 验证安装 + local oc_entry="" + for d in "$tmp_install/global/lib/node_modules/openclaw" "$tmp_install/global/node_modules/openclaw"; do + if [ -f "${d}/openclaw.mjs" ]; then + oc_entry="${d}/openclaw.mjs" + break + elif [ -f "${d}/dist/cli.js" ]; then + oc_entry="${d}/dist/cli.js" + break + fi + done + + if [ -z "$oc_entry" ]; then + log_error "OpenClaw 安装验证失败" + echo "目录内容:" + find "$tmp_install/global" -maxdepth 4 -type d 2>/dev/null | head -30 + exit 1 + fi + + log_info "OpenClaw 安装验证通过: $oc_entry" + + # 获取实际安装的版本号 + local actual_ver="" + local oc_pkg_dir="$(dirname "$oc_entry")" + if [ -f "$oc_pkg_dir/package.json" ]; then + actual_ver=$(node -e "console.log(require('$oc_pkg_dir/package.json').version)" 2>/dev/null || echo "$OC_VERSION") + fi + echo " 实际版本: v${actual_ver:-$OC_VERSION}" + + # ── 打包为通用 tarball ── + # 不精简 node_modules,保留全部功能(飞书/Slack/Discord 等平台 SDK) + # 依靠 gzip 压缩控制包大小: ~670MB → ~150MB + # 因为 openclaw 是纯 JS 包 (使用 --ignore-scripts),node_modules 跨架构通用 + echo "" + echo "=== 打包 OpenClaw 依赖 ===" + local install_size=$(du -sm "$tmp_install/global" 2>/dev/null | awk '{print $1}') + local tarball="$oc_dir/openclaw-deps-v${actual_ver:-$OC_VERSION}.tar.gz" + echo " 正在压缩 ${install_size}MB 数据到 tar.gz (可能需要数分钟)..." + # 注意: 不在子 shell 中用 set -e, 避免 tar 在处理损坏的符号链接时意外退出 + # --warning=no-file-changed: 忽略打包过程中文件被修改的警告 + if ! tar czf "$tarball" -C "$tmp_install/global" . 2>&1; then + log_error "tar 打包失败" + rm -f "$tarball" + exit 1 + fi + # 验证 gzip 完整性 + if ! gzip -t "$tarball" 2>/dev/null; then + log_error "tar.gz 文件完整性检查失败!" + rm -f "$tarball" + exit 1 + fi + local tgz_size=$(du -h "$tarball" | cut -f1) + log_info "依赖包: $tarball ($tgz_size) [完整性已验证]" + + # 保存版本号 + echo "${actual_ver:-$OC_VERSION}" > "$oc_dir/VERSION" + + rm -rf "$tmp_install" + # 清除之前的 trap + trap - EXIT +} + +# ============================================================================ +# Phase 3: 生成清单 +# ============================================================================ +generate_manifest() { + echo "" + echo "╔══════════════════════════════════════════════════════════════╗" + echo "║ [3/3] 生成构建清单 ║" + echo "╚══════════════════════════════════════════════════════════════╝" + echo "" + + local manifest="$CACHE_DIR/manifest.txt" + local oc_ver=$(cat "$CACHE_DIR/openclaw/VERSION" 2>/dev/null || echo "$OC_VERSION") + + cat > "$manifest" << EOF +# OpenClaw Offline Bundle - 依赖清单 +# 生成时间: $(date -Iseconds 2>/dev/null || date) +# Node.js: v${NODE_VERSION} +# OpenClaw: v${oc_ver} + +[node] +EOF + + # 列出 Node.js 包 + for f in "$CACHE_DIR/node/"*.tar.xz; do + [ -f "$f" ] || continue + local fname=$(basename "$f") + local fsize=$(du -h "$f" | cut -f1) + local sha256=$(sha256sum "$f" 2>/dev/null | awk '{print $1}' || echo "N/A") + echo "${fname} size=${fsize} sha256=${sha256}" >> "$manifest" + done + + echo "" >> "$manifest" + echo "[openclaw]" >> "$manifest" + + # 列出 OpenClaw 包 + for f in "$CACHE_DIR/openclaw/"*.tar.gz; do + [ -f "$f" ] || continue + local fname=$(basename "$f") + local fsize=$(du -h "$f" | cut -f1) + local sha256=$(sha256sum "$f" 2>/dev/null | awk '{print $1}' || echo "N/A") + echo "${fname} size=${fsize} sha256=${sha256}" >> "$manifest" + done + + echo "" + echo "=== 依赖清单 ===" + cat "$manifest" + echo "" + + # 统计总大小 + local total_size=$(du -sh "$CACHE_DIR" 2>/dev/null | awk '{print $1}') + echo "缓存目录: $CACHE_DIR" + echo "总大小: $total_size" +} + +# ── 主入口 ── +echo "╔══════════════════════════════════════════════════════════════╗" +echo "║ OpenClaw 离线依赖下载器 ║" +echo "╚══════════════════════════════════════════════════════════════╝" +echo "" +echo " Node.js: v${NODE_VERSION}" +echo " OpenClaw: v${OC_VERSION}" +echo " 缓存目录: ${CACHE_DIR}" +echo " npm 源: ${NPM_REGISTRY}" +echo "" + +mkdir -p "$CACHE_DIR" + +download_all_node +download_openclaw_deps +generate_manifest + +echo "" +echo "╔══════════════════════════════════════════════════════════════╗" +echo "║ ✅ 依赖下载完成!现在可以运行 build_offline_run.sh ║" +echo "╚══════════════════════════════════════════════════════════════╝" diff --git a/scripts/gen-release-body.sh b/scripts/gen-release-body.sh new file mode 100644 index 0000000..7bf0e28 --- /dev/null +++ b/scripts/gen-release-body.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# 用法: gen-release-body.sh <版本号> <输出目录> +# 为指定版本生成 GitHub Release body markdown 文件 +set -e + +VER="$1" +CHANGELOG_FILE="$2" +OUT_DIR="$3" + +if [ -z "$VER" ] || [ -z "$CHANGELOG_FILE" ] || [ -z "$OUT_DIR" ]; then + echo "用法: $0 <版本号> <输出目录>" + exit 1 +fi + +mkdir -p "$OUT_DIR" + +# 提取该版本的 changelog +CONTENT=$(awk "/^## \\[${VER}\\]/{found=1; next} /^## \\[/{if(found) exit} found{print}" "$CHANGELOG_FILE") +if [ -z "$CONTENT" ]; then + CONTENT="暂无更新日志" +fi + +# 写入文件 +{ + printf '%s\n' "$CONTENT" + echo "" + echo "---" + echo "" + echo '**在线安装** (需联网,自动下载 Node.js + OpenClaw)' + echo '```' + echo '# iStoreOS' + echo "sh luci-app-openclaw_${VER}.run" + echo '' + echo '# OpenWrt' + echo "opkg install luci-app-openclaw_${VER}-1_all.ipk" + echo '```' + echo '' + echo '**离线安装** (无需联网,包含全部依赖)' + echo '```bash' + echo '# 将对应架构的 *_offline.run 传到路由器' + echo 'scp luci-app-openclaw_*_offline.run root@路由器IP:/tmp/' + echo 'ssh root@路由器IP "sh /tmp/luci-app-openclaw_*_offline.run"' + echo '```' + echo '' + echo '[使用文档](https://github.com/10000ge10000/luci-app-openclaw#readme) · [问题反馈](https://github.com/10000ge10000/luci-app-openclaw/issues) · [B站](https://space.bilibili.com/59438380) · [博客](https://blog.910501.xyz/)' +} > "${OUT_DIR}/${VER}.md" + +echo "✓ ${VER}.md ($(wc -l < "${OUT_DIR}/${VER}.md") 行)" diff --git a/scripts/sync_openlist.sh b/scripts/sync_openlist.sh new file mode 100755 index 0000000..bc98894 --- /dev/null +++ b/scripts/sync_openlist.sh @@ -0,0 +1,230 @@ +#!/bin/sh +# ============================================================================ +# OpenList 网盘同步脚本 — 补齐所有历史版本 + 上传更新记录 +# +# 功能: +# 1. 从 GitHub Releases 下载所有版本的 .run + .ipk +# 2. 从 CHANGELOG.md 提取每个版本的更新记录,生成 更新记录.txt +# 3. 上传到 OpenList 网盘的 openclaw-在线安装 目录 +# +# 用法: +# sh scripts/sync_openlist.sh +# ============================================================================ +set -e + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +PKG_DIR=$(cd "$SCRIPT_DIR/.." && pwd) + +# ── 配置 ── +GITHUB_REPO="10000ge10000/luci-app-openclaw" +OPENLIST_URL="http://124.243.178.237:15244" +OPENLIST_USER="admin" +OPENLIST_PASS="mingmenmama" +OPENLIST_ROOT="/Quark" +UPLOAD_SUBDIR="openclaw-在线安装" +CHANGELOG="$PKG_DIR/CHANGELOG.md" +WORK_DIR="/tmp/openlist-sync" + +# 所有已发布的版本 (按时间顺序) +ALL_VERSIONS="1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.0.10 1.0.11 1.0.12 1.0.14 1.0.15" + +log_info() { printf " [\033[32m✓\033[0m] %s\n" "$1"; } +log_warn() { printf " [\033[33m!\033[0m] %s\n" "$1"; } +log_error() { printf " [\033[31m✗\033[0m] %s\n" "$1"; } +log_skip() { printf " [\033[36m-\033[0m] %s\n" "$1"; } + +# ── 获取 Token ── +get_token() { + local resp + resp=$(curl -s -X POST "${OPENLIST_URL}/api/auth/login" \ + -H "Content-Type: application/json" \ + -d "{\"username\":\"${OPENLIST_USER}\",\"password\":\"${OPENLIST_PASS}\"}") + + local token + token=$(echo "$resp" | grep -o '"token":"[^"]*"' | sed 's/"token":"//;s/"//') + + if [ -z "$token" ]; then + log_error "OpenList 登录失败" + echo " 响应: $resp" + exit 1 + fi + echo "$token" +} + +# ── 创建远程目录 ── +create_remote_dir() { + local token="$1" + local remote_path="$2" + curl -s -X POST "${OPENLIST_URL}/api/fs/mkdir" \ + -H "Authorization: ${token}" \ + -H "Content-Type: application/json" \ + -d "{\"path\":\"${remote_path}\"}" >/dev/null 2>&1 || true +} + +# ── 检查远程文件是否存在 ── +remote_file_exists() { + local token="$1" + local remote_path="$2" + local filename="$3" + + local resp + resp=$(curl -s -X POST "${OPENLIST_URL}/api/fs/list" \ + -H "Authorization: ${token}" \ + -H "Content-Type: application/json" \ + -d "{\"path\":\"${remote_path}\",\"refresh\":false}") + + echo "$resp" | grep -q "\"name\":\"${filename}\"" +} + +# ── 上传单个文件 ── +upload_file() { + local token="$1" + local local_file="$2" + local remote_path="$3" + local filename=$(basename "$local_file") + local fsize=$(du -h "$local_file" | cut -f1) + + local resp + resp=$(curl -s -X PUT "${OPENLIST_URL}/api/fs/put" \ + -H "Authorization: ${token}" \ + -H "File-Path: ${remote_path}/${filename}" \ + -H "Content-Type: application/octet-stream" \ + --data-binary "@${local_file}" \ + --max-time 300 2>/dev/null) + + local code="" + code=$(echo "$resp" | grep -o '"code":[0-9]*' | grep -o '[0-9]*') + + if [ "$code" = "200" ]; then + log_info "${filename} (${fsize}) 上传成功" + else + log_error "${filename} 上传失败: $resp" + fi +} + +# ── 从 CHANGELOG.md 提取指定版本的更新日志 ── +extract_changelog() { + local version="$1" + local output_file="$2" + + awk "/^## \\[${version}\\]/{found=1; next} /^## \\[/{if(found) exit} found{print}" \ + "$CHANGELOG" > "$output_file" + + # 去掉首尾空行 + sed -i '/./,$!d' "$output_file" # 去掉开头空行 + sed -i ':a; /^[[:space:]]*$/{ $d; N; ba }' "$output_file" # 去掉末尾空行 (GNU sed) + + if [ ! -s "$output_file" ]; then + echo "暂无更新日志" > "$output_file" + fi +} + +# ── 从 GitHub 下载文件 ── +download_release_file() { + local version="$1" + local filename="$2" + local output="$3" + + local url="https://github.com/${GITHUB_REPO}/releases/download/v${version}/${filename}" + + if [ -f "$output" ]; then + log_skip "${filename} 已在本地缓存" + return 0 + fi + + if curl -sL --fail -o "$output" "$url" 2>/dev/null; then + # 检查是否为有效文件 (排除 GitHub 返回 Not Found HTML) + local size=$(wc -c < "$output") + if [ "$size" -lt 1000 ]; then + local content=$(cat "$output") + if echo "$content" | grep -qi "not found"; then + rm -f "$output" + return 1 + fi + fi + return 0 + else + rm -f "$output" + return 1 + fi +} + +# ══════════════════════════════════════════════════════════════ +# 主流程 +# ══════════════════════════════════════════════════════════════ + +echo "" +echo "================================================================" +echo " OpenList 网盘同步 — 补齐所有历史版本" +echo "================================================================" +echo "" + +# 准备工作目录 +rm -rf "$WORK_DIR" +mkdir -p "$WORK_DIR" + +# 登录 +echo "正在登录 OpenList..." +TOKEN=$(get_token) +log_info "登录成功" +echo "" + +TOTAL_UPLOADED=0 + +for VER in $ALL_VERSIONS; do + echo "── v${VER} ──────────────────────────────────────" + REMOTE_DIR="${OPENLIST_ROOT}/${UPLOAD_SUBDIR}/v${VER}" + VER_DIR="${WORK_DIR}/v${VER}" + mkdir -p "$VER_DIR" + + # 创建远程目录 + create_remote_dir "$TOKEN" "$REMOTE_DIR" + + # 1) 下载 .run + RUN_FILE="luci-app-openclaw_${VER}.run" + if remote_file_exists "$TOKEN" "$REMOTE_DIR" "$RUN_FILE"; then + log_skip "${RUN_FILE} 已存在于网盘" + else + echo " 下载 ${RUN_FILE}..." + if download_release_file "$VER" "$RUN_FILE" "${VER_DIR}/${RUN_FILE}"; then + upload_file "$TOKEN" "${VER_DIR}/${RUN_FILE}" "$REMOTE_DIR" + TOTAL_UPLOADED=$((TOTAL_UPLOADED + 1)) + else + log_error "${RUN_FILE} 下载失败" + fi + fi + + # 2) 下载 .ipk + IPK_FILE="luci-app-openclaw_${VER}-1_all.ipk" + if remote_file_exists "$TOKEN" "$REMOTE_DIR" "$IPK_FILE"; then + log_skip "${IPK_FILE} 已存在于网盘" + else + echo " 下载 ${IPK_FILE}..." + if download_release_file "$VER" "$IPK_FILE" "${VER_DIR}/${IPK_FILE}"; then + upload_file "$TOKEN" "${VER_DIR}/${IPK_FILE}" "$REMOTE_DIR" + TOTAL_UPLOADED=$((TOTAL_UPLOADED + 1)) + else + log_error "${IPK_FILE} 下载失败" + fi + fi + + # 3) 生成并上传 更新记录.txt + CHANGELOG_FILE="更新记录.txt" + if remote_file_exists "$TOKEN" "$REMOTE_DIR" "$CHANGELOG_FILE"; then + log_skip "${CHANGELOG_FILE} 已存在于网盘" + else + extract_changelog "$VER" "${VER_DIR}/${CHANGELOG_FILE}" + upload_file "$TOKEN" "${VER_DIR}/${CHANGELOG_FILE}" "$REMOTE_DIR" + TOTAL_UPLOADED=$((TOTAL_UPLOADED + 1)) + fi + + echo "" +done + +# 清理 +rm -rf "$WORK_DIR" + +echo "================================================================" +echo " 同步完成!共上传 ${TOTAL_UPLOADED} 个文件" +echo "================================================================" +echo "" diff --git a/scripts/upload_openlist.sh b/scripts/upload_openlist.sh new file mode 100755 index 0000000..b410374 --- /dev/null +++ b/scripts/upload_openlist.sh @@ -0,0 +1,221 @@ +#!/bin/sh +# ============================================================================ +# OpenList 网盘上传脚本 +# 将构建产物上传到 OpenList (AList) 网盘,便于国内用户下载 +# +# 用法: +# sh scripts/upload_openlist.sh [dist_dir] +# +# 环境变量 (必须): +# OPENLIST_URL — OpenList 服务地址 (如 https://pan.example.com) +# OPENLIST_USER — 登录用户名 +# OPENLIST_PASS — 登录密码 +# +# 环境变量 (可选): +# OPENLIST_PATH — 上传根路径 (默认: /Quark) +# OPENLIST_TOKEN — 直接提供 token, 跳过登录 +# UPLOAD_MODE — 上传模式: offline / online / auto (默认 auto) +# auto 模式自动检测: 有 *_offline.run 则离线, 有 .run/.ipk 则在线 +# ============================================================================ +set -e + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +PKG_DIR=$(cd "$SCRIPT_DIR/.." && pwd) +DIST_DIR="${1:-$PKG_DIR/dist}" + +case "$DIST_DIR" in + /*) ;; + *) DIST_DIR="$PKG_DIR/$DIST_DIR" ;; +esac + +# 检查必要的环境变量 +if [ -z "$OPENLIST_URL" ]; then + echo "错误: 请设置 OPENLIST_URL 环境变量" + echo " 例: export OPENLIST_URL=https://pan.example.com" + exit 1 +fi + +if [ -z "$OPENLIST_TOKEN" ] && { [ -z "$OPENLIST_USER" ] || [ -z "$OPENLIST_PASS" ]; }; then + echo "错误: 请设置登录凭据" + echo " 方式一: export OPENLIST_USER=xxx OPENLIST_PASS=xxx" + echo " 方式二: export OPENLIST_TOKEN=xxx" + exit 1 +fi + +UPLOAD_ROOT="${OPENLIST_PATH:-/Quark}" +UPLOAD_MODE="${UPLOAD_MODE:-auto}" +PKG_VERSION=$(cat "$PKG_DIR/VERSION" 2>/dev/null | tr -d '[:space:]' || echo "unknown") + +# 去除路径末尾的 / +UPLOAD_ROOT="${UPLOAD_ROOT%/}" + +# 自动检测上传模式 +if [ "$UPLOAD_MODE" = "auto" ]; then + if ls "$DIST_DIR"/*_offline.run >/dev/null 2>&1; then + UPLOAD_MODE="offline" + elif ls "$DIST_DIR"/*.run >/dev/null 2>&1 || ls "$DIST_DIR"/*.ipk >/dev/null 2>&1; then + UPLOAD_MODE="online" + else + echo "错误: 无法自动检测上传模式,dist 目录中无可识别文件" + exit 1 + fi +fi + +# 根据模式设置子目录和文件匹配规则 +case "$UPLOAD_MODE" in + offline) + UPLOAD_SUBDIR="openclaw-离线安装" + ;; + online) + UPLOAD_SUBDIR="openclaw-在线安装" + ;; + *) + echo "错误: 无效的 UPLOAD_MODE: $UPLOAD_MODE (可选: offline / online / auto)" + exit 1 + ;; +esac + +OPENLIST_URL="${OPENLIST_URL%/}" + +log_info() { echo " [✓] $1"; } +log_warn() { echo " [!] $1"; } +log_error() { echo " [✗] $1"; } + +# ── 获取 Token ── +get_token() { + if [ -n "$OPENLIST_TOKEN" ]; then + echo "$OPENLIST_TOKEN" + return + fi + + log_info "正在登录 OpenList..." >&2 + local resp + resp=$(curl -s -X POST "${OPENLIST_URL}/api/auth/login" \ + -H "Content-Type: application/json" \ + -d "{\"username\":\"${OPENLIST_USER}\",\"password\":\"${OPENLIST_PASS}\"}" 2>/dev/null) + + local token + # 尝试解析 JSON 响应 (兼容多种 alist 版本) + # alist v3 响应格式: {"code":200,"data":{"token":"xxx"},"message":"success"} + if command -v jq >/dev/null 2>&1; then + token=$(echo "$resp" | jq -r '.data.token // empty' 2>/dev/null) + else + # 无 jq 时用 grep/sed 提取 + token=$(echo "$resp" | grep -o '"token":"[^"]*"' | sed 's/"token":"//;s/"//') + fi + + if [ -z "$token" ]; then + log_error "登录失败" >&2 + echo " 响应: $resp" >&2 + exit 1 + fi + + log_info "登录成功" >&2 + echo "$token" +} + +# ── 创建远程目录 ── +create_remote_dir() { + local token="$1" + local remote_path="$2" + + curl -s -X POST "${OPENLIST_URL}/api/fs/mkdir" \ + -H "Authorization: ${token}" \ + -H "Content-Type: application/json" \ + -d "{\"path\":\"${remote_path}\"}" >/dev/null 2>&1 || true +} + +# ── 上传单个文件 ── +upload_file() { + local token="$1" + local local_file="$2" + local remote_path="$3" + local filename=$(basename "$local_file") + local fsize=$(du -h "$local_file" | cut -f1) + + echo " 上传: ${filename} (${fsize})..." + + local resp + resp=$(curl -s -X PUT "${OPENLIST_URL}/api/fs/put" \ + -H "Authorization: ${token}" \ + -H "File-Path: ${remote_path}/${filename}" \ + -H "Content-Type: application/octet-stream" \ + --data-binary "@${local_file}" \ + --max-time 3600 2>/dev/null) + + # 检查响应 + local code="" + if command -v jq >/dev/null 2>&1; then + code=$(echo "$resp" | jq -r '.code // empty' 2>/dev/null) + else + code=$(echo "$resp" | grep -o '"code":[0-9]*' | grep -o '[0-9]*') + fi + + if [ "$code" = "200" ]; then + log_info "${filename} 上传成功" + else + log_error "${filename} 上传失败" + echo " 响应: $resp" + fi +} + +# ── 主流程 ── +echo "╔══════════════════════════════════════════════════════════════╗" +echo "║ 上传到 OpenList 网盘 ║" +echo "╚══════════════════════════════════════════════════════════════╝" +echo "" +echo " 服务地址: ${OPENLIST_URL}" +echo " 上传模式: ${UPLOAD_MODE}" +echo " 上传路径: ${UPLOAD_ROOT}/${UPLOAD_SUBDIR}/v${PKG_VERSION}" +echo " 本地目录: ${DIST_DIR}" +echo "" + +# 查找要上传的文件 +UPLOAD_FILES="" +case "$UPLOAD_MODE" in + offline) + # 离线包: 仅 *_offline.run 文件 + UPLOAD_FILES=$(find "$DIST_DIR" -name "*_offline.run" 2>/dev/null) + ;; + online) + # 在线包: .run (非 offline) + .ipk + for f in "$DIST_DIR"/*.run "$DIST_DIR"/*.ipk; do + [ -f "$f" ] || continue + case "$(basename "$f")" in *_offline.run) continue ;; esac + UPLOAD_FILES="$UPLOAD_FILES $f" + done + UPLOAD_FILES=$(echo "$UPLOAD_FILES" | sed 's/^ //') + ;; +esac + +if [ -z "$UPLOAD_FILES" ]; then + echo "错误: 未找到可上传的文件" + echo " 模式: $UPLOAD_MODE" + echo " 目录: $DIST_DIR" + exit 1 +fi + +# 获取 token +TOKEN=$(get_token) + +# 创建远程目录 +REMOTE_DIR="${UPLOAD_ROOT}/${UPLOAD_SUBDIR}/v${PKG_VERSION}" +echo "" +echo "创建远程目录: ${REMOTE_DIR}" +create_remote_dir "$TOKEN" "$REMOTE_DIR" + +# 上传文件 +echo "" +echo "开始上传..." +UPLOAD_COUNT=0 +for f in $UPLOAD_FILES; do + upload_file "$TOKEN" "$f" "$REMOTE_DIR" + UPLOAD_COUNT=$((UPLOAD_COUNT + 1)) +done + +echo "" +echo "╔══════════════════════════════════════════════════════════════╗" +printf "║ ✅ 上传完成!共 %-2s 个文件 ║\n" "$UPLOAD_COUNT" +echo "╚══════════════════════════════════════════════════════════════╝" +echo "" +echo "下载地址: ${OPENLIST_URL}${REMOTE_DIR}"