Backups run daily at 03:00 UTC via systemd timer and are stored in ~/backups/ on the VPS.
Make Targets
| |
make restore without EXECUTE=1 is always safe — it just lists available backups.
Backup Contents
Each archive (openclaw_backup_*.tar.gz) includes:
~/.openclaw/— full OpenClaw state (config, workspace, LLM history)
⚠️ Security Note: The SOPS age key is NOT included in backups. This prevents a stolen backup from being decrypted. You must keep your age key safe elsewhere (password manager, secure storage). Without it, secrets cannot be recovered.
Required: Age Key Backup
The age key at ~/.config/sops/age/keys.txt is NOT included in automatic backups. You must back it up separately:
| |
Restore Procedure
| |
With EXECUTE=1, the restore play:
- Validates the backup file and compose directory
- Stops containers
- Creates a safety backup of current state (including SOPS age key)
- Extracts the archive
- Validates critical files exist after extraction
- Pulls latest container images
- Restarts containers
- Waits for gateway health endpoint (30s timeout)
- Prints a summary with undo instructions
Undoing a Restore
If a restore goes wrong, use the safety backup created in step 3:
| |
The safety backup is stored at ~/backups/openclaw_pre_restore_*.tar.gz on the VPS.
Before Upgrading
Always back up before bumping the OpenClaw version:
| |