checkId: check.storage.backup plugin: stellaops.doctor.storage severity: warn tags: [storage, backup, disaster-recovery]
Backup Directory Accessibility
This Doctor check helps operators confirm that Stella Ops can write to its configured backup location and that recent backups exist, so the platform can actually be recovered after data loss.
What It Checks
Verifies backup directory accessibility and recent backup presence. The check:
- Reads the backup path from
Backup:PathorStorage:BackupPathconfiguration. - Verifies the directory exists.
- Tests write access by creating and deleting a temp file.
- Scans for backup files (
.bak,.backup,.tar,.tar.gz,.tgz,.zip,.sql,.dump) in the top-level directory. - Warns if no backup files are found or if the most recent backup is older than 7 days.
- Fails if the directory exists but is not writable.
The check only runs when a backup path is configured. When gated self-healing is explicitly enabled, Doctor can offer the non-destructive heal.storage.backup-directory.create action to create the configured directory idempotently. Auto-execution remains off by default and is subject to the Doctor remediation gate.
Why It Matters
Backups are the last line of defense against data loss. An inaccessible backup directory, missing backups, or stale backups mean the system cannot recover from database corruption, hardware failure, or accidental deletion. The 7-day staleness threshold ensures backups are kept reasonably current.
Common Causes
- Backup directory not created yet
- Path misconfigured or remote mount not available
- Insufficient permissions (read-only mount, wrong ownership)
- Backup job never run or failing silently
- Backup schedule disabled
How to Fix
Docker Compose
environment:
Backup__Path: "/var/backups/stellaops"
volumes:
- backup-data:/var/backups/stellaops
# Create backup directory
docker exec <platform-container> mkdir -p /var/backups/stellaops
# Run initial backup
docker exec <platform-container> stella backup create --full
Bare Metal / systemd
# Create backup directory
mkdir -p /var/backups/stellaops
chmod 750 /var/backups/stellaops
# Run initial backup
stella backup create --full
# Set up a schedule
stella backup schedule create --interval daily
Kubernetes / Helm
backup:
enabled: true
path: "/var/backups/stellaops"
schedule: "0 3 * * *"
persistence:
enabled: true
size: 100Gi
Verification
stella doctor run --check check.storage.backup
Related Checks
check.storage.diskspace— verifies sufficient disk space is availablecheck.storage.evidencelocker— verifies evidence locker write access
