{
  "schemaVersion": "1.0",
  "item": {
    "slug": "synology-backup",
    "name": "Synology Backup",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/pfrederiksen/synology-backup",
    "canonicalUrl": "https://clawhub.ai/pfrederiksen/synology-backup",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/synology-backup",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=synology-backup",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/backup.sh",
      "scripts/restore.sh",
      "scripts/status.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/synology-backup"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/synology-backup",
    "agentPageUrl": "https://openagent3.xyz/skills/synology-backup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/synology-backup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/synology-backup/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Synology Backup",
        "body": "Backup OpenClaw data to a Synology NAS over SMB. Designed for secure, automated daily snapshots with configurable retention."
      },
      {
        "title": "1. Network Connectivity",
        "body": "For VPS-to-NAS backups, use Tailscale for secure connectivity without exposing SMB to the internet:\n\nInstall Tailscale on the Synology (Package Center → search \"Tailscale\")\nInstall Tailscale on the VPS — see Tailscale's official install guide for your platform\nJoin both to the same tailnet\nUse the Synology's Tailscale IP in config\n\nFor local network setups, use the NAS local IP directly."
      },
      {
        "title": "2. Synology Preparation",
        "body": "Create a dedicated user on the Synology (e.g., openclaw-backup) with minimal permissions\nCreate or choose a shared folder (e.g., backups)\nGrant the user read/write access to only that folder"
      },
      {
        "title": "3. Credentials File",
        "body": "Create an SMB credentials file with restricted permissions — never store credentials in config or scripts:\n\n# Create the file and set permissions (replace placeholders with your values)\ntouch ~/.openclaw/.smb-credentials\nchmod 600 ~/.openclaw/.smb-credentials\n# Edit the file and add two lines:\n#   username=<your-synology-user>\n#   password=<your-synology-password>\nnano ~/.openclaw/.smb-credentials"
      },
      {
        "title": "4. Configuration",
        "body": "Create ~/.openclaw/synology-backup.json:\n\n{\n  \"host\": \"100.x.x.x\",\n  \"share\": \"backups/openclaw\",\n  \"mountPoint\": \"/mnt/synology\",\n  \"credentialsFile\": \"~/.openclaw/.smb-credentials\",\n  \"smbVersion\": \"3.0\",\n  \"backupPaths\": [\n    \"~/.openclaw/workspace\",\n    \"~/.openclaw/openclaw.json\",\n    \"~/.openclaw/cron\",\n    \"~/.openclaw/agents\"\n  ],\n  \"includeSubAgentWorkspaces\": true,\n  \"retention\": 7,\n  \"schedule\": \"0 3 * * *\"\n}\n\nNote on sensitive files: The .env file (containing API keys) is not included in the default backup paths. If you want to back it up, add \"~/.openclaw/.env\" to backupPaths — but ensure your Synology share has restricted access and the dedicated user has minimal permissions.\n\nFieldDescriptionDefaulthostSynology IP (Tailscale or local)requiredshareSMB share pathrequiredmountPointLocal mount point/mnt/synologycredentialsFilePath to SMB credentials filerequiredsmbVersionSMB protocol version3.0backupPathsPaths to backupworkspace + configincludeSubAgentWorkspacesAuto-include workspace-* dirstrueretentionDays of snapshots to keep7scheduleCron expression (host timezone)0 3 * * *"
      },
      {
        "title": "5. Install Dependencies",
        "body": "apt-get install -y cifs-utils rsync"
      },
      {
        "title": "6. Mount Setup",
        "body": "For persistent mounts across reboots, add to /etc/fstab:\n\n//<host>/<share> /mnt/synology cifs credentials=<credentials-file>,vers=3.0,_netdev,nofail 0 0"
      },
      {
        "title": "Backup Now",
        "body": "scripts/backup.sh\n\nRuns an incremental backup. First run copies everything; subsequent runs only sync changes."
      },
      {
        "title": "Restore a Snapshot",
        "body": "scripts/restore.sh [date]\n\nRestores from a specific date's snapshot (e.g., 2026-02-20). Without a date, lists available snapshots."
      },
      {
        "title": "Check Status",
        "body": "scripts/status.sh\n\nShows last backup time, snapshot count, total size, and mount health."
      },
      {
        "title": "What Gets Backed Up",
        "body": "~/.openclaw/workspace/ — memory, SOUL, AGENTS, skills, all workspace files\n~/.openclaw/workspace-*/ — all sub-agent workspaces (if enabled)\n~/.openclaw/openclaw.json — main config\n~/.openclaw/cron/ — cron job definitions\n~/.openclaw/agents/ — agent configurations\n~/.openclaw/.env — opt-in only (contains API keys — add to backupPaths manually if desired)"
      },
      {
        "title": "Snapshot Structure",
        "body": "backups/\n├── 2026-02-20/\n│   ├── manifest.json\n│   ├── workspace/\n│   ├── workspace-email/\n│   ├── workspace-news/\n│   ├── agents/\n│   ├── cron/\n│   └── openclaw.json\n├── 2026-02-19/\n└── ..."
      },
      {
        "title": "Security Notes",
        "body": "Credentials: Always use a dedicated credentials file with restricted permissions (chmod 600). Never inline secrets in config files, scripts, or fstab.\nNetwork: Use Tailscale or a VPN for remote backups. Never expose SMB (port 445) to the public internet.\nSensitive data: The .env file contains API keys and is excluded from default backup paths. Only include it if your NAS share is properly secured with restricted user permissions.\nNAS user: Create a dedicated Synology user with access to only the backup share — not an admin account.\nRetention: Old snapshots are pruned by moving them to the Synology trash (if supported) or deleting them. Increase retention for critical environments."
      }
    ],
    "body": "Synology Backup\n\nBackup OpenClaw data to a Synology NAS over SMB. Designed for secure, automated daily snapshots with configurable retention.\n\nSetup\n1. Network Connectivity\n\nFor VPS-to-NAS backups, use Tailscale for secure connectivity without exposing SMB to the internet:\n\nInstall Tailscale on the Synology (Package Center → search \"Tailscale\")\nInstall Tailscale on the VPS — see Tailscale's official install guide for your platform\nJoin both to the same tailnet\nUse the Synology's Tailscale IP in config\n\nFor local network setups, use the NAS local IP directly.\n\n2. Synology Preparation\nCreate a dedicated user on the Synology (e.g., openclaw-backup) with minimal permissions\nCreate or choose a shared folder (e.g., backups)\nGrant the user read/write access to only that folder\n3. Credentials File\n\nCreate an SMB credentials file with restricted permissions — never store credentials in config or scripts:\n\n# Create the file and set permissions (replace placeholders with your values)\ntouch ~/.openclaw/.smb-credentials\nchmod 600 ~/.openclaw/.smb-credentials\n# Edit the file and add two lines:\n#   username=<your-synology-user>\n#   password=<your-synology-password>\nnano ~/.openclaw/.smb-credentials\n\n4. Configuration\n\nCreate ~/.openclaw/synology-backup.json:\n\n{\n  \"host\": \"100.x.x.x\",\n  \"share\": \"backups/openclaw\",\n  \"mountPoint\": \"/mnt/synology\",\n  \"credentialsFile\": \"~/.openclaw/.smb-credentials\",\n  \"smbVersion\": \"3.0\",\n  \"backupPaths\": [\n    \"~/.openclaw/workspace\",\n    \"~/.openclaw/openclaw.json\",\n    \"~/.openclaw/cron\",\n    \"~/.openclaw/agents\"\n  ],\n  \"includeSubAgentWorkspaces\": true,\n  \"retention\": 7,\n  \"schedule\": \"0 3 * * *\"\n}\n\n\nNote on sensitive files: The .env file (containing API keys) is not included in the default backup paths. If you want to back it up, add \"~/.openclaw/.env\" to backupPaths — but ensure your Synology share has restricted access and the dedicated user has minimal permissions.\n\nField\tDescription\tDefault\nhost\tSynology IP (Tailscale or local)\trequired\nshare\tSMB share path\trequired\nmountPoint\tLocal mount point\t/mnt/synology\ncredentialsFile\tPath to SMB credentials file\trequired\nsmbVersion\tSMB protocol version\t3.0\nbackupPaths\tPaths to backup\tworkspace + config\nincludeSubAgentWorkspaces\tAuto-include workspace-* dirs\ttrue\nretention\tDays of snapshots to keep\t7\nschedule\tCron expression (host timezone)\t0 3 * * *\n5. Install Dependencies\napt-get install -y cifs-utils rsync\n\n6. Mount Setup\n\nFor persistent mounts across reboots, add to /etc/fstab:\n\n//<host>/<share> /mnt/synology cifs credentials=<credentials-file>,vers=3.0,_netdev,nofail 0 0\n\nUsage\nBackup Now\nscripts/backup.sh\n\n\nRuns an incremental backup. First run copies everything; subsequent runs only sync changes.\n\nRestore a Snapshot\nscripts/restore.sh [date]\n\n\nRestores from a specific date's snapshot (e.g., 2026-02-20). Without a date, lists available snapshots.\n\nCheck Status\nscripts/status.sh\n\n\nShows last backup time, snapshot count, total size, and mount health.\n\nWhat Gets Backed Up\n~/.openclaw/workspace/ — memory, SOUL, AGENTS, skills, all workspace files\n~/.openclaw/workspace-*/ — all sub-agent workspaces (if enabled)\n~/.openclaw/openclaw.json — main config\n~/.openclaw/cron/ — cron job definitions\n~/.openclaw/agents/ — agent configurations\n~/.openclaw/.env — opt-in only (contains API keys — add to backupPaths manually if desired)\nSnapshot Structure\nbackups/\n├── 2026-02-20/\n│   ├── manifest.json\n│   ├── workspace/\n│   ├── workspace-email/\n│   ├── workspace-news/\n│   ├── agents/\n│   ├── cron/\n│   └── openclaw.json\n├── 2026-02-19/\n└── ...\n\nSecurity Notes\nCredentials: Always use a dedicated credentials file with restricted permissions (chmod 600). Never inline secrets in config files, scripts, or fstab.\nNetwork: Use Tailscale or a VPN for remote backups. Never expose SMB (port 445) to the public internet.\nSensitive data: The .env file contains API keys and is excluded from default backup paths. Only include it if your NAS share is properly secured with restricted user permissions.\nNAS user: Create a dedicated Synology user with access to only the backup share — not an admin account.\nRetention: Old snapshots are pruned by moving them to the Synology trash (if supported) or deleting them. Increase retention for critical environments."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/pfrederiksen/synology-backup",
    "publisherUrl": "https://clawhub.ai/pfrederiksen/synology-backup",
    "owner": "pfrederiksen",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/synology-backup",
    "downloadUrl": "https://openagent3.xyz/downloads/synology-backup",
    "agentUrl": "https://openagent3.xyz/skills/synology-backup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/synology-backup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/synology-backup/agent.md"
  }
}