Backup & Recovery
Document: 30-backup-recovery.md
Version: 1.0.0
Purpose
This document defines the backup and disaster recovery standards used across all Rundown projects.
Backups protect applications and client data from accidental deletion, infrastructure failures, software defects, and operational mistakes. Recovery procedures ensure that services can be restored quickly and predictably when failures occur.
The objective is not simply to create backups, but to ensure reliable recovery.
Backup Philosophy
Backups exist to enable recovery.
A backup should never be considered successful until it has been verified through restoration testing.
Recovery capability is more important than backup frequency.
Responsibilities
The backup strategy owns:
-
Database backups
-
Media backups
-
Configuration backups
-
Recovery procedures
-
Backup verification
-
Restoration testing
Non-Responsibilities
Backups should not replace:
-
Version control
-
Deployment history
-
Monitoring
-
Security controls
-
Change management
Backups are a recovery mechanism, not a substitute for engineering discipline.
Backup Scope
Every production project should evaluate the following:
Database
Backup:
-
PostgreSQL
-
CMS content
-
User accounts
-
Orders
-
Application data
Database backups are mandatory.
Media
Backup:
-
Images
-
Videos
-
Documents
-
Client uploads
Media recovery should maintain references stored within the database.
Configuration
Backup:
-
Environment configuration
-
Docker Compose definitions
-
Deployment configuration
-
Infrastructure configuration
Configuration should be reproducible even if the server is lost.
Backup Frequency
Backup frequency should reflect business requirements.
Typical guidance:
-
Databases: Daily (or more frequently for high-transaction systems)
-
Media: Scheduled synchronization
-
Configuration: Version controlled with each change
The chosen schedule should balance operational risk with storage costs.
Retention Policy
Backup retention should follow a documented policy.
Typical considerations include:
-
Recovery requirements
-
Compliance obligations
-
Storage costs
-
Business continuity needs
Old backups should be removed according to policy rather than accumulated indefinitely.
Storage
Backups should be stored separately from the production server.
Production infrastructure should never be the only location containing recoverable data.
Where practical, backups should exist in geographically separate locations.
Restoration Testing
Recovery procedures should be tested periodically.
Testing should verify:
-
Backup integrity
-
Database restoration
-
Media restoration
-
Configuration recovery
-
Application startup
A backup that cannot be restored should be treated as a failed backup.
Recovery Objectives
Projects should define:
Recovery Time Objective (RTO)
The acceptable amount of time required to restore service.
Recovery Point Objective (RPO)
The acceptable amount of data loss measured in time.
Recovery objectives should reflect business requirements rather than technical preferences.
Disaster Recovery
Recovery procedures should document:
-
Backup locations
-
Restoration order
-
Infrastructure recreation
-
Environment configuration
-
Verification steps
Recovery documentation should allow another engineer to restore the application without relying on undocumented knowledge.
Security
Backups should:
-
Be encrypted where appropriate.
-
Restrict access.
-
Protect sensitive information.
-
Follow least-privilege access controls.
Backup credentials should never be stored within application source code.
Engineering Decision
Recovery-Focused Backup Strategy
Status: Accepted
Decision
Every Rundown production project must implement a documented backup strategy with verified restoration procedures.
Reasoning
A recovery-focused approach:
-
Improves operational resilience.
-
Reduces business risk.
-
Supports disaster recovery.
-
Increases client confidence.
-
Prevents false confidence created by unverified backups.
Backup Checklist
Before production launch, verify:
-
Database backups configured.
-
Media backups configured.
-
Configuration backed up.
-
Retention policy documented.
-
Backup storage isolated from production.
-
Restoration procedure documented.
-
Recovery test completed.
Summary
Backup and recovery protect Rundown applications against operational failures and unexpected events.
By treating successful restoration—not backup creation—as the primary objective, Rundown ensures that production systems remain recoverable, resilient, and capable of supporting long-term business continuity.
Related Documents
Related ADRs
- ADR-003: Documentation Information Architecture