Scheduled snapshots of content, settings, and site config — optionally synced to cloud storage. Restore with one click.
Where it is
Settings → Backup (/admin/settings?tab=backup).
What gets backed up
- All documents (
content/*/.json) - Site config (
cms.config.ts) - Site settings (
_data/site-config.json) - Agent configs (
_data/agents/) - Brand voice + locale caches
- Team + invites (
_data/team.json) - Event log (last 500 entries)
- Generated schema (
webhouse-schema.json)
Not backed up (they live elsewhere):
- Uploaded media binaries — treat these as a separate backup problem (cloud sync your uploads/ dir)
- Secrets — redacted to
REDACTED_BY_BACKUPand re-entered on restore - Build output (
dist/,.next/)
Schedule
| Field | Recommended |
|---|---|
| Frequency | Daily |
| Time | Off-hours for your team (03:00 local works well) |
| Retention | 30 days — generous without bloating storage |
The scheduler runs in-process (instrumentation-node.ts); no external cron required. Uses the site's configured timezone.
Storage
Two options:
Local (default) — backups sit in _data/backups/YYYY-MM-DD/ as zip archives. Simple, fast, no external dependencies. Lose the disk and you lose the backups.
Cloud — choose one:
- Cloudflare R2 — S3-compatible, cheap egress. Set endpoint, access key, secret, bucket
- S3-compatible — any S3-compatible object store (AWS, MinIO, Backblaze B2)
- pCloud — via WebDAV. Useful for non-technical operators who already have pCloud
Cloud backups keep the local copy AND sync a copy to the remote. If the local disk dies, restore from the cloud via Import backup.
Manual backup
The Backup now button snapshots immediately. Takes 1–3 seconds for most sites. Useful before a risky deploy or a schema change.
Restore
Click any backup in the history list → Restore. The CMS:
- Creates a safety backup of the current state (tagged
pre-restore) - Extracts the chosen archive
- Writes content + settings + agents to disk
- Prompts you to re-enter redacted secrets
- Reloads the admin
Or use Import backup to restore a backup from a different site or environment.
Alerts
When a scheduled backup fails, the CMS fires an email alert to the notification recipients (Settings → Email) and pushes the build_failed topic to mobile. Silent failures would be bad, so this is on by default.
Related
- Backup feature overview — history and concepts
- Beam — portable single-file archive (different use case)
- Email settings — where backup-failure alerts go