feat(deps): update duplicati/duplicati v2.3.0.4_stable_2026-07-09 → v2.4.0.0_stable_2026-09-03 - #3426
Open
truecharts-admin wants to merge 1 commit into
Open
feat(deps): update duplicati/duplicati v2.3.0.4_stable_2026-07-09 → v2.4.0.0_stable_2026-09-03#3426truecharts-admin wants to merge 1 commit into
truecharts-admin wants to merge 1 commit into
Conversation
…2.4.0.0_stable_2026-09-03
Crow-Control
approved these changes
Sep 3, 2026
Crow-Control
left a comment
Member
There was a problem hiding this comment.
Auto approved automated PR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.3.0.4_stable_2026-07-09→2.4.0.0_stable_2026-09-03Release Notes
duplicati/duplicati (duplicati/duplicati)
v2.4.0.0_stable_2026-09-03Compare Source
This release is a stable release that supersedes the 2.3.0.4 stable release. It contains all changes from the 2.3.1.0 and 2.3.1.1 beta releases.
Breaking change: Locked-down data folder permissions
This release hardens security around the data folder and is a breaking change for some setups.
For most users, this should not be a problem as the folders should already have the correct permissions.
Duplicati now requires that the data folder has the exact expected permissions, or it will refuse to use it. Previously, Duplicati would silently lock down the folder if it was not already locked.
To opt out of the permission check, you need to either pass
--allow-insecure-datafolder, set the environment variableDUPLICATI__ALLOW_INSECURE_DATAFOLDER=true, or place a file namedinsecure-permissions.txtin the installation folder.Note that the previous method of placing
insecure-permissions.txtin the data folder is no longer supported.This change also applies to
preload.json, such that it will only be loaded if the folder is trusted, or one of the opt-out methods are activated. Additionally, the previous trusted paths/usr/local/share/Duplicati/preload.jsonandC:\ProgramData\Duplicati\preload.jsonare no longer supported as they cannot be guaranteed to be locked down.A
preload.jsoninside the data folder is still supported, provided the folder passes the permission check.The
ConfigureToolhas a newsecure-datafoldercommand that can be used to force the correct permissions on the data folder.For most users this should not cause any problems, as Duplicati has been locking down the folder already, but if you rely on lax folder permissions the setup needs to change. Some Docker setups may not be able to set the permissions and will need to apply
DUPLICATI__ALLOW_INSECURE_DATAFOLDER=truein the image to run without the protections.Sync copy mode
This release adds an often requested feature that enables simple copying of files from source to destination.
Where the regular backups are deduplicated, compressed, encrypted and versioned, the new sync mode will instead simply copy from source to destination.
The copy is currently a one-way sync, where the source is replicated on the destination. Files can be deleted on the destination during sync (use
--sync-then-delete), but destination folders will not be deleted.The option
--sync-remote-stateis by default set toUseRemoteStatewhich will list the destination and figure out what to upload. The settingUseLocalStateuses a local database, similar to how backups work, to keep track of known remote files, and reduce the amount of remote listings done. Finally, theBlindlyUploadsetting will just copy everything as-is to the remote.The sync jobs support remote sources, snapshots, and multiple destinations. If snapshots are enabled, the copy is done from the snapshot, ensuring reliable reads.
Configuration of such a sync job is done the same way as with backup, but using a toggle option in the first step of the UI. Note that backup and sync jobs are not compatible as they use very different storage logic, so it is not possible to change the job mode after creating a job.
CLI mode also supports sync.
Improved Windows installer
This change brings a major update to the Windows installers, which now integrates the ability to run as a service, as well as generate and use TLS (https). The service feature has been present for a while in the
WindowsService.exetool and the TLS certificates were added as part of theDuplicati.CommandLine.ConfigureTool.exe. With this update these things are now integrated into the installer, and exposed as simple checkboxes to toggle the features. Installing the service from a regular user account, will also auto-generate a secure password and configure the TrayIcon to connect to the service (only for the current user).If you have installed the service manually, do not activate the new checkbox as it only works if there is no pre-existing service. The installer-driven service does not support commandline arguments directly, but instead prefers
preload.jsonfiles to configure it. The MSI supports the propertyINSTALL_PRELOAD=truewhich will cause it to pick up apreload.jsonfile from the same folder the MSI is located in.The Windows service is now also configured as delay-start service to avoid startup issues on boot.
Live reporting module
This release adds a new live-reporting module that sends the current progress of backups to a user-specified URL. The intention is that this can be used for dashboards that want to show the current progress for backups. By default, the module is not configured and has no impact.
The module supports multiple activity targets and includes metadata in the activity report, as well as a console-provided activity URL.
PAR2 parity / error-correction for remote volumes
This release adds a pluggable parity module that produces error-correction data for remote data volumes, so they can be repaired after bit-rot or corruption on the backend, thanks @JamBalaya56562.
To enable this, ensure that
par2is installed on the machine and set--parity-module=par2. Setting this will cause additional.par2files to be uploaded.Store configuration with backup
This release revives the
store-task-configoption and makes it enabled by default for encrypted backups. The backup configuration is stored with the backup data, making it easier to restore a configuration later.For unencrypted backups, no secrets are stored by default. The behavior can be customized with options to store none, self, or all configurations, with or without secrets. The UI has been updated to allow restoring from the destination config. If multiple configurations are found, the user can select one or more backup configurations to restore.
MS365 subsites and shared mailboxes
This release improves the Microsoft 365 backup support with two additions.
Support for backing up SharePoint subsites has been added, making it possible to include sub-sites beneath a site collection in a backup.
The handling of shared mailboxes has also been improved, with better detection and enumeration of shared mailboxes within a tenant.
The license counting has been simplified. A Duplicati license is now required if an MS365 license is assigned, without needing per-user lookups. The same logic applies to both users and sites, and personal sites of users without a license are not counted. Filtering based on classification is still supported.
Full disk backup support (Windows, Linux, MacOS)
This release extends the full disk backup feature to support Linux and MacOS, in addition to Windows.
The Linux support allows backup and restore of entire disks on Linux, including partition tables. The MacOS support adds basic backup and restore of entire disks, including partition tables.
Partition-level backup and restore is now supported, making it possible to select individual partitions as backup sources, or restore a single partition from a full disk backup to a different partition.
Like the Office 365 / Google Workspace backup features, this is a proprietary module (source available).
Full disk backup requires administrative privileges to access the disk directly.
Full disk restore requires administrative privileges and requires that the disk is unmounted and not write-protected.
Desktop notifications on all platforms
Desktop notifications are now supported on all platforms. Windows toast notifications have been implemented with click-to-open support, and native notification support has been added for macOS and Linux (via DBus), thanks @JamBalaya56562 for the Windows implementation.
Restore reliability improvements
Several issues with the restore process have been fixed. Restores now properly respond to stop/abort requests, file reads and writes can be interrupted, and a critical bug with wrong seek offsets for partial blocks has been fixed, which could cause restores to fail, thanks @JamBalaya56562.
An index has been added on the restore file table join columns for better restore performance, thanks @JamBalaya56562.
Misconfigured filter detection
A new warning system detects when filters are configured to unconditionally exclude everything. A post-backup check also warns if no files were examined during backup, which helps catch misconfigurations that would otherwise silently produce empty backups.
New backends
Added support for Drime Cloud as a new storage backend.
Added a new backend for the Spanish provider Movistar, thanks @redmars27. The backend is marked as "untested" as it can only be used (and tested) by Movistar customers.
Deprecated backends
The previous "SharePoint" and "OneDrive for Business" backends have been marked as deprecated, as Microsoft shut down the API they were calling. The migration step is to use the "SharePoint v2" backend (renamed to just "SharePoint" in this version) which uses the Microsoft Graph API.
Duplicati Storage
This release includes Duplicati Storage which is integrated with the Duplicati console. Once a machine is connected to the console it can use the account's storage allocations with zero configuration required.
SharpAESCrypt v3
Updated the SharpAESCrypt encryption library to support "AES Crypt Stream Format v3", which has a number of improvements over the v2 format.
For this release, the default written format remains v2, but we encourage you to set the environment variable
DUPLICATI__AES_VERSION=3to test the new format.Note: if you set this version to 3, the new remote volumes cannot be read by Duplicati versions older than 2.3.0.101.
Support for MacOS ACLs
This release adds support for reading MacOS attributes and ACL strings during backup, and restoring them when permission restores are selected.
Support for Windows Alternate Data Streams
This release implements support for reading and writing alternate data streams (ADS) on Windows. This feature is disabled by default and can be enabled with the advanced option
--enable-ads-backup. If ADS content is found in the source, this is restored by default but can be disabled with--disable-ads-restore.Fixed MSSQL backups
Since 2.1 the MSSQL backups would produce errors if attempting to back up an MSSQL server that was running as the default instance, but would work with a named instance. This release fixes the issue and now handles both default- and named instances.
Improved missing source handling
The default behavior when sources are missing has changed. Previously, a missing source would abort the backup. Now, a missing source will only trigger a warning unless the option
--abort-if-source-missingis set. The option--allow-missing-sourcecan still be used to suppress warnings entirely. If no sources are found at all, the backup will still abort.Relative database paths
Database paths are now stored relative to the data folder by default. This makes it simpler to move the data folder as the paths are not stored in full. Existing backups retain their full paths, but manually updating a database path will make it relative if it is within the data folder.
Improved TLS certificate validation
The TLS certificate validation has been improved, and Duplicati now falls back to using the OS-default certificate validator. This should resolve issues with custom certificate chains and improve compatibility with various TLS setups.
Improved source tree and filter accuracy
The source tree now shows the content of remote sources, including Microsoft 365 tenants, Google Workspace subscriptions and full-disk content. Filter evaluation is performed server-side for non-trivial filters, ensuring the same code is used for display and actual backup operations.
Helper entries like "My Documents" are now shown in all picker situations and resolve to the full path. The destination configuration supports browsing the remote file system.
New welcome page and start
The UI will now show a welcome page showing how to connect to the console with an option to continue without.
This can be suppressed with the option
--webservice-suppress-welcome-page=trueor environment variableDUPLICATI__WEBSERVICE_SUPPRESS_WELCOME_PAGE=true.If the connection is made from the TrayIcon, the initial dialog asking to set a password is no longer shown, as the intention is to use the TrayIcon to connect.
It is still possible to change the password from the Settings page if needed.
Other notable changes
Duplicati.CommandLine.AutoTuneTool/duplicati-autotunetool to help evaluate and optimize performance-related settings.--restore-all-filesoption to restore files matching a filter from multiple versions.verifyandcleanupcommands to the database tool. Addedwipe-encryptioncommand for recovering encrypted databases.--store-metadata-content-in-databaseoption is automatically applied when needed by the source provider.Thanks to contributors
This release is a collaboration effort from the Duplicati community. Thanks to the many contributors who report issues, test new releases, request features, write documentation, maintain translations, and contribute to the codebase.
v2.3.1.1_beta_2026-08-26Compare Source
2026-08-26 - 2.3.1.1_beta_2026-08-26
This release is a Beta release intended to be used for testing to identify any issues before releasing the next stable version.
Partition level full disk backup and restore
The full disk backup feature now supports selecting individual partitions as backup sources, in addition to entire disks. This makes it more intuitive to back up a specific partition without filtering.
Restore now also supports partition-to-partition restores, so it is possible to restore a single partition from a full disk backup, or restore a partition backup to a different partition.
Desktop notifications on all platforms
Desktop notifications are now supported on all platforms. Windows toast notifications have been implemented (with click-to-open support), and native notification support has been added for macOS and Linux (via DBus), thanks @JamBalaya56562.
Restore cancellation and reliability improvements
Several issues with the restore process have been fixed. Restores now properly respond to stop/abort requests, file reads and writes can be interrupted, and a critical bug with wrong seek offsets for partial blocks has been fixed, which could cause restores to fail for most files, thanks @JamBalaya56562.
Misconfigured filter detection
A new warning system detects when filters are configured to unconditionally exclude everything. A post-backup check also warns if no files were examined during backup, which helps catch misconfigurations that would otherwise silently produce empty backups.
More robust server connection
The remote server connection has been hardened against network events that could cause it to drop. A watchdog monitors the connection and restarts it if it has been unresponsive for an extended period.
Improved MS365 license counting
The MS365 license counting logic has been simplified. A Duplicati license is now required if an MS365 license is assigned, without needing per-user lookups. The same logic applies to both users and sites, and personal sites of users without a license are not counted.
Faster delete operations
The database query for deleting old backup versions has been optimized, significantly speeding up the delete operation for large backups.
Fixed index file recreation
An issue where recreated index files could be incomplete has been fixed. The index file recreation now happens after block volumes are fully processed, ensuring all blocklists are included. This fixes the intermittent "Found N faulty index files" verification error.
Security fix for credential leaks
Fixed an issue where credentials embedded in URLs could leak into log messages, but only on malformed URLs, thanks @JamBalaya56562.
Auto-configure database metadata
When using a source provider that requires database metadata (such as full disk backup), the
--store-metadata-content-in-databaseoption is now automatically applied when needed. This can still be overridden manually.Detailed list of changes
synccommand to CLI help outputGetEntryAsyncreturning null for all paths, thanks @JamBalaya56562Changes in ngclient
v2.3.1.0_beta_2026-07-28Compare Source
This release is a Beta release intended to be used for testing to identify any issues before releasing the next stable version.
Breaking change: Locked-down data folder permissions
This release hardens security around the data folder and is a breaking change for some setups.
Duplicati now requires that the data folder has the exact expected permissions, or it will refuse to use it. Previously, Duplicati would silently lock down the folder if it was not already locked.
To opt out of the permission check, you need to either pass
--allow-insecure-datafolder, set the environment variableDUPLICATI__ALLOW_INSECURE_DATAFOLDER=true, or place a file nameinsecure-permissions.txtin the installation folder.Note that the previous method of placing
insecure-permissions.txtin the data folder is no longer supported.This change also applies to
preload.json, such that it will only be loaded if the folder is trusted, or one of the opt-out methods are activated. Additionally, the previous trusted paths/usr/local/share/Duplicati/preload.jsonandC:\ProgramData\Duplicati\preload.jsonare no longer supported as they cannot be guaranteed to be locked down.A
preload.jsoninside the data folder is still supported, provided the folder passes the permission check.The
ConfigureToolhas a newsecure-datafoldercommand that can be used to force the correct permissions on the data folder.For most users this should not cause any problems, as Duplicati has been locking down the folder already, but if you rely on lax folder permissions the setup needs to change. Some Docker setups may not be able to set the permissions and will need to apply
DUPLICATI__ALLOW_INSECURE_DATAFOLDER=truein the image to run without the protections.Sync copy mode
This release adds a often requested feature that enables simple copying of files from source to destination.
Where the regular backups are deduplicated, compressed, encrypted and versioned, the new sync mode will instead simply copy from source to destination.
The copy is currently a one-way sync, where the source is replicated on the destination. Files can be deleted on the destination during sync (use
--sync-then-delete), but destination folders will not be deleted.The option
--sync-remote-stateis by default set toUseRemoteStatewhich will list the destination and figure out what to upload. The settingUseLocalStateuses a local database, similar to how backups work, to keep track of known remote files, and reduce the amount of remote listings done. Finally, theBlindlyUploadsetting will just copy everything as-is to the remote.The sync jobs support remote sources, snapshots, and multiple destinations. If snapshots are enabled, the copy is done from the snapshot, ensuring reliable reads.
Configuration of such a sync job is done the same way as with backup, but using a toggle option in the first step of the UI. Note that backup and sync jobs are not compatible as they use very different storage logic, so it is not possible to change the job mode after creating a job.
CLI mode also supports sync.
Improved Windows installer
This change brings a major update to the Windows installers, which now integrates the ability to run as a service, as well as generate and use TLS (https). The service feature has been present for a while in the
WindowsService.exetool and the TLS certificates were added as part of theDuplicati.CommandLine.ConfigureTool.exe. With this update these things are now integrated into the installer, and exposed as simple checkboxes to toggle the features. Installing the service from a regular user account, will also auto-generate a secure password and configure the TrayIcon to connect to the service (only for the current user).If you have installed the service manually, do not activate the new checkbox as it only works if there is no pre-existing service. The installer-driven service does not support commandline arguments directly, but instead prefers
preload.jsonfiles to configure it. The MSI supports the propertyINSTALL_PRELOAD=truewhich will cause it to pick up apreload.jsonfile from the same folder the MSI is located in.The Windows service is now also configured as delay-start service to avoid startup issues on boot.
Live reporting module
This release adds a new live-reporting module that sends the current progress of backups to a user-specified URL. The intention is that this can be used for dashboards that want to show the current progress for backups. By default, the module is not configured and has no impact.
PAR2 parity / error-correction for remote volumes
This release adds a pluggable parity module that produces error-correction data for remote data volumes, so they can be repaired after bit-rot or corruption on the backend, thanks @JamBalaya56562.
To enable this, ensure that
par2is installed on the machine and set--parity-module=par2. Setting this will cause additional.par2files to be uploaded.Store configuration with backup
This release revives the
store-task-configoption and makes it enabled by default for encrypted backups. The backup configuration is stored with the backup data, making it easier to restore a configuration later.For unencrypted backups, no secrets are stored by default. The behavior can be customized with options to store none, self, or all configurations, with or without secrets. The UI has been updated to allow restoring from the destination config. If multiple configurations are found, the user can select one or more backup configurations to restore.
MS365 subsites and shared mailboxes
This release improves the Microsoft 365 backup support with two additions.
Support for backing up SharePoint subsites has been added, making it possible
to include sub-sites beneath a site collection in a backup.
The handling of shared mailboxes has also been improved, with better detection
and enumeration of shared mailboxes within a tenant.
The license counter now excludes shared mailboxes without a license, and supports
top-level filtering of users/sites/groups based on classification.
Full disk backup support (Windows, Linux, MacOS)
This release extends the full disk backup feature to support Linux and MacOS.
The Linux support allows backup and restore of entire disks on Linux, including partition tables. The MacOS support adds basic backup and restore of entire disks, including partition tables.
Like the Office 365 / Google Workspace backup features, this is a proprietary module (source available) that requires a license to use in production.
Full disk backup requires administrative privileges to access the disk directly.
Full disk restore requires administrative privileges and requires that the disk is unmounted and not write-protected.
Read-only testing of backends
Backends now support read-only context-aware testing, which allows testing connections safely without risking unintended changes to the storage. The read-only testing is applied when testing a restore destination or a remote source, such that no files are attempted written to the remote storage.
New backends
Added support for Drime Cloud as a new storage backend.
Added a new backend for the Spanish provider Movistar, thanks @redmars27. The backend is marked as "untested" as it can only be used (and tested) by Movistar customers.
Deprecated backends
The previous "SharePoint" and "OneDrive for Business" backends have been marked as deprecated, as Microsoft shut down the API they were calling. The migration step is to use the "SharePoint v2" backend (renamed to just "SharePoint" in this version) which uses the Microsoft Graph API.
FAT32 and NTFS support for full disk backup
Added FAT32 and NTFS file system support for the full disk backup feature, including boot sector parser, table reader, streams, and directory walker. This features makes it more efficient to do full-disk backups.
To enable this feature, add the advanced option
--diskimage-filesystem-parsed=trueand the backups will attempt to parse the disk, and if it is one of the supported formats, it will only read the relevant sectors.Remote synchronization improvements
Integrated remote synchronization feature (aka 3-2-1 backups) from a separate module into the Main library for better integration, with improved error handling, progress tracking, and reliability.
Added destination space quota checks to the remote synchronization runner, helping prevent failures due to insufficient destination space.
An option to disable quota checks (
quota-disable) has also been added for scenarios where quota information is not available or reliable.Duplicati Storage
This release also includes the Duplicati Storage which is integrated with the Duplicati console. Once a machine is connected to the console it can use the accounts storage allocations with zero configuration required.
SharpAESCrypt v3
Updated the SharpAESCrypt encryption library to support "AES Crypt Stream Format v3", which has a number of improvements over the v2 format.
For this release, the default written format remains v2, but we encourage you to set the environment variable
DUPLICATI__AES_VERSION=3to test the new format.Note: if you set this version to 3, the new remote volumes cannot be read by Duplicati versions older than (2.3.0.101).
Support for MacOS ACLs
This release adds support for reading MacOS attributes and ACL strings during backup, and restoring them when permission restores are selected.
Support for Windows Alternate Data Streams
This release implements support for reading and writing alternate data streams (ADS) on Windows. This feature is disabled by default and can be enabled with the advanced option
--enable-ads-backup. If ADS content is found in the source, this is restored by default but can be disabled with--disable-ads-restore.Fixed MSSQL backups
Since 2.1 the MSSQL backups would produce errors if attempting to back up an MSSQL server that was running as the default instance, but would work with a named instance. This release fixes the issue and now handles both default- and named instances.
Improved missing source handling
The default behavior when sources are missing has changed. Previously, a missing source would abort the backup. Now, a missing source will only trigger a warning unless the option
--abort-if-source-missingis set. The option--allow-missing-sourcecan still be used to suppress warnings entirely. If no sources are found at all, the backup will still abort.Relative database paths
Database paths are now stored relative to the data folder by default. This makes it simpler to move the data folder as the paths are not stored in full. Existing backups retain their full paths, but manually updating a database path will make it relative if it is within the data folder.
Updated LibSecret support for KDE
The LibSecret support has been updated to work correctly on KDE Plasma 5+6. The default collection alias is now properly resolved, fixing issues where a new collection named
defaultwould be created incorrectly.Improved source tree
To make it easier to see what data is included, the source tree will now show the content of remote sources, including Microsoft 365 tenants, Google workspace subscriptions and full-disk content.
Improved filter accuracy in the UI
The filter evaluation will now be performed server-side if the filters are not "simple filters". When a non-trivial filter is in the list, the C# code will be asked to evaluate the list and produces the filtered results which are then displayed. This increases the correctness of the displayed filter state because the same code is now used for both display and actual backup operations.
Resolve shortcut entries
The helper entries, like "My Documents" are now shown in all picker situations and resolve to the full path. This makes it possible to use these shortcuts to pick things like log-file location or SSH keyfiles, without having to traverse the full tree to find the locations.
Browse remote destinations
The destination configuration has been updated to include a browse button for finding the remote destination path. Once the connection details are in place, the browse button can be used to navigate the remote file system and select the desired destination folder. This works both for configuring a backup and for picking the restore location.
New welcome page and start
The UI will now show a welcome page showing how to connect to the console with an option to continue without.
This can be suppressed with the option
--webservice-suppress-welcome-page=trueor environment variableDUPLICATI__SUPPRESS_WELCOME_PAGE=true.If the connection is made from the TrayIcon, the initial dialog asking to set a password is no longer shown, as the intention is to use the TrayIcon to connect.
It is still possible to change the password from the Settings page if needed.
Crash dialog
Added a crash dialog window that appears when the application encounters an unhandled exception.
Thanks to contributors
This release is once again a collaboration effort from the Duplicati community. Thanks to the many contributors who reports issues, test new releases, requests features, write documentation, maintain translations, and contribute to the codebase.
v2.3.0.110_canary_2026-08-25Compare Source
This release is a canary release intended to be used for testing.
Database update to version 20
This release updates the local database schema to version 20. The update adds a label column to the fileset table and is applied automatically on first use. After the update, the database can no longer be opened by earlier versions of Duplicati. If you need to downgrade, the bundled database tool (
duplicati-database-tool) can downgrade the database back to version 19; downgrading removes the labels, but otherwise causes no data loss.Labels on backup versions
Backup versions can now carry an optional text label. Labels have no functional purpose, but they help mark and distinguish versions, for example when backups are hand-curated instead of running on a schedule. The CLI and UI supports setting and showing labels.
Partition-level backup and restore
It is now possible to select a single disk partition as the backup source, instead of selecting the full disk and filtering the unwanted partitions. Restores are likewise more flexible: in addition to disk-to-disk restores, a single partition can now be restored into a partition on another disk, creating the partition as needed.
This also fixes a bug where a failing priority file would leave the restore stuck until it was cancelled, and a number of issues with enumerating and filtering disks and partitions, in particular on Windows.
Automatic metadata storage for sources that need it
Backups using a source provider that relies on database metadata, such as the disk image provider, previously required the user to set
--store-metadata-content-in-database=truemanually. The setting is now applied automatically when the source needs it, and can still be overridden by setting the option explicitly.QNAP packages
This release adds native QNAP package support. Similar to the Synology package, it integrates with the QNAP OS, uses the built-in authentication, and only allows access for administrators.
Stricter Google Cloud Storage credentials
Google Cloud Storage credentials are now read as service account credentials, which is what the options are documented to take. Other credential types, such as stored user credentials or external account configurations, are now refused. If you authenticate to Google Cloud Storage, or the Google Cloud secret provider, with anything other than a service account key, you need to switch to a service account key.
Detailed list of changes
--store-metadata-content-in-databasewhen the source provider requires it+in the path reporting uploaded files as missing, thanks @JamBalaya56562file://target URLs with a query string being misparsedUpdates to ngclient
v2.3.0.109_canary_2026-08-14Compare Source
This release is a canary release intended to be used for testing.
Native desktop notifications
This release adds native desktop notifications on all supported desktop platforms. Backup results and other tray-icon notifications are now shown as real operating-system notifications instead of only appearing inside the UI.
On Windows, notifications are shown as Windows toast notifications with click-to-open support, thanks @JamBalaya56562. On macOS, notifications are shown via the native notification center. On Linux, notifications are sent over DBus and integrate with the desktop environment's notification daemon.
Native environment variable syntax on Linux and macOS
Paths and filters now support the native
$VARand${VAR}environment variable syntax on Linux and macOS, most notably$HOME, thanks @JamBalaya56562. Previously only the Windows-style%VAR%syntax was expanded, so the native forms were silently left unexpanded on non-Windows systems.The expansion is additive:
%VAR%keeps working everywhere, and an undefined variable is left as-is. If you previously worked around this with literal$characters in paths or filters, those entries will now be expanded.Restore improvements and fixes
Several restore issues have been fixed in this release, thanks @JamBalaya56562. Restore now honors stop requests promptly: an abort interrupts in-progress file reads and writes, where it previously could keep running for minutes after the request. An aborted restore no longer reports errors, blames the backup, or leaks temporary files, and files that a shutdown interrupted are no longer listed as broken. A requested shutdown is in general no longer reported as a failure. Two bugs that could corrupt restored data were fixed: a wrong seek offset when copying verified local blocks, and an incorrect buffer copy when merging a hash fragment. Restore now also preserves the selected folder and applies configured default options (such as
--restore-permissions) when the restore request does not explicitly specify them. On the legacy restore engine, restoring a directory symlink no longer creates a real folder in its place.Stricter validation of settings
This release adds validation in places that previously failed silently, which may surface new warnings or errors after upgrading:
Detailed list of changes
--long-database-query-thresholdnow warns about hanging queries, thanks @JamBalaya56562$VAR/${VAR}environment variable syntax in paths and filters on Linux and macOS, thanks @JamBalaya56562@, thanks @JamBalaya56562%uXXXXunicode escapes in URLs, thanks @JamBalaya56562RelaxedUriUpdates to ngclient
-filename*as the default new filter to avoid having exclude all as the defaultv2.3.0.108_canary_2026-07-20Compare Source
This release is a canary release intended to be used for testing.
If no major faults are found, this release is intended to be the basis of the next beta release.
MS365 subsites and shared mailboxes
This release improves the Microsoft 365 backup support with two additions.
Support for backing up SharePoint subsites has been added, making it possible
to include sub-sites beneath a site collection in a backup.
The handling of shared mailboxes has also been improved, with better detection
and enumeration of shared mailboxes within a tenant.
The license counter now excludes shared mailboxes without a license, and supports
top-level filtering of users/sites/groups based on classification.
An extra information button is added to the source page that shows a summary
of what content was found in the MS365 tenant.
Case-insensitive remote filename matching
A new option has been added to perform case-insensitive matching of remote
filenames. This helps with backends that do not preserve filename casing, and
prevents issues where files cannot be found because of case differences.
Improved filter parsing
The filter parsing logic has been improved to handle more edge cases and
produce more predictable results when
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.