diff --git a/i18n/en.json b/i18n/en.json
index 5e073559ac..5ab56a7a0f 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -1466,6 +1466,7 @@
"maintenance_end_error": "Failed to end maintenance mode.",
"maintenance_logged_in_as": "Currently logged in as {user}",
"maintenance_restore_from_backup": "Restore From Backup",
+ "maintenance_restore_latest_backup_description": "We'll restore your database from the most recent backup. You can also pick a different one.",
"maintenance_restore_library": "Restore Your Library",
"maintenance_restore_library_confirm": "If this looks correct, continue to restoring a backup!",
"maintenance_restore_library_description": "Restoring Database",
@@ -1478,6 +1479,10 @@
"maintenance_restore_library_hint_regenerate_later": "You can regenerate these later in settings",
"maintenance_restore_library_hint_storage_template_missing_files": "Using storage template? You may be missing files",
"maintenance_restore_library_loading": "Loading integrity checks and heuristics…",
+ "maintenance_restore_loading_backups": "Loading backups…",
+ "maintenance_restore_no_backups": "There are no database backups.",
+ "maintenance_restore_select_another": "Select another backup",
+ "maintenance_restore_upload_backup": "Upload a backup",
"maintenance_task_backup": "Creating a backup of the existing database…",
"maintenance_task_migrations": "Running database migrations…",
"maintenance_task_restore": "Restoring the chosen backup…",
diff --git a/web/src/lib/components/maintenance/MaintenanceBackupCard.svelte b/web/src/lib/components/maintenance/MaintenanceBackupCard.svelte
new file mode 100644
index 0000000000..c678c6a32f
--- /dev/null
+++ b/web/src/lib/components/maintenance/MaintenanceBackupCard.svelte
@@ -0,0 +1,119 @@
+
+
+
+
+
+