@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 +68 -0
- package/config/openclaw.test.env +20 -0
- package/package.json +4 -3
- package/scripts/openclaw_ctl.sh +11 -1
- package/scripts/test_create_claw.sh +54 -0
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.
|
|
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": "
|
|
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
|
}
|
package/scripts/openclaw_ctl.sh
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
|
-
|
|
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 "=== 测试通过 ==="
|