217 lines
8.5 KiB
Markdown
217 lines
8.5 KiB
Markdown
---
|
|
summary: "Cập nhật Moltbot an toàn (cài đặt global hoặc từ nguồn), kèm theo chiến lược khôi phục (rollback)"
|
|
read_when:
|
|
- Cập nhật Moltbot
|
|
- Gặp lỗi sau khi cập nhật
|
|
---
|
|
|
|
# Cập nhật (Updating)
|
|
|
|
Moltbot đang phát triển rất nhanh (giai đoạn tiền “1.0”). Hãy coi các bản cập nhật như việc vận hành hạ tầng: cập nhật → chạy kiểm tra → khởi động lại (hoặc dùng `moltbot update`, lệnh này tự khởi động lại giúp bạn) → xác minh.
|
|
|
|
## Khuyên dùng: Chạy lại kịch bản cài đặt (nâng cấp tại chỗ)
|
|
|
|
Con đường cập nhật **được ưu tiên** là chạy lại trình cài đặt từ website. Nó sẽ tự động phát hiện bản cài đặt cũ, nâng cấp tại chỗ và chạy `moltbot doctor` khi cần thiết.
|
|
|
|
```bash
|
|
curl -fsSL https://molt.bot/install.sh | bash
|
|
```
|
|
|
|
Ghi chú:
|
|
- Thêm cờ `--no-onboard` nếu bạn không muốn chạy lại trình hướng dẫn thiết lập ban đầu.
|
|
- Đối với **cài đặt từ nguồn (source install)**, hãy dùng:
|
|
```bash
|
|
curl -fsSL https://molt.bot/install.sh | bash -s -- --install-method git --no-onboard
|
|
```
|
|
Trình cài đặt sẽ chạy `git pull --rebase` **chỉ khi** thư mục làm việc của bạn sạch sẽ (không có thay đổi chưa commit).
|
|
- Đối với **cài đặt global**, kịch bản này sử dụng lệnh `npm install -g moltbot@latest`.
|
|
- Ghi chú về tính tương thích: lệnh `moltbot` vẫn được duy trì như một lớp tương thích.
|
|
|
|
## Trước khi bạn cập nhật
|
|
|
|
- Hãy biết rõ bạn đã cài đặt theo cách nào: **global** (npm/pnpm) hay **từ mã nguồn** (git clone).
|
|
- Hãy biết rõ Gateway đang chạy thế nào: **trong terminal hiện nền** hay **dưới dạng dịch vụ (service)** (launchd/systemd).
|
|
- Sao lưu cấu hình cá nhân:
|
|
- Cấu hình: `~/.clawdbot/moltbot.json`
|
|
- Thông tin đăng nhập: `~/.clawdbot/credentials/`
|
|
- Không gian làm việc (Workspace): `~/clawd`
|
|
|
|
## Cập nhật (Cài đặt Global)
|
|
|
|
Cập nhật bản global (chọn một):
|
|
|
|
```bash
|
|
npm i -g moltbot@latest
|
|
```
|
|
|
|
```bash
|
|
pnpm add -g moltbot@latest
|
|
```
|
|
Chúng tôi **không** khuyên dùng Bun cho runtime của Gateway (do các lỗi với WhatsApp/Telegram).
|
|
|
|
Để chuyển đổi giữa các kênh cập nhật (áp dụng cho cả bản cài qua git và npm):
|
|
|
|
```bash
|
|
moltbot update --channel beta
|
|
moltbot update --channel dev
|
|
moltbot update --channel stable
|
|
```
|
|
|
|
Sử dụng cờ `--tag <tag|phiên_bản>` nếu bạn muốn cài đặt một thẻ hoặc phiên bản cụ thể.
|
|
|
|
Xem [Các kênh phát triển](./development-channels.vi.md) để biết ý nghĩa các kênh và ghi chú phát hành.
|
|
|
|
Ghi chú: Với bản cài qua npm, gateway sẽ thông báo gợi ý cập nhật khi khởi động (kiểm tra dựa trên thẻ kênh hiện tại). Tắt tính năng này qua: `update.checkOnStart: false`.
|
|
|
|
Sau đó chạy:
|
|
|
|
```bash
|
|
moltbot doctor
|
|
moltbot gateway restart
|
|
moltbot health
|
|
```
|
|
|
|
Ghi chú:
|
|
- Nếu Gateway chạy như một dịch vụ, lệnh `moltbot gateway restart` được ưu tiên hơn việc tắt PID thủ công.
|
|
- Nếu bạn muốn cố định ở một phiên bản cụ thể, hãy xem phần “Khôi phục / Cố định phiên bản” bên dưới.
|
|
|
|
## Cập nhật (Dùng lệnh `moltbot update`)
|
|
|
|
Đối với **cài đặt từ nguồn** (git checkout), hãy ưu tiên dùng:
|
|
|
|
```bash
|
|
moltbot update
|
|
```
|
|
|
|
Lệnh này thực hiện quy trình cập nhật an toàn:
|
|
- Yêu cầu thư mục làm việc (worktree) sạch sẽ.
|
|
- Chuyển sang kênh đã chọn (thẻ hoặc nhánh).
|
|
- Fetch + rebase với nhánh thượng nguồn (upstream) đã cấu hình.
|
|
- Cài đặt dependencies, build dự án, build Control UI, và chạy `moltbot doctor`.
|
|
- Mặc định khởi động lại gateway (dùng `--no-restart` để bỏ qua).
|
|
|
|
Nếu bạn cài qua **npm/pnpm** (không có metadata của git), `moltbot update` sẽ cố gắng cập nhật qua trình quản lý gói của bạn. Nếu không phát hiện được, hãy dùng cách “Cập nhật (Cài đặt Global)” ở trên.
|
|
|
|
## Cập nhật (Qua Control UI / RPC)
|
|
|
|
Giao diện bảng điều khiển (Control UI) có nút **Update & Restart** (Cập nhật & Khởi động lại). Nó sẽ:
|
|
1) Thực hiện quy trình cập nhật nguồn tương tự như `moltbot update` (chỉ dành cho bản git checkout).
|
|
2) Ghi lại báo cáo kết quả cập nhật.
|
|
3) Khởi động lại gateway và thông báo kết quả cho phiên làm việc cuối cùng.
|
|
|
|
Nếu quá trình rebase thất bại, gateway sẽ hủy bỏ và khởi động lại mà không áp dụng bản cập nhật.
|
|
|
|
## Cập nhật (Từ mã nguồn)
|
|
|
|
Từ thư mục repo đã clone:
|
|
|
|
Cách khuyên dùng:
|
|
|
|
```bash
|
|
moltbot update
|
|
```
|
|
|
|
Cách thủ công (tương đương):
|
|
|
|
```bash
|
|
git pull
|
|
pnpm install
|
|
pnpm build
|
|
pnpm ui:build # tự động cài deps cho UI lần đầu chạy
|
|
moltbot doctor
|
|
moltbot health
|
|
```
|
|
|
|
Ghi chú:
|
|
- `pnpm build` rất quan trọng khi bạn chạy file nhị phân `moltbot` đóng gói ([`moltbot.mjs`](https://github.com/moltbot/moltbot/blob/main/moltbot.mjs)) hoặc dùng Node chạy thư mục `dist/`.
|
|
- Nếu bạn chạy trực tiếp từ TypeScript (`pnpm moltbot ...`), việc rebuild thường là không cần thiết, nhưng **vẫn cần chạy config migration** → hãy chạy `doctor`.
|
|
- Việc chuyển đổi giữa cài đặt global và cài từ git rất đơn giản: cài đặt kiểu còn lại, sau đó chạy `moltbot doctor` để gateway service trỏ về bản cài mới nhất.
|
|
|
|
## Luôn chạy: `moltbot doctor`
|
|
|
|
Doctor là lệnh "cập nhật an toàn". Nó được thiết kế để thực hiện các việc: sửa lỗi + di chuyển cấu hình + cảnh báo rủi ro.
|
|
|
|
Ghi chú: nếu bạn đang dùng **bản cài từ nguồn** (git checkout), `moltbot doctor` sẽ đề xuất chạy `moltbot update` trước.
|
|
|
|
Những việc điển hình mà doctor thực hiện:
|
|
- Di chuyển các khóa cấu hình cũ hoặc vị trí lưu file cấu hình cũ.
|
|
- Kiểm tra chính sách DM và cảnh báo các thiết lập rủi ro.
|
|
- Kiểm tra sức khỏe Gateway và đề xuất khởi động lại nếu cần.
|
|
- Phát hiện và di chuyển các dịch vụ gateway cũ (launchd/systemd...) sang các dịch vụ Moltbot hiện tại.
|
|
- Trên Linux, đảm bảo tính năng systemd user lingering hoạt động (để Gateway không bị tắt khi bạn log out).
|
|
|
|
Chi tiết: [Doctor](../gateway/doctor.vi.md)
|
|
|
|
## Bật / Tắt / Khởi động lại Gateway
|
|
|
|
CLI (hoạt động trên mọi hệ điều hành):
|
|
|
|
```bash
|
|
moltbot gateway status
|
|
moltbot gateway stop
|
|
moltbot gateway restart
|
|
moltbot gateway --port 18789
|
|
moltbot logs --follow
|
|
```
|
|
|
|
Nếu bạn chạy dưới dạng dịch vụ:
|
|
- macOS launchd: `launchctl kickstart -k gui/$UID/bot.molt.gateway`
|
|
- Linux systemd user service: `systemctl --user restart moltbot-gateway[-<profile>].service`
|
|
- Windows (WSL2): `systemctl --user restart moltbot-gateway[-<profile>].service`
|
|
- Lưu ý: Các lệnh dịch vụ chỉ hoạt động nếu dịch vụ đã được cài đặt; nếu chưa, hãy chạy `moltbot gateway install`.
|
|
|
|
Sổ tay hướng dẫn + tên các service: [Sổ tay Gateway](../gateway/index.vi.md)
|
|
|
|
## Khôi phục / Cố định phiên bản (Khi gặp lỗi)
|
|
|
|
### Cố định (Cài đặt Global)
|
|
|
|
Cài đặt một phiên bản cụ thể đã biết là hoạt động tốt (thay `<version>` bằng phiên bản đó):
|
|
|
|
```bash
|
|
npm i -g moltbot@<version>
|
|
```
|
|
|
|
```bash
|
|
pnpm add -g moltbot@<version>
|
|
```
|
|
|
|
Mẹo: để xem phiên bản hiện tại đã phát hành, chạy `npm view moltbot version`.
|
|
|
|
Sau đó khởi động lại và chạy lại doctor:
|
|
|
|
```bash
|
|
moltbot doctor
|
|
moltbot gateway restart
|
|
```
|
|
|
|
### Cố định (Từ nguồn) theo ngày
|
|
|
|
Chọn một commit theo ngày (Ví dụ: "trạng thái nhánh main vào ngày 01/01/2026"):
|
|
|
|
```bash
|
|
git fetch origin
|
|
git checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"
|
|
```
|
|
|
|
Sau đó cài lại deps + restart:
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm build
|
|
moltbot gateway restart
|
|
```
|
|
|
|
Nếu bạn muốn quay lại bản mới nhất sau này:
|
|
|
|
```bash
|
|
git checkout main
|
|
git pull
|
|
```
|
|
|
|
## Nếu bạn bị kẹt
|
|
|
|
- Hãy chạy `moltbot doctor` lần nữa và đọc kỹ kết quả (nó thường hướng dẫn cách sửa).
|
|
- Kiểm tra: [Khắc phục lỗi](../gateway/troubleshooting.vi.md)
|
|
- Hỏi trên Discord: https://channels.discord.gg/clawd
|