Backups & restore
Protect the database, encryption key, and media separately.
Create and verify a backup
- Open Manage Server → Maintenance → Backups.
- Choose Back up now, then Verify.
- Copy the database backup and its manifest off the host.
- Keep a protected copy of
app-data/totp-keyand back up managed media separately.
Automatic daily backups retain the newest seven; pre-upgrade backups retain the newest three. A database backup is not a media backup.
Backup checklist
| Keep | Why |
|---|---|
app-data/backups/ | Consistent database snapshots and verification manifests. |
app-data/totp-key | Authenticator secrets and encrypted personal playback sessions. |
app-data/library/, app-data/books/, managed roots | The actual media files. |
app-data/music-file-backups/ | Original files retained by optional music tag writeback. |
| Compose files and protected configuration | Mount paths, environment settings, and connection details. |
Restore offline
Use the exact backup filename, with its matching manifest in the backups directory. Stop the server before restoring.
shell
docker compose down
docker compose run --rm --no-deps lumina python -m app.restore /app/backend/.data/backups/lumina-<timestamp>-manual.db
docker compose up -d --no-build luminaThe restore tool verifies integrity, revokes sessions and unused invitation/reset links, and retains the previous database as app.db.pre-restore-<timestamp>.
After restoring
- Mount media at the same container paths.
- Restore the encryption key before relying on two-step verification or personal YouTube sessions.
- Sign in again; re-enter omitted AI, metadata, and integration credentials and test connections.
- Verify playback and household access before reopening remote access.
Applies to Lumina 0.4.0. Source: operator guide