System Backup (Meta-Backup)
Backup your DBackup configuration for disaster recovery.
Overview
System Backup (also called Meta-Backup) exports your entire DBackup configuration:
- Database sources
- Storage destinations
- Backup jobs
- Users and groups
- Encryption profiles
- Notifications
- System settings
This enables complete disaster recovery without losing your setup.
What's Included
| Data | Included | Notes |
|---|---|---|
| Adapter Configs | ✅ | Sources, destinations, notifications |
| Jobs | ✅ | All schedules and settings |
| Users | ✅ | Accounts and group assignments |
| Groups | ✅ | RBAC permissions |
| Encryption Profiles | ✅ | Keys (encrypted) |
| SSO Providers | ✅ | OIDC configurations |
| System Settings | ✅ | Concurrency, UI preferences |
Not Included
| Data | Reason |
|---|---|
| Actual backups | Too large, stored separately |
| Execution history | Transient data |
| Temp files | Not needed |
Configuration
Automated System Backup
- Go to Settings → System Config
- Enable Automated Backup
- Configure:
- Destination: Storage adapter to use
- Encryption Profile: Required for secrets
- Retention: Number of backups to keep
Manual Export
- Go to Settings → System Config
- Click Export Configuration
- Choose options:
- Include secrets (requires encryption)
- Download file
Security
Encryption Required
When exporting secrets (passwords, API keys), encryption is mandatory:
- Create/select an Encryption Profile
- System encrypts export with profile key
- Store the key separately!
Without Secrets
Export without secrets includes:
- All structure and settings
- Placeholder for credentials
- Useful for sharing configs
Backup Process
Automated Flow
1. Scheduled trigger (System Task)
2. Data Collection
└── Fetch all configs from DB
└── Decrypt system-encrypted fields
3. Security Check
└── If secrets included: require encryption
└── If no encryption: exclude secrets
4. Processing Pipeline
└── JSON serialization
└── Gzip compression
└── Encryption (if profile selected)
5. Upload
└── Send to destination
└── Create metadata file
6. Retention
└── Delete old config backupsFile Format
config_backup_2024-01-15T12-00-00.json.gz.enc
config_backup_2024-01-15T12-00-00.json.gz.enc.meta.jsonRestore Process
From UI (Online Restore)
When you have working DBackup instance:
- Go to Settings → System Config
- Click Restore from Storage
- Select backup file
- Configure options:
- Overwrite vs Merge
- What to restore
- Execute restore
Offline Restore (Disaster Recovery)
When starting fresh:
- Install new DBackup instance
- Go to Settings → System Config
- Click Offline Restore
- Upload backup file (+ meta.json if encrypted)
- If encrypted:
- Import encryption key first, OR
- Provide key during restore
- Execute restore
- All configs restored
Restore Strategy
Overwrite Mode
- Replaces existing entries
- Updates if ID matches
- Creates if new
- Best for: disaster recovery
Merge Mode (if available)
- Keeps existing entries
- Adds only new items
- Best for: importing partial configs
Disaster Recovery Procedure
Preparation (Before Disaster)
- ✅ Enable automated config backup
- ✅ Use encrypted backup (with secrets)
- ✅ Store encryption key separately:
- Password manager
- Recovery Kit
- Secure offline storage
- ✅ Store
ENCRYPTION_KEYenv var:- Password manager
- Infrastructure secrets
Recovery Steps
Deploy fresh DBackup:
bashdocker-compose up -dSet same
ENCRYPTION_KEY(or new one)First admin account: Sign up
Import encryption profile key:
- Settings → Vault → Import Key
Offline restore:
- Settings → System Config → Offline Restore
- Upload backup file
- System decrypts with imported key
Re-encrypt secrets:
- If ENCRYPTION_KEY changed
- System re-encrypts with new key
Verify:
- Check all sources connect
- Test backup jobs
- Verify notifications
Best Practices
Regular Backups
- Enable automated backup
- Set reasonable retention (7-30)
- Monitor for failures
Key Management
Store separately from config backup:
ENCRYPTION_KEY→ Password manager- Encryption Profile Key → Recovery Kit
- Don't store both together!
Testing Recovery
Periodically test:
- Export config
- Deploy test instance
- Restore config
- Verify functionality
Documentation
Document your setup:
ENCRYPTION_KEYlocation- Profile key locations
- Recovery procedure
Troubleshooting
Cannot Decrypt Config
Causes:
- Wrong encryption key
- Profile deleted
- Metadata missing
Solutions:
- Import original profile key
- Check meta.json exists
- Use Recovery Kit
Secrets Not Restored
Cause: Exported without secrets
Solutions:
- Re-export with "Include Secrets"
- Or manually re-enter credentials
ID Conflicts
Cause: Same IDs in backup and existing
Solution: Choose "Overwrite" mode
File Format Reference
JSON Structure
json
{
"version": "1.0",
"timestamp": "2024-01-15T12:00:00Z",
"data": {
"adapters": [...],
"jobs": [...],
"users": [...],
"groups": [...],
"encryptionProfiles": [...],
"ssoProviders": [...],
"settings": {...}
}
}Metadata
json
{
"encryption": {
"enabled": true,
"profileId": "uuid",
"iv": "hex",
"authTag": "hex"
},
"compression": "GZIP",
"includesSecrets": true,
"exportedAt": "2024-01-15T12:00:00Z"
}Next Steps
- Encryption Vault - Manage encryption keys
- Recovery Kit - Emergency decryption
- Installation - Fresh deployment