Getting Started
Restoring Kaya
Restore a complete Kaya backup without replacing the persistent encryption key.
Restore into an isolated test location first whenever possible. Use a backup from a compatible Kaya version and preserve its original data/.runtime.env.
Restore a cold backup
cd /path/to/kaya
docker compose down
mv data data.before-restore
mv uploads uploads.before-restore
tar --extract --gzip --file /safe/path/kaya-backup-YYYY-MM-DD-HHMMSS.tar.gz
docker compose pull
docker compose up -d
docker compose logs --tail=150 kaya
The entrypoint runs current additive SQLite migrations and normally creates data/kaya.db.pre-migration before changing an existing database.
Validate the restore
- Confirm
/healthzreturns successfully. - Sign in with a known Admin account.
- Check assets and uploads, audit logs, module settings and recent records.
- Test a stored encrypted setting without changing it.
- Unlock a Secret Vault and verify an attachment when applicable.
- Confirm Secure Send packages obey their stored expiry; restoring an older backup does not bypass expiry checks.
If encrypted values fail after restore, stop. Do not generate a new encryption key over the restored database. Locate the original .runtime.env or recover Secret Vault content from a portable .kayavault export.
