create-openclaw-bot 5.11.0 → 5.11.1
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 +10 -2
- package/README.vi.md +10 -2
- package/dist/setup/shared/docker-gen.js +22 -12
- package/dist/setup/shared/workspace-gen.js +819 -154
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*Run one command → open the dashboard → your bot is live. Windows · macOS · Linux · VPS — Docker-powered, auto-installed for you.*
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.11.
|
|
10
|
+
<a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.11.1-0EA5E9?style=for-the-badge" alt="Version 5.11.1" /></a>
|
|
11
11
|
<a href="https://github.com/tuanminhhole/openclaw-setup?tab=MIT-1-ov-file"><img src="https://img.shields.io/badge/LICENSE-MIT-success?style=for-the-badge" alt="MIT License" /></a>
|
|
12
12
|
<a href="https://www.npmjs.com/package/create-openclaw-bot"><img src="https://img.shields.io/npm/v/create-openclaw-bot?style=for-the-badge&label=CLI&color=2563EB&logo=npm&logoColor=white" alt="NPM Version" /></a>
|
|
13
13
|
<a href="https://github.com/tuanminhhole/openclaw-setup/stargazers"><img src="https://img.shields.io/github/stars/tuanminhhole/openclaw-setup?style=for-the-badge&color=eab308&logo=github&logoColor=white" alt="GitHub Stars" /></a>
|
|
@@ -27,12 +27,20 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
## 🆕 What's New in v5.11.
|
|
30
|
+
## 🆕 What's New in v5.11.1
|
|
31
|
+
|
|
32
|
+
- 📄 **Workspace defaults, rebuilt on OpenClaw's canonical files**: new bots get all 7 upstream default workspace files (`AGENTS`/`BOOTSTRAP`/`HEARTBEAT`/`IDENTITY`/`SOUL`/`TOOLS`/`USER.md`) as the base, with this project's extra rules appended as clearly-marked add-ons — VI + EN, every bot variant.
|
|
33
|
+
- 🗄️ **SQLite "disk I/O error" on Docker Desktop — fixed**: `.openclaw/state` now lives in a named volume on macOS/Windows (WAL locking doesn't survive virtiofs); Linux/VPS keeps the bind mount.
|
|
34
|
+
|
|
35
|
+
<details>
|
|
36
|
+
<summary><b>Previous: What's new in v5.11.0</b></summary>
|
|
31
37
|
|
|
32
38
|
- 🚀 **Facebook Messenger, 1-click**: the `fb-messenger` plugin is now **public on ClawHub** and installs straight from the dashboard — create a Messenger bot, open **Bot → Plugins**, and hit **Install** on the `openclaw-fb-messenger` card. Webhook + Graph API, auto User→Page token, HMAC verify.
|
|
33
39
|
- 🐳 **Docker-only, rock-solid**: dropped the native (non-Docker) install path to focus on the Docker flow that runs flawlessly and stably across Windows / macOS / Linux / VPS, with cross-OS Docker auto-install.
|
|
34
40
|
- 🖥️ **Chrome-debug on headless VPS**: the browser-automation Chrome-debug relay now works on a headless VPS (bridge-IP-scoped, auto-opens ufw); the bot file editor also saves non-`.md` text files.
|
|
35
41
|
|
|
42
|
+
</details>
|
|
43
|
+
|
|
36
44
|
<details>
|
|
37
45
|
<summary><b>Previous: What's new in v5.10.1</b></summary>
|
|
38
46
|
|
package/README.vi.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*Chạy một lệnh → mở dashboard → bot lên sóng. Windows · macOS · Linux · VPS — chạy trên Docker, tự cài giúp bạn.*
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.11.
|
|
10
|
+
<a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.11.1-0EA5E9?style=for-the-badge" alt="Version 5.11.1" /></a>
|
|
11
11
|
<a href="https://github.com/tuanminhhole/openclaw-setup?tab=MIT-1-ov-file"><img src="https://img.shields.io/badge/LICENSE-MIT-success?style=for-the-badge" alt="MIT License" /></a>
|
|
12
12
|
<a href="https://www.npmjs.com/package/create-openclaw-bot"><img src="https://img.shields.io/npm/v/create-openclaw-bot?style=for-the-badge&label=CLI&color=2563EB&logo=npm&logoColor=white" alt="NPM Version" /></a>
|
|
13
13
|
<a href="https://github.com/tuanminhhole/openclaw-setup/stargazers"><img src="https://img.shields.io/github/stars/tuanminhhole/openclaw-setup?style=for-the-badge&color=eab308&logo=github&logoColor=white" alt="GitHub Stars" /></a>
|
|
@@ -27,12 +27,20 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
## 🆕 Có gì mới trong v5.11.
|
|
30
|
+
## 🆕 Có gì mới trong v5.11.1
|
|
31
|
+
|
|
32
|
+
- 📄 **Workspace mặc định dựng lại theo bộ file chuẩn OpenClaw**: bot tạo mới nhận đủ 7 file workspace gốc (`AGENTS`/`BOOTSTRAP`/`HEARTBEAT`/`IDENTITY`/`SOUL`/`TOOLS`/`USER.md`) làm khung, quy tắc riêng của dự án gắn thành mục bổ sung đánh dấu rõ — đủ VI + EN, mọi kiểu bot.
|
|
33
|
+
- 🗄️ **Hết lỗi SQLite "disk I/O error" trên Docker Desktop**: `.openclaw/state` chuyển sang named volume trên macOS/Windows (khóa WAL không sống nổi qua virtiofs); Linux/VPS vẫn bind mount như cũ.
|
|
34
|
+
|
|
35
|
+
<details>
|
|
36
|
+
<summary><b>Trước đó: Có gì mới trong v5.11.0</b></summary>
|
|
31
37
|
|
|
32
38
|
- 🚀 **Facebook Messenger, cài 1 chạm**: plugin `fb-messenger` giờ đã **public trên ClawHub** và cài ngay trên dashboard — tạo bot Messenger, mở **Bot → Plugins**, bấm **Cài** ở thẻ `openclaw-fb-messenger`. Webhook + Graph API, tự đổi User→Page token, xác minh HMAC.
|
|
33
39
|
- 🐳 **Chỉ còn Docker, cực ổn định**: loại bỏ kiểu cài native (không Docker) để tập trung cho luồng Docker chạy hoàn hảo & ổn định trên Windows / macOS / Linux / VPS, kèm tự cài Docker đa hệ điều hành.
|
|
34
40
|
- 🖥️ **Chrome-debug trên VPS headless**: relay Chrome-debug của browser-automation giờ chạy được trên VPS headless (giới hạn theo bridge-IP, tự mở ufw); trình sửa file bot cũng lưu được file text không phải `.md`.
|
|
35
41
|
|
|
42
|
+
</details>
|
|
43
|
+
|
|
36
44
|
<details>
|
|
37
45
|
<summary><b>Trước đó: Có gì mới trong v5.10.1</b></summary>
|
|
38
46
|
|
|
@@ -231,6 +231,16 @@ if(touched){console.log('[patch-9router] Applied Codex compatibility patch.');}e
|
|
|
231
231
|
const useExtensionsVolume = osChoice === 'win';
|
|
232
232
|
const extVolMount = useExtensionsVolume ? '\n - openclaw-extensions:/home/node/project/.openclaw/extensions' : '';
|
|
233
233
|
const extVolDecl = useExtensionsVolume ? '\n openclaw-extensions:' : '';
|
|
234
|
+
// SQLite state on Docker Desktop (macOS/Windows): the host bind mount goes through a
|
|
235
|
+
// virtualized file share (virtiofs/gRPC-FUSE) whose locking/mmap semantics break SQLite WAL —
|
|
236
|
+
// OpenClaw crashes with `Error: disk I/O error` on write (e.g. when a Zalo message arrives).
|
|
237
|
+
// Keep `.openclaw/state` on a named volume (the Linux VM's native filesystem) instead; the
|
|
238
|
+
// rest of `.openclaw` stays bind-mounted so workspaces/config remain visible on the host.
|
|
239
|
+
// Linux/VPS bind mounts are native ext4 — unchanged there (and state stays host-visible).
|
|
240
|
+
const useStateVolume = osChoice === 'macos' || osChoice === 'win';
|
|
241
|
+
const stateVolMount = useStateVolume ? '\n - openclaw-state:/home/node/project/.openclaw/state' : '';
|
|
242
|
+
const stateVolDecl = useStateVolume ? '\n openclaw-state:' : '';
|
|
243
|
+
const stateVolBlock = useStateVolume ? '\n\nvolumes:\n openclaw-state:' : '';
|
|
234
244
|
const skillLines = dockerfileSkillInstallMode === 'build' && allSkills.length > 0
|
|
235
245
|
? `\n# Install skills (ClawHub)\n${allSkills.map((skill) => `RUN openclaw skills install ${skill} || echo "Warning: Failed to install ${skill} due to rate limits."`).join('\n')}\n`
|
|
236
246
|
: '';
|
|
@@ -395,7 +405,7 @@ services:
|
|
|
395
405
|
env_file:
|
|
396
406
|
- ../../.env
|
|
397
407
|
${appEnvironmentBlock}${dependsOn}${extraHosts} volumes:
|
|
398
|
-
- ${volumeMount}
|
|
408
|
+
- ${volumeMount}${stateVolMount}
|
|
399
409
|
ports:
|
|
400
410
|
- "127.0.0.1:${gatewayPort}:${gatewayPort}"
|
|
401
411
|
|
|
@@ -420,7 +430,7 @@ ${indentBlock(docker9RouterEntrypointScript, 8)}
|
|
|
420
430
|
- "127.0.0.1:${routerPort}:${routerPort}"
|
|
421
431
|
|
|
422
432
|
volumes:
|
|
423
|
-
9router-data
|
|
433
|
+
9router-data:${stateVolDecl}`;
|
|
424
434
|
} else if (isLocal) {
|
|
425
435
|
const ollamaModelTag = String(selectedModel || 'ollama/gemma4:e2b').replace('ollama/', '');
|
|
426
436
|
compose = `name: ${multiComposeName}
|
|
@@ -432,7 +442,7 @@ services:
|
|
|
432
442
|
env_file:
|
|
433
443
|
- ../../.env
|
|
434
444
|
${appEnvironmentBlock}${dependsOn}${extraHosts} volumes:
|
|
435
|
-
- ${volumeMount}
|
|
445
|
+
- ${volumeMount}${stateVolMount}
|
|
436
446
|
ports:
|
|
437
447
|
- "127.0.0.1:${gatewayPort}:${gatewayPort}"
|
|
438
448
|
|
|
@@ -461,7 +471,7 @@ ${appEnvironmentBlock}${dependsOn}${extraHosts} volumes:
|
|
|
461
471
|
start_period: 30s
|
|
462
472
|
|
|
463
473
|
volumes:
|
|
464
|
-
ollama-data
|
|
474
|
+
ollama-data:${stateVolDecl}`;
|
|
465
475
|
} else {
|
|
466
476
|
compose = `name: ${multiComposeName}
|
|
467
477
|
services:
|
|
@@ -472,9 +482,9 @@ services:
|
|
|
472
482
|
env_file:
|
|
473
483
|
- ../../.env
|
|
474
484
|
${appEnvironmentBlock}${extraHosts} volumes:
|
|
475
|
-
- ${volumeMount}
|
|
485
|
+
- ${volumeMount}${stateVolMount}
|
|
476
486
|
ports:
|
|
477
|
-
- "127.0.0.1:${gatewayPort}:${gatewayPort}"`;
|
|
487
|
+
- "127.0.0.1:${gatewayPort}:${gatewayPort}"${stateVolBlock}`;
|
|
478
488
|
}
|
|
479
489
|
} else if (is9Router) {
|
|
480
490
|
compose = `name: ${singleComposeName}
|
|
@@ -488,7 +498,7 @@ services:
|
|
|
488
498
|
depends_on:
|
|
489
499
|
- 9router
|
|
490
500
|
${appEnvironmentBlock}${extraHostsBlock}\n volumes:
|
|
491
|
-
- ${volumeMount}
|
|
501
|
+
- ${volumeMount}${stateVolMount}
|
|
492
502
|
- openclaw-plugins:/home/node/project/.openclaw/npm${extVolMount}
|
|
493
503
|
ports:
|
|
494
504
|
- "127.0.0.1:${gatewayPort}:${gatewayPort}"
|
|
@@ -515,7 +525,7 @@ ${indentBlock(docker9RouterEntrypointScript, 8)}
|
|
|
515
525
|
|
|
516
526
|
volumes:
|
|
517
527
|
9router-data:
|
|
518
|
-
openclaw-plugins:${extVolDecl}`;
|
|
528
|
+
openclaw-plugins:${extVolDecl}${stateVolDecl}`;
|
|
519
529
|
} else if (isLocal) {
|
|
520
530
|
const ollamaModelTag = String(selectedModel || 'ollama/gemma4:e2b').replace('ollama/', '');
|
|
521
531
|
compose = `name: ${singleComposeName}
|
|
@@ -531,7 +541,7 @@ ${appEnvironmentBlock} depends_on:
|
|
|
531
541
|
${extraHostsBlock}\n ports:
|
|
532
542
|
- "127.0.0.1:${gatewayPort}:${gatewayPort}"
|
|
533
543
|
volumes:
|
|
534
|
-
- ${volumeMount}
|
|
544
|
+
- ${volumeMount}${stateVolMount}
|
|
535
545
|
|
|
536
546
|
ollama:
|
|
537
547
|
image: ollama/ollama:latest
|
|
@@ -558,7 +568,7 @@ ${extraHostsBlock}\n ports:
|
|
|
558
568
|
start_period: 30s
|
|
559
569
|
|
|
560
570
|
volumes:
|
|
561
|
-
ollama-data
|
|
571
|
+
ollama-data:${stateVolDecl}`;
|
|
562
572
|
} else {
|
|
563
573
|
compose = `name: ${singleComposeName}
|
|
564
574
|
services:
|
|
@@ -569,9 +579,9 @@ services:
|
|
|
569
579
|
env_file:
|
|
570
580
|
- ../../.env
|
|
571
581
|
${appEnvironmentBlock}${plainSingleExtraHosts ? `${extraHostsBlock}\n` : ''} volumes:
|
|
572
|
-
- ${volumeMount}
|
|
582
|
+
- ${volumeMount}${stateVolMount}
|
|
573
583
|
ports:
|
|
574
|
-
- "127.0.0.1:${gatewayPort}:${gatewayPort}"`;
|
|
584
|
+
- "127.0.0.1:${gatewayPort}:${gatewayPort}"${stateVolBlock}`;
|
|
575
585
|
}
|
|
576
586
|
|
|
577
587
|
return {
|