[PR #13945] [MERGED] Add Full system backup feature #13776

Closed
opened 2026-02-07 07:19:00 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/13945
Author: @JPVenson
Created: 4/18/2025
Status: Merged
Merged: 5/19/2025
Merged by: @crobibero

Base: masterHead: feature/BackupSystem


📝 Commits (10+)

  • 9a95fc3 Add BackupService
  • 619eabf Create Backup implementation
  • d0a11fa Add Backup WebUI and self restore
  • f744e98 Improve backup api behavior
  • de81975 Applied review comments
  • 886db95 Add seperate Backup controller
  • 6167d32 Add backup options to control what gets stored in a backup
  • bf4c119 Add content dto to backup manifest dto
  • 6d0a692 Rename RestoreBackup
  • ffec5f4 utilise await using where possible

📊 Changes

21 files changed (+841 additions, -21 deletions)

View changed files

📝 Emby.Server.Implementations/AppBase/BaseApplicationPaths.cs (+3 -0)
📝 Emby.Server.Implementations/ApplicationHost.cs (+5 -0)
Jellyfin.Api/Controllers/BackupController.cs (+127 -0)
📝 Jellyfin.Api/Controllers/SystemController.cs (+0 -1)
Jellyfin.Server.Implementations/FullSystemBackup/BackupManifest.cs (+19 -0)
Jellyfin.Server.Implementations/FullSystemBackup/BackupOptions.cs (+13 -0)
Jellyfin.Server.Implementations/FullSystemBackup/BackupService.cs (+463 -0)
📝 Jellyfin.Server/Migrations/JellyfinMigrationService.cs (+27 -16)
📝 Jellyfin.Server/Program.cs (+13 -1)
📝 Jellyfin.Server/StartupOptions.cs (+6 -0)
📝 MediaBrowser.Common/Configuration/IApplicationPaths.cs (+6 -0)
📝 MediaBrowser.Controller/IServerApplicationHost.cs (+5 -0)
MediaBrowser.Controller/SystemBackupService/BackupManifestDto.cs (+34 -0)
MediaBrowser.Controller/SystemBackupService/BackupOptionsDto.cs (+24 -0)
MediaBrowser.Controller/SystemBackupService/BackupRestoreRequestDto.cs (+15 -0)
MediaBrowser.Controller/SystemBackupService/IBackupService.cs (+48 -0)
📝 src/Jellyfin.Database/Jellyfin.Database.Implementations/Entities/TrickplayInfo.cs (+0 -1)
📝 src/Jellyfin.Database/Jellyfin.Database.Implementations/Entities/User.cs (+0 -1)
📝 src/Jellyfin.Database/Jellyfin.Database.Implementations/IJellyfinDatabaseProvider.cs (+9 -0)
📝 src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs (+23 -1)

...and 1 more files

📄 Description

Add a full system backup service and webAPI to call it.
Add a new parameter for the application to restore a backup from an archive.

uses an zip archive to store config files and the database as json serialized tables.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/13945 **Author:** [@JPVenson](https://github.com/JPVenson) **Created:** 4/18/2025 **Status:** ✅ Merged **Merged:** 5/19/2025 **Merged by:** [@crobibero](https://github.com/crobibero) **Base:** `master` ← **Head:** `feature/BackupSystem` --- ### 📝 Commits (10+) - [`9a95fc3`](https://github.com/jellyfin/jellyfin/commit/9a95fc3b3a5a9510db11817381a1803bb36439b0) Add BackupService - [`619eabf`](https://github.com/jellyfin/jellyfin/commit/619eabf6ea5647d438b830ded7e3b2dd04bd961d) Create Backup implementation - [`d0a11fa`](https://github.com/jellyfin/jellyfin/commit/d0a11faa5da9e1e12d524332288ad5289e8044dc) Add Backup WebUI and self restore - [`f744e98`](https://github.com/jellyfin/jellyfin/commit/f744e9819b4a2601f8131eca7362d36a61f488d1) Improve backup api behavior - [`de81975`](https://github.com/jellyfin/jellyfin/commit/de81975fdf6daab0a43f5d5044d2d1406019701c) Applied review comments - [`886db95`](https://github.com/jellyfin/jellyfin/commit/886db95fb692f3089cd650f1e77d26c504c0ec5d) Add seperate Backup controller - [`6167d32`](https://github.com/jellyfin/jellyfin/commit/6167d32abce677e231c9b4c70764ffaecb382317) Add backup options to control what gets stored in a backup - [`bf4c119`](https://github.com/jellyfin/jellyfin/commit/bf4c119bdea766a091bed6100b650bb69e22ec68) Add content dto to backup manifest dto - [`6d0a692`](https://github.com/jellyfin/jellyfin/commit/6d0a692217c2dc806375ab7185fbeb09ba8a54e5) Rename RestoreBackup - [`ffec5f4`](https://github.com/jellyfin/jellyfin/commit/ffec5f41f627b0e9b716092f4e2e268f3513c681) utilise await using where possible ### 📊 Changes **21 files changed** (+841 additions, -21 deletions) <details> <summary>View changed files</summary> 📝 `Emby.Server.Implementations/AppBase/BaseApplicationPaths.cs` (+3 -0) 📝 `Emby.Server.Implementations/ApplicationHost.cs` (+5 -0) ➕ `Jellyfin.Api/Controllers/BackupController.cs` (+127 -0) 📝 `Jellyfin.Api/Controllers/SystemController.cs` (+0 -1) ➕ `Jellyfin.Server.Implementations/FullSystemBackup/BackupManifest.cs` (+19 -0) ➕ `Jellyfin.Server.Implementations/FullSystemBackup/BackupOptions.cs` (+13 -0) ➕ `Jellyfin.Server.Implementations/FullSystemBackup/BackupService.cs` (+463 -0) 📝 `Jellyfin.Server/Migrations/JellyfinMigrationService.cs` (+27 -16) 📝 `Jellyfin.Server/Program.cs` (+13 -1) 📝 `Jellyfin.Server/StartupOptions.cs` (+6 -0) 📝 `MediaBrowser.Common/Configuration/IApplicationPaths.cs` (+6 -0) 📝 `MediaBrowser.Controller/IServerApplicationHost.cs` (+5 -0) ➕ `MediaBrowser.Controller/SystemBackupService/BackupManifestDto.cs` (+34 -0) ➕ `MediaBrowser.Controller/SystemBackupService/BackupOptionsDto.cs` (+24 -0) ➕ `MediaBrowser.Controller/SystemBackupService/BackupRestoreRequestDto.cs` (+15 -0) ➕ `MediaBrowser.Controller/SystemBackupService/IBackupService.cs` (+48 -0) 📝 `src/Jellyfin.Database/Jellyfin.Database.Implementations/Entities/TrickplayInfo.cs` (+0 -1) 📝 `src/Jellyfin.Database/Jellyfin.Database.Implementations/Entities/User.cs` (+0 -1) 📝 `src/Jellyfin.Database/Jellyfin.Database.Implementations/IJellyfinDatabaseProvider.cs` (+9 -0) 📝 `src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/SqliteDatabaseProvider.cs` (+23 -1) _...and 1 more files_ </details> ### 📄 Description Add a full system backup service and webAPI to call it. Add a new parameter for the application to restore a backup from an archive. uses an zip archive to store config files and the database as json serialized tables. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 07:19:00 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#13776