@yyy9527/openclaw-manager 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -32,6 +32,65 @@ clawctl --help
32
32
  > 首次执行 `clawctl deploy` 需要拉取官方镜像,可能耗时较长(取决于网络)。
33
33
  > clawhub 在 macOS 安装后,只有把 skills 安装到 `OPENCLAW_HOME_ROOT` 可见目录并挂载到容器,才能持久化并在容器内生效。
34
34
 
35
+ ### 2.1 在另一台电脑安装
36
+
37
+ 在新机器上只需用 npm 安装包并按下面步骤做一次初始化即可使用。
38
+
39
+ **前置:**
40
+
41
+ - macOS,已安装 **Node.js**(建议 18+)和 **Docker Desktop**(并已启动)
42
+ - 准备好 Git 令牌、飞书 webhook 等(见下方配置)
43
+
44
+ **安装与首次配置:**
45
+
46
+ ```bash
47
+ # 全局安装(推荐指定版本以便复现)
48
+ npm i -g @yyy9527/openclaw-manager
49
+
50
+ # 进入包所在目录(全局安装时通常在 node 的 lib/node_modules 下),或从本仓库复制配置到任意目录
51
+ # 方式 A:从本仓库 clone 后,在仓库根目录操作
52
+ cd /path/to/docker-claw
53
+ cp config/openclaw.env.example config/openclaw.env
54
+ cp .env.example .env
55
+ # 编辑 .env 和 config/openclaw.env,填入 GIT_TOKEN、FEISHU_WEBHOOK_URL 等
56
+
57
+ # 方式 B:仅用包内自带默认配置(需先找到包路径)
58
+ # npm root -g 可查看全局 node_modules 路径,包名 @yyy9527/openclaw-manager
59
+ # 复制该包内 config/openclaw.env.example -> config/openclaw.env,.env.example -> .env 并编辑
60
+
61
+ # 使用默认配置时,clawctl 会读取「当前工作目录」下的 config/openclaw.env 与 .env
62
+ # 因此建议:新建一个目录如 ~/openclaw-workspace,把 .env 和 config/openclaw.env 放进去,之后在该目录下执行 clawctl
63
+ cd ~/openclaw-workspace
64
+ clawctl setup
65
+ clawctl deploy
66
+ clawctl list-claw
67
+ clawctl status-claw master # 或你的实例名
68
+ ```
69
+
70
+ **常用命令示例(在新电脑上):**
71
+
72
+ ```bash
73
+ clawctl --help
74
+ clawctl check-env
75
+ clawctl deploy
76
+ clawctl list-claw
77
+ clawctl start-claw master
78
+ clawctl status-claw master
79
+ clawctl chat-claw master
80
+ ```
81
+
82
+ 指定配置与敏感变量文件(多环境时):
83
+
84
+ ```bash
85
+ clawctl --config ./config/openclaw.prod.env --env-file ./.env.prod status
86
+ ```
87
+
88
+ 安装指定版本(例如 0.2.2):
89
+
90
+ ```bash
91
+ npm i -g @yyy9527/openclaw-manager@0.2.2
92
+ ```
93
+
35
94
  ## 3. 常用命令
36
95
 
37
96
  - `clawctl --help`:查看友好的 CLI 帮助
@@ -191,4 +250,13 @@ npm login
191
250
  npm publish --access public
192
251
  ```
193
252
 
253
+ 使用 `.env` 中的 `NPM_TOKEN` 发布时(例如 CI 或本机已配置):
254
+
255
+ ```bash
256
+ # 在项目根目录
257
+ printf '//registry.npmjs.org/:_authToken=%s\n' "${NPM_TOKEN}" > .npmrc
258
+ export NPM_TOKEN # 若未导出,先 source .env 或 export NPM_TOKEN=你的令牌
259
+ npm publish --access public
260
+ ```
261
+
194
262
  > 当前包名:`@yyy9527/openclaw-manager`。CLI 主命令为 `clawctl`。
@@ -0,0 +1,20 @@
1
+ # 测试配置:单实例 xiaomo(用于包流程自测)
2
+ OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw
3
+ OPENCLAW_VERSION=latest
4
+ OPENCLAW_INSTANCE_IDS=xiaomo
5
+ OPENCLAW_NAME_PREFIX=openclaw
6
+ OPENCLAW_BASE_HTTP_PORT=3200
7
+ OPENCLAW_CONTAINER_PORT=18789
8
+ OPENCLAW_HOME_ROOT=${HOME}/openclaws
9
+ OPENCLAW_SHARED_SKILLS_DIR=${OPENCLAW_HOME_ROOT}/shared/skills
10
+ OPENCLAW_ENABLE_CLAWHUB_SKILLS=false
11
+ OPENCLAW_CLAWHUB_INSTALL_RETRIES=8
12
+ OPENCLAW_FORCE_OLLAMA_AFTER_APPLY=false
13
+ OPENCLAW_ALLOW_OLLAMA_OVERRIDE=false
14
+ OLLAMA_BASE_URL=http://host.docker.internal:11434
15
+ OLLAMA_MODEL=qwen3.5:27b
16
+ OLLAMA_API_KEY=ollama-local
17
+ GIT_PLATFORM=gitee
18
+ GIT_REPO=yangyiyuan0825/openclaws
19
+ GIT_API_BASE=https://gitee.com/api/v5
20
+ FEISHU_ENABLED=true
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@yyy9527/openclaw-manager",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "OpenClaw multi-instance manager for macOS with docker, TUI, and collaboration workflow.",
5
5
  "private": false,
6
6
  "license": "MIT",
7
7
  "type": "module",
8
8
  "bin": {
9
- "clawctl": "./scripts/openclaw_ctl.sh"
9
+ "clawctl": "scripts/openclaw_ctl.sh"
10
10
  },
11
11
  "files": [
12
12
  "scripts/",
@@ -41,6 +41,7 @@
41
41
  "bootstrap-models": "bash ./scripts/openclaw_ctl.sh bootstrap-models",
42
42
  "set-model:qwen": "bash ./scripts/openclaw_ctl.sh set-qwen",
43
43
  "health-check": "bash ./scripts/openclaw_ctl.sh health-check",
44
- "self-test": "bash ./scripts/openclaw_ctl.sh self-test"
44
+ "self-test": "bash ./scripts/openclaw_ctl.sh self-test",
45
+ "test": "bash ./scripts/test_create_claw.sh"
45
46
  }
46
47
  }
@@ -1,7 +1,17 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4
+ SOURCE_PATH="${BASH_SOURCE[0]}"
5
+ while [ -L "${SOURCE_PATH}" ]; do
6
+ LINK_DIR="$(cd -P "$(dirname "${SOURCE_PATH}")" && pwd)"
7
+ LINK_TARGET="$(readlink "${SOURCE_PATH}")"
8
+ if [[ "${LINK_TARGET}" != /* ]]; then
9
+ SOURCE_PATH="${LINK_DIR}/${LINK_TARGET}"
10
+ else
11
+ SOURCE_PATH="${LINK_TARGET}"
12
+ fi
13
+ done
14
+ SCRIPT_DIR="$(cd -P "$(dirname "${SOURCE_PATH}")" && pwd)"
5
15
  PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
6
16
  DEFAULT_CONFIG_FILE="${PROJECT_ROOT}/config/openclaw.env"
7
17
  DEFAULT_DOTENV_FILE="${PROJECT_ROOT}/.env"
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env bash
2
+ # 测试用例:使用 test 配置执行「创建龙虾」流程并做简单断言
3
+ # 用于回归:check-env -> deploy -> list-claw 含 xiaomo -> status-claw xiaomo 成功
4
+ set -euo pipefail
5
+
6
+ SOURCE_PATH="${BASH_SOURCE[0]}"
7
+ while [ -L "${SOURCE_PATH}" ]; do
8
+ LINK_DIR="$(cd -P "$(dirname "${SOURCE_PATH}")" && pwd)"
9
+ LINK_TARGET="$(readlink "${SOURCE_PATH}")"
10
+ if [[ "${LINK_TARGET}" != /* ]]; then
11
+ SOURCE_PATH="${LINK_DIR}/${LINK_TARGET}"
12
+ else
13
+ SOURCE_PATH="${LINK_TARGET}"
14
+ fi
15
+ done
16
+ SCRIPT_DIR="$(cd -P "$(dirname "${SOURCE_PATH}")" && pwd)"
17
+ PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
18
+ CONFIG="${PROJECT_ROOT}/config/openclaw.test.env"
19
+ ENV_FILE="${PROJECT_ROOT}/.env"
20
+ CTL="${PROJECT_ROOT}/scripts/openclaw_ctl.sh"
21
+
22
+ if [ ! -f "${ENV_FILE}" ]; then
23
+ echo "跳过 deploy:未找到 .env,请复制 .env.example 为 .env 并填写后重试。仅执行 list-claw/status-claw 断言(需已有 xiaomo 容器)。"
24
+ SKIP_DEPLOY=1
25
+ else
26
+ SKIP_DEPLOY=0
27
+ fi
28
+
29
+ run_ctl() {
30
+ OPENCLAW_CONFIG_FILE="${CONFIG}" OPENCLAW_DOTENV_FILE="${ENV_FILE}" bash "${CTL}" "$@"
31
+ }
32
+
33
+ echo "=== 1. check-env ==="
34
+ run_ctl check-env
35
+
36
+ if [ "${SKIP_DEPLOY}" = 0 ]; then
37
+ echo "=== 2. deploy(test 配置单实例 xiaomo)==="
38
+ run_ctl deploy
39
+ else
40
+ echo "=== 2. 跳过 deploy ==="
41
+ fi
42
+
43
+ echo "=== 3. list-claw(断言含 xiaomo)==="
44
+ list_out="$(run_ctl list-claw)"
45
+ echo "${list_out}"
46
+ if ! echo "${list_out}" | grep -q 'xiaomo'; then
47
+ echo "断言失败:list-claw 输出中未包含 xiaomo" >&2
48
+ exit 1
49
+ fi
50
+
51
+ echo "=== 4. status-claw xiaomo ==="
52
+ run_ctl status-claw xiaomo
53
+
54
+ echo "=== 测试通过 ==="