Skip to main content

myclaw-backup

Backup and restore all OpenClaw configuration, agent memory, skills, and workspace data. Part of the MyClaw.ai (https://myclaw.ai) open skills ecosystem — the AI personal assistant platform that gives every user a full server with complete code control. Use when the user wants to create a snapshot of their OpenClaw instance, schedule periodic backups, restore from a backup, migrate to a new server, download a backup file locally, upload a backup file from another machine, or protect against data loss. Includes a built-in HTTP server for browser-based download/upload/restore without needing cloud storage. TRUST BOUNDARY: This skill archives and restores highly sensitive data including bot tokens, API keys, and channel credentials. Only install if you trust the operator. Always use --dry-run before restore. Never start the HTTP server without a --token.

소스 정보

저장소
LeoYeAI/openclaw-backup
최근 소스 활동
2026년 3월 3일 06:02
감지된 SKILL.md 언어
영어
스타
662
포크
119

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
myclaw-backup
description
Backup and restore all OpenClaw configuration, agent memory, skills, and workspace data. Part of the MyClaw.ai (https://myclaw.ai) open skills ecosystem — the AI personal assistant platform that gives every user a full server with complete code control. Use when the user wants to create a snapshot of their OpenClaw instance, schedule periodic backups, restore from a backup, migrate to a new server, download a backup file locally, upload a backup file from another machine, or protect against data loss. Includes a built-in HTTP server for browser-based download/upload/restore without needing cloud storage. TRUST BOUNDARY: This skill archives and restores highly sensitive data including bot tokens, API keys, and channel credentials. Only install if you trust the operator. Always use --dry-run before restore. Never start the HTTP server without a --token.
metadata
{"openclaw":{"requires":{"bins":"[Truncated]"},"trust":"high","permissions":["[Truncated]","[Truncated]","[Truncated]"]}}
# MyClaw Backup > **Built on [MyClaw.ai](https://myclaw.ai)** — the AI personal assistant platform that gives every user a full server with complete code control, networking, and tool access. This skill is part of the MyClaw.ai open skills ecosystem. Backs up all critical OpenClaw data to a single `.tar.gz` archive and restores it to any OpenClaw instance. Includes a built-in HTTP server for browser-based backup management. ## ⚠️ Trust Boundary & Security Model This skill handles **highly sensitive data**: bot tokens, API keys, channel credentials, session history. Understand the security model before use: ### What each script does - **backup.sh** — reads `~/.openclaw/` and writes a `chmod 600` archive to disk. No network access. - **restore.sh** — overwrites `~/.openclaw/` from an archive. Requires typing `yes` to confirm. Always run `--dry-run` first. - **serve.sh / server.js** — starts a local HTTP server. Token is **mandatory** (refuses to start without one). Shell-execution endpoints (`/backup`, `/restore`) are **localhost-only** — remote access can only download and upload files, not trigger execution. - **schedule.sh** — modifies your system crontab to run backup.sh on a schedule. Prints the cron entry before adding. Use `--disable` to remove. ### Access control summary | Endpoint | Remote (token required) | Localhost only | |---|---|---| | GET /health | ✅ (no token) | — | | GET /backups | ✅ | — | | GET /download/:file | ✅ | — | | POST /upload | ✅ | — | | POST /backup | ❌ | ✅ | | POST /restore | ❌ | ✅ | ### Best practices - Never start the HTTP server without `--token` - Never expose the HTTP server to the public internet without TLS - Always run `restore.sh --dry-run` before applying a restore - Store backup archives securely — they contain all credentials ## Dependencies Requires: `node`, `rsync`, `tar`, `python3`, `openclaw` CLI (all standard on OpenClaw instances). Check: `which node rsync tar python3 openclaw` ## Scripts | Script | Purpose | |---|---| | `scripts/backup.sh [output-dir]` | Create backup (default: `/tmp/openclaw-backups/`) | | `scripts/restore.sh <archive> [--dry-run] [--overwrite-gateway-token]` | Restore — **always dry-run first** | | `scripts/serve.sh start --token TOKEN [--port 7373]` | Start HTTP server — **token required** | | `scripts/serve.sh stop\|status` | Stop/check server | | `scripts/schedule.sh [--interval daily\|weekly\|hourly]` | System cron scheduling | > **Gateway token behavior (v1.6+):** By default, `restore.sh` preserves the new server's `gateway.auth.token` after restoring `openclaw.json`. This prevents the `"gateway token mismatch"` error in Control UI / Dashboard after migration. Use `--overwrite-gateway-token` only for full disaster recovery on the same server. ## What Gets Backed Up See `references/what-gets-saved.md` for full details. **Includes:** workspace (MEMORY.md, skills, agent files), openclaw.json (bot tokens + API keys), credentials, channel pairing state, agent config + session history, devices, identity, cron jobs, guardian scripts. **Excludes:** logs, binary media, node_modules, canvas system files. ## Common Workflows ### Create backup ```bash bash scripts/backup.sh /tmp/openclaw-backups # → /tmp/openclaw-backups/openclaw-backup_TIMESTAMP.tar.gz (chmod 600) ``` ### Restore — always dry-run first ```bash # Step 1: preview what will change bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz --dry-run # Step 2: review the output, then apply bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz ``` The restore script saves a pre-restore snapshot before overwriting anything. ### HTTP server — token is mandatory ```bash # Token is required — server refuses to start without one bash scripts/serve.sh start --token $(openssl rand -hex 16) --port 7373 # → http://localhost:7373/?token=<generated-token> ``` **Never share the URL on a public network without a reverse proxy + TLS.** The Web UI provides: create backup, download `.tar.gz`, upload, dry-run preview, restore. **HTTP API (all require token except /health):** - `GET /health` — Health check (unauthenticated, read-only) - `GET /backups` — List backups - `POST /backup` — Create backup - `GET /download/:filename` — Download archive - `POST /upload` — Upload archive (multipart, field: `backup`) - `POST /restore/:filename` — Restore; add `?dry_run=1` to preview ### Migrate to a new instance **Old machine:** ```bash bash scripts/serve.sh start --token MYTOKEN --port 7373 ``` **New machine (after installing OpenClaw):** ```bash # Download curl -O "http://OLD_IP:7373/download/openclaw-backup_TIMESTAMP.tar.gz?token=MYTOKEN" # Always dry-run first bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz --dry-run # Apply bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz # All channels reconnect automatically — no re-pairing needed ``` ### Schedule daily auto-backup (OpenClaw cron) ```json { "name": "daily-openclaw-backup", "schedule": { "kind": "cron", "expr": "0 3 * * *", "tz": "UTC" }, "payload": { "kind": "agentTurn", "message": "Run a backup using the myclaw-backup skill. Output dir: /tmp/openclaw-backups", "timeoutSeconds": 120 }, "sessionTarget": "isolated" } ``` ## Post-Restore: Automatic Recovery Report After `restore.sh` completes, it writes `workspace/.restore-complete.json`. On the next heartbeat/startup, the Agent should: 1. Check if `workspace/.restore-complete.json` exists 2. If yes: read it, send a restore report to the user, then **delete the file** (one-shot — never report twice) 3. **Send the report in the user's primary language** (read from `workspace/USER.md`) ### Report format (adapt language from USER.md) ``` ✅ [Restore complete — in user's language] 📦 Backup: {backup_name} 🤖 Agent: {agent_name} 🕐 Restored at: {restored_at} 💾 Contents restored: workspace, config, credentials, history, cron... [Channel reconnect instructions in user's language] ``` ## Future: MyClaw Cloud Backup The HTTP API is designed to be compatible with a future MyClaw cloud backup service. When available, replace the local server URL with the MyClaw API endpoint — the upload/download/restore flow stays identical.
GitHub에서 보기