Home server backup and recovery checklist · Updated 2026-07-05

Home Server Backup & Recovery Checklist: Config, Databases, App Data, Media Libraries, Secrets, Upgrades, and Restore Drills

A practical backup and disaster-recovery checklist for CasaOS, Umbrel, Nextcloud, YunoHost, RomM, and other home-server stacks.

A home server backup is not one folder and recovery is not reinstalling the dashboard. Real self-hosted systems combine platform configuration, app manifests, databases, user files, media libraries, permissions, secrets, schedulers, and external integrations.

This checklist separates irreplaceable data from reproducible software, defines restore order, requires off-device copies and retention, and treats clean-machine restore drills as the real proof of backup quality.

RepoDaily verdict

Do not call a home server backed up until a clean machine can restore one representative service with users, configuration, database state, files, permissions, scheduled jobs, and external references intact. Keep at least one copy outside the server and treat unsupported downgrade paths as restore problems, not rollback buttons.

Quick matrix

Asset classExamplesBackup ruleRestore proof
System configurationNetwork, mounts, domains, reverse proxyExport or document separately from app dataFresh host reaches the same services without ad hoc reconstruction
App configurationCompose, manifests, config directoriesVersion with secrets separatedApp starts with expected paths, ports, and integrations
DatabaseSQLite, MariaDB, PostgreSQLUse app-consistent dump or supported snapshotSchema loads and app passes integrity checks
User dataFiles, photos, uploadsBack up authoritative data plus metadata dependenciesUsers, shares, and file references behave correctly
Media libraryROMs, videos, artworkSeparate irreplaceable media from regenerable cachesLibrary rescans without losing manual curation
Identity and permissionsUsers, groups, ACLs, sharing rulesInclude identity and permission metadataNormal users retain correct access and no extra privilege
SecretsAPI keys, app secrets, TLS keys, backup keysEncrypt and keep recovery path separateService can reconnect without stale credentials
SchedulersCron, background jobs, notificationsInventory job definitions and dependenciesJobs resume once without duplicate side effects
External referencesDNS, OAuth, object storage, SMTPDocument IDs, endpoints, and ownersRestored service reconnects or fails with clear remediation
Backup catalogSnapshots, archives, DB dumpsKeep inventory and retention policyOperator can choose the correct restore point quickly

Backup and recovery readiness scorecard

Score recoverability, not backup file count.

Control0 points1 point2 pointsOwner question
CoverageFiles onlyMost app dataConfig + DB + data + identity + jobs + external refs mappedWhat would still be missing?
Off-device copySame diskSecond local diskSeparate device/location or cloud plus tested credentialsWhat survives total device loss?
ConsistencyLive copy with no planManual service stopDocumented app-consistent dump/snapshot processCan writes race with backup?
Encryption and keysSensitive archive unencryptedEncrypted backupEncrypted backup plus separately recoverable keyCan restore proceed without the failed server?
RetentionLatest onlySeveral copiesRisk-based daily/weekly/monthly historyHow far back can corruption be escaped?
Restore orderUnknownOperator memoryWritten dependency order with health checksWhich service comes first and why?
Restore drillNeverPartial file restoreClean-host full-service recovery exercisedWhen was recovery last proven?
Upgrade rollbackHopeSnapshot onlyPre-upgrade backup + compatibility plan + tested restore pathCan schema migration be recovered?

60-minute home server recovery drill

A fast proof that one important service can be rebuilt from current backup material.

0–10 min: choose service and recovery point

Identify exact config, DB, data, identity, secrets, and version needed.

Success checkRestore set is explicit before touching backups.

10–20 min: verify independence

Confirm backup and decryption path remain available if the primary server disappears.

Success checkNo critical restore dependency exists only on failed host.

20–35 min: restore cleanly

Install compatible base and restore DB/config/data in documented order while staying non-public.

Success checkApplication starts without improvising paths or credentials.

35–45 min: test users

Login as admin and normal user; inspect files/media, permissions, shares, search, and one write.

Success checkOwnership and access behavior match expectations.

45–55 min: test jobs and integrations

Run a background job, notification, metadata refresh, or scheduled workflow once.

Success checkJobs resume without duplicates or stale references.

55–60 min: record gaps

Capture elapsed time, missing files, manual commands, stale docs, and data-loss window.

Success checkRunbook and backup coverage improve.

Home server backup and recovery flow

  1. Inventory every service and classify each asset as irreplaceable data, reconstructable configuration, database state, identity/permissions, secrets, cache, or disposable runtime state.
  2. Write the minimum restore set per app. Collaboration clouds may require config, database, and data directory together; media services need the library plus database and curation state; multi-app platforms also need platform-level users and domains.
  3. Choose a consistency method per data store: service-aware export, database dump, maintenance mode, application backup command, filesystem snapshot, or coordinated service stop.
  4. Keep backup storage independent from the service host, with retained history that protects against disk failure, theft, accidental deletion, ransomware, and bad updates.
  5. Protect backup encryption keys separately and document how a replacement operator retrieves them without relying on the failed machine.
  6. Define restore order: base host and mounts, platform configuration, databases, app config, user data, identity/permissions, jobs, then external integrations and public exposure.
  7. Restore first into an isolated environment and verify ownership, shares, database health, versions, paths, jobs, notifications, and external connectors before reopening access.
  8. Run recurring clean-host drills and record recovery time, missing steps, manual actions, and data-loss window.

Scenario table

ScenarioBackup emphasisRecovery trap
CasaOS home serverPlatform config, app config, volumes, user files, drive mount mapDashboard returns but app paths and mounts differ
Umbrel applianceOS/app config, persistent app data, identity-sensitive data, storage mapAssuming every app has one universal backup path
Nextcloud collaboration cloudConfig, data directory, database, custom apps/themes where usedRestoring only files without matching DB/config state
YunoHost multi-app serverSystem config, users/domains, app backups, mail/data, restore scriptsArchive exists but destination packaging cannot restore cleanly
RomM media libraryROM/media library, DB, config, users/sharing, manual metadataBacking up only DB or only the authoritative library
Bad application upgradePre-upgrade consistent backup and version compatibility notesTrying unsupported downgrade against migrated DB
Ransomware or compromised adminHistorical independent copies and clean-room recoveryRestoring poisoned config or attacker credentials

Backup and recovery risks

Single-disk backup

A backup folder on the same physical disk does not protect against device failure, theft, corruption, or destructive admin access.

Files without database

Many apps keep ownership, shares, metadata, and jobs in databases. User files alone may not reconstruct a working service.

Database without files

A perfect dump is useless if uploads, media, object storage, or external mount targets are missing.

Untested archive

Checksums prove bytes were copied, not that the app can restore, migrate, authenticate users, and resume jobs.

Backup key dependency

Encrypted backups become unrecoverable when the only decryption key is on the failed server.

Public restore too early

Do not expose a half-restored service while credentials, migrations, permissions, and updates remain unresolved.

Schema downgrade assumption

Some apps do not support downgrading after schema migration; recovery may require fresh install plus restore.

Backup and recovery patterns

Service manifest

Record version, config paths, data paths, DB, secret refs, mounts, ports, dependencies, backup method, and restore order for every app.

Independent retained copies

Keep multiple copies across independent storage and at least one separate location, adjusted to data value and recovery objectives.

DB dump plus filesystem snapshot

Coordinate database export and referenced files so metadata and content belong to the same recovery point.

Pre-upgrade recovery point

Before major upgrades, create a verified restore point and record exact source and destination versions.

Clean-host drill

Restore into a blank VM, spare device, or isolated machine rather than validating only in-place rollback commands.

Recovery evidence pack

Keep restore logs, timings, checksums, health checks, user-access tests, and manual fixes discovered during drills.

FAQ

Short answers for home-server operators.

Is a full disk image enough?

Useful, but not sufficient alone. App-aware exports and documented restore steps make selective restore and clean-room recovery easier.

What is the minimum for Nextcloud?

Treat configuration, database, and data directory as one recovery set; preserve custom apps and themes when used.

Should media and metadata be backed up together?

Protect authoritative media first, then preserve the database and manual curation needed to reconstruct the same library experience.

How often should restore be tested?

After major architecture changes and on a recurring cadence that matches data value and acceptable recovery risk.

Can snapshots replace backups?

Snapshots help with fast rollback but may share the same failure domain. Independent retained copies are still needed.

What should happen before a major upgrade?

Create an app-consistent recovery point, record versions, verify compatibility, and know whether recovery means rollback, fresh install plus restore, or forward fix.

Related radar

Self-hosted Apps & Local Infrastructure Radar

Related RepoDaily briefs

Sources

  1. Nextcloud Backup documentation
  2. Nextcloud Restore documentation
  3. Nextcloud Upgrade documentation
  4. YunoHost Backups documentation
  5. YunoHost Backup strategies
  6. YunoHost Filesystem snapshot documentation
  7. CasaOS official repository
  8. Umbrel official repository
  9. RomM official repository
  10. RepoDaily CasaOS vs Umbrel vs Nextcloud vs YunoHost

Feedback

Did this page help you make a decision?

Anonymous feedback helps RepoDaily improve what is actually useful.

Report outdated or missing evidence