Releases: duplicati/duplicati
v2.1.0.118_canary_2025-05-12
This release is a canary release intended to be used for testing.
Major changes in this version
This version has a number of minor fixes and a major rewrite of the the "repair" command.
The logic for the "repair" command is that it should be possible to recover loss of .dblock
files, if the data is still present locally.
This logic has been fixed in multiple ways and now also supports recovering data, even if no individual .dblock
volumes can be fully recovered.
In this case, the repair will recreate as much data as possible in new .dblock
files, and configure it so as many files as possible are available.
The purge-broken-files
can be used after repair has failed to recover eveything, and will only purge the files that were lost.
The purge-broken-files
command has also been updated to support using incorrect metadata, such that files are not purged if they are only missing metadata.
There are again numerous fixes to ngclient, including some faster browsing of restore contents, and better remote validation of folder contents.
The UI now supports a number of different languages.
Database version upgrade to v16
The local database is again upgraded with two index changes for correctness and performance.
The bundled Duplicati.CommandLine.DatabaseTool.exe
/ duplicati-database-tool
can downgrade databases.
Since the change is only index addition, there is no data loss on downgrades.
Detailed list of changes:
- Support
CACHEDIR.TAG
as a default exclude file marker - Improved
list-broken-files
to more accurately show contents, thanks @gpatel-fr - Added new faster API for listing restores (only used in ngclient)
- Added new API for testing to check for existing files (only used in ngclient)
- Updated translations, thanks to all the translators
- Fixed pCloud OAuth url in CLI
- Improved logic for combining Regex filters, thanks @Jojo-1000
- Improved error parsing for
box.com
backend - Simplified log closing to avoid cases where the log file is kept open
- Prevent database actions when delete is invoked with no versions to delete
- Updated throttle library to force more smooth output
- Tracking task metadata (start/stop time) for better log scoping
- Fixed AuthID not being reported as a password property
- Removed CloudFiles backend
- Fixed issue with throttle not working correctly on some backends
- Fixed an issue with rclone giving errors after each operation
- Fixed repair command to support repairs with partial data available
- Updated local DB schema to v16 (two new indexes)
- Fixed scheduling order when starting a backup
- Fixed case where warnings were emitted if the local data contains duplicates during repair, thanks @warwickmm and @Jojo-1000
- Updated iDrivee2 to use HttpClient
- Updated TahoeLAFS to use HttpClient
- Removed long-standing
FIXMEGlobal
class - Fixed issue with
server-util
timing out after 15 min, if using the--wait
option
Ngclient changes:
- Fixed "Export as commandline"
- Prevent GUI commandline from sending empty arguments
- Fixed some options were missing from the commandline view
- Added some confirmation dialogs
- Added indicator to show if backup is encrypted
- Improved notification state not always showing errors
- Fixed issue with multiple request fired on restore browsing
- Updated restore to use new faster API, if available
- Fixed issue with percent-encoded paths from configuration import
- Fixed issues with Test button not detecting SSL certificates or SSH key changes in all places
- Updated the Test button to check for existing files if the API is available
- Stop restore attempts early on known fatal errors (passphrase missing, empty folder, etc)
- Fixed an issue with advanced option lists not showing the correct labels
- Added a restore progress page
- Support multiple root folders on restore
- Test destination has a spinner while active
- Added spinners for long-running tasks from the start page
- Added TahoeLAFS UI
- Fixed the Live logs area
- Added multiple languages to the UI, thanks to all the translators
- Updated login page and loading indicator
v2.1.0.117_canary_2025-04-25
This release is a canary release intended to be used for testing.
Major changes in this version
This update adresses a few edge cases where a crash or other problem could cause the database to become out-of-sync.
Support for "archived" files makes Duplicati more compatible with life-cycle rules, that moves files into longer-term storage.
The support is currently added for S3 and Azure Blob Storage, and works by not attempting to test files that are archived.
Compacting still needs to be turned off if using life-cycle rules where files are inacessible.
The version of the local database is updated to v15 to support the archive timestamp.
A new tool is added Duplicati.CommandLine.DatabaseTool.exe
/ duplicati-database-tool
which can downgrade databases.
The tool can be used prior to installing an older version, and will downgrade the database to the previous version (14 in this case).
The tool can target individual databases, but will default to take all databases in the storage folder.
Throttle options were broken with a recent update. The fixed version now shares the throttle between all transfers.
Previously, setting a 10kb/s limit would cause each individual stream to be capped to 10 kb/s, but now the setting will throttle the combined upload speed (each stream gets a fraction of the limit).
Detailed list of changes:
- Added additional libICU compatibility versions
- Fixed an issue where dlist files would be uploaded ahead of time, causing failures on crashes
- Fixed an issue where compacting would sometimes kick off incorrectly
- File backend now throws the correct exceptions
- Ignore errors when closing and attempting pragma optimize
- Support reloading the page when restoring
- Added support for storage with archival options, like Glacier and Azure Cold storage
- Updated warning for cases where new files are found
- Added a database downgrade tool
- Added option to set SQLite cache size
- Fixed throttle not working, and made it a shared throttle
- Fixed an issue where the backup metadata could be cleared on save
Ngclient changes:
- Continue button now works on editing backup
- Overlapping display on scrolling fixed
- Fixed Repeated background requests on some pages
- Database screen now shows the database state
- Improved support for resetting restore flow
- Settings page is more reactive to changes
- Server error messages are now shown
- Numerous fixes and updates to the source picker page
- Sort order and time display is now persisted in the browser
v2.1.0.116_canary_2025-04-17
This release is a canary release intended to be used for testing.
This version is mostly the same as 2.1.0.115, so please see release notes from that.
Major changes in this version
This is primarily a bug-fix release with only minor changes.
Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface,
ngclient
is the default; there is a button to switch between the two
Detailed list of changes:
- Upgrade Minio library from 3.13 to 6.0.4
- Fixed delete command handling retention as well as specific version
- Fixed an issue with queries that need more than 128 parameters
- Updated memory caching and logging interface packages
- Fixed an issue with schedules missing in the UI
Ngclient changes:
- Fixed a case where dialogs would be missing the confirmation button
- Improved the create-folder flow
- Improved default handling of retention settings
v2.1.0.115_canary_2025-04-14
This release is a canary release intended to be used for testing.
This version is the same as 2.1.0.113 and 2.1.0.114 but rebuilt to fix a build-time issue.
Major changes in this version
The ServerUtil tool can now ouput JSON instead of regular text.
Support for Zip64 is now always enabled, so manual data extraction requires a Zip64 enabled tool.
Added support for creating pre-authenticated headers to better support proxy setups.
Improved handling of duplicated blocks, both on compact and on backup.
Added support for Filen and Filejump storage destinations.
Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface,
ngclient
is the default; there is a button to switch between the two
Detailed list of changes:
- Improved build process and added checks for missing and outdated libraries
- Improved anti-sleep on Windows
- Added option to emit machine-readable JSON from
ServerUtil
/duplicati-server-util
- Fixed issue with Mega backend not authenticating
- Added back missing options to MSGraph based backends
- Improved Zip64 support (always on)
- Prevent crashes when unable to set permissions on data folder or database
- Added
Filen.io
backend - Fixed some delivery failures to Telegram
- Prevent setting permissions on data folder from ServerUtil
- Added support for pre-authenticated headers in selfhosted (proxy) setups
- Stop early if restoring a backup and no passphrase is supplied
- Removed a warning show when using relative restore version time
- Removed positional arguments from SQL queries
- Improved number of blocks that can be discarded during compact
- Improved storage re-use if files are added/removed/added
- Fixed a case where connections were not closed after use
- Updated Wasabi S3 endpoints
- Fixed locale-sensitive parsing bug for fr-CA
- Added
rclone
to Docker images, thanks @wjansenw - Added Filejump backend
- Fixed some error flows during restore with missing data
Ngclient changes:
- Fixed external links opening in new window
- Show error messages when testing connection
- Fixed bug with not setting server interface
- Added a tab to show crash log data
- Added sorting to list of backups
- Added Filen backend support
- Fixed removing backup when deleting
- Fixed dropping config file for restore
- Error messages can be dismissed
- Added support for date-time options
- Added live-logs and improved logs area
- Added controls for entering timespans
- Improved status bar and loading messages
- Fixed cases of white start screen
- Fixed issues with settings page not updating
- Fixed issue with loading exported config with path-encoded url
- Fixed File browser starting in broken state if path is missing
- Added support for Filejump backend
- Fixed issues with parsing dblock-size
- Added support for retention settings
- Fixed issues with timespans on edits
v2.1.0.114_canary_2025-04-14
This release is a canary release intended to be used for testing.
This version is the same as 2.1.0.113 but rebuilt to fix a build-time issue.
Major changes in this version
The ServerUtil tool can now ouput JSON instead of regular text.
Support for Zip64 is now always enabled, so manual data extraction requires a Zip64 enabled tool.
Added support for creating pre-authenticated headers to better support proxy setups.
Improved handling of duplicated blocks, both on compact and on backup.
Added support for Filen and Filejump storage destinations.
Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface,
ngclient
is the default; there is a button to switch between the two
Detailed list of changes:
- Improved build process and added checks for missing and outdated libraries
- Improved anti-sleep on Windows
- Added option to emit machine-readable JSON from
ServerUtil
/duplicati-server-util
- Fixed issue with Mega backend not authenticating
- Added back missing options to MSGraph based backends
- Improved Zip64 support (always on)
- Prevent crashes when unable to set permissions on data folder or database
- Added
Filen.io
backend - Fixed some delivery failures to Telegram
- Prevent setting permissions on data folder from ServerUtil
- Added support for pre-authenticated headers in selfhosted (proxy) setups
- Stop early if restoring a backup and no passphrase is supplied
- Removed a warning show when using relative restore version time
- Removed positional arguments from SQL queries
- Improved number of blocks that can be discarded during compact
- Improved storage re-use if files are added/removed/added
- Fixed a case where connections were not closed after use
- Updated Wasabi S3 endpoints
- Fixed locale-sensitive parsing bug for fr-CA
- Added
rclone
to Docker images, thanks @wjansenw - Added Filejump backend
- Fixed some error flows during restore with missing data
Ngclient changes:
- Fixed external links opening in new window
- Show error messages when testing connection
- Fixed bug with not setting server interface
- Added a tab to show crash log data
- Added sorting to list of backups
- Added Filen backend support
- Fixed removing backup when deleting
- Fixed dropping config file for restore
- Error messages can be dismissed
- Added support for date-time options
- Added live-logs and improved logs area
- Added controls for entering timespans
- Improved status bar and loading messages
- Fixed cases of white start screen
- Fixed issues with settings page not updating
- Fixed issue with loading exported config with path-encoded url
- Fixed File browser starting in broken state if path is missing
- Added support for Filejump backend
- Fixed issues with parsing dblock-size
- Added support for retention settings
- Fixed issues with timespans on edits
v2.1.0.113_canary_2025-04-11
This release is a canary release intended to be used for testing.
Major changes in this version
The ServerUtil tool can now ouput JSON instead of regular text.
Support for Zip64 is now always enabled, so manual data extraction requires a Zip64 enabled tool.
Added support for creating pre-authenticated headers to better support proxy setups.
Improved handling of duplicated blocks, both on compact and on backup.
Added support for Filen and Filejump storage destinations.
Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface,
ngclient
is the default; there is a button to switch between the two
Detailed list of changes:
- Improved build process and added checks for missing and outdated libraries
- Improved anti-sleep on Windows
- Added option to emit machine-readable JSON from
ServerUtil
/duplicati-server-util
- Fixed issue with Mega backend not authenticating
- Added back missing options to MSGraph based backends
- Improved Zip64 support (always on)
- Prevent crashes when unable to set permissions on data folder or database
- Added
Filen.io
backend - Fixed some delivery failures to Telegram
- Prevent setting permissions on data folder from ServerUtil
- Added support for pre-authenticated headers in selfhosted (proxy) setups
- Stop early if restoring a backup and no passphrase is supplied
- Removed a warning show when using relative restore version time
- Removed positional arguments from SQL queries
- Improved number of blocks that can be discarded during compact
- Improved storage re-use if files are added/removed/added
- Fixed a case where connections were not closed after use
- Updated Wasabi S3 endpoints
- Fixed locale-sensitive parsing bug for fr-CA
- Added
rclone
to Docker images, thanks @wjansenw - Added Filejump backend
- Fixed some error flows during restore with missing data
Ngclient changes:
- Fixed external links opening in new window
- Show error messages when testing connection
- Fixed bug with not setting server interface
- Added a tab to show crash log data
- Added sorting to list of backups
- Added Filen backend support
- Fixed removing backup when deleting
- Fixed dropping config file for restore
- Error messages can be dismissed
- Added support for date-time options
- Added live-logs and improved logs area
- Added controls for entering timespans
- Improved status bar and loading messages
- Fixed cases of white start screen
- Fixed issues with settings page not updating
- Fixed issue with loading exported config with path-encoded url
- Fixed File browser starting in broken state if path is missing
- Added support for Filejump backend
- Fixed issues with parsing dblock-size
- Added support for retention settings
- Fixed issues with timespans on edits
v2.1.0.112_canary_2025-03-26
This release is a canary release intended to be used for testing.
Major changes in this version
-
Updated backends
The major change in this version is the addition of timeouts to every backend.
This has the potential to affect each backend individually. -
Improved validation
Further increased the checks made to validate that the database is consistent, and added new features to the repair operation to assist in recovering.
Certain problems are now checked before and after a backup, in an attempt to better close in on the conditions that create these situations. -
Updates to ngclient
Updates to reconnect logic and locale support.
Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface,
ngclient
is the default; there is a button to switch between the two
Detailed list of changes:
- Added retries for sending HTTP-based reports
- Added warning icon back to TrayIcon
- Fixed a check that prevented repairs in timezones that are have a negative UTC offset
- Rewrote a number of SQL queries to avoid localization of SQL strings
- Added guards against faulty startup delays
- Updated all backends to use same parsing logic for authentication options
- Updated all backends to support timeouts
- Fixed a bug where databases would be created with strict permissions, even if opting out
- Updated SQLite loading to always set custom pragmas
- Updated SQLite loading to support custom
SQLITE_TMPDIR
environment variable - Removed unwanted data in report JSON output
- Added support for deleting empty index files on repair
- Improved handling of stop "errors"
- Updated
box.com
backend to use HttpClient - Added option to inject custom parameters into reports
- Improved error message on manifest version mismatches
- Removed a warning when attempting to pick a restore date with a negative prefix
- Support for large form-encoded HTTP reports
- Fixed an issue where the URL parser would return different results for similar inputs (for the
file://
input) - Handling backspace on console password input
- Added guard against fileset errors in the database
- Added support for rebuilding filesets from remote data on repair
- TrayIcon can now start in a disconnected state, and keep probing for a connection
- Added current update channel to reports
- Added automatic zip64 usage for large bugreports
- Added support for showing the crashlog in the UI
- Fixed an issue with some dates causing problems in the timezone aware calculations
- Added support for sorting the list of backups in the UI
- Fixed an issue with restoring timestamps and metadata on folders
v2.1.0.111_canary_2025-03-15
This release is a canary release intended to be used for testing.
Major changes in this version
-
Restore improvements
This version has a few tweaks to the new restore flow that makes it more robust. -
Improved validation
To safeguard against internal errors, there is now a more strict validation before performing cleanup.
The new logic checks if the previous operation failed and will only automatically repair the remote if this is the case.
The repair command bypasses this check and can repair the remote regardless.
If the previous run was fully completed, any leftover remote files are now treated as an error.
Additionally, operations that does not change remote state (list, test, restore, etc) will not repair the remote state, but just verify that it is working for the requested operation.
- Updates to ngclient
Multiple updates to ngclient: improved auth flow, searchable menus, Windows filesystem support, restore from configuration, and more.
Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface,
ngclient
is the default; there is a button to switch between the two
Detailed list of changes:
- Reduced number of samples taken for testing
- Improved restore flow
- Improved error handling for Azure Blob storage
- Improved help text for remote synchronization tool
- Implemented more rigorous validation and safeguards for failed backups
- Better support for IPv6 and unmapped localhost scenarios
- Added check to avoid block sizes that are the same or less than volume size
- Introduced more async calls for better thread usage in handlers
- Added forced culture for SQL strings and simpler transaction logic
- Added Arm v7 Agent builds
- Improved certificate validation to check expiration and support root or intermediate certificate hashes
v2.1.0.5_stable_2025-03-04
This is an update release to 2.1.0.4, fixing critical issues.
This update fixes a number of issues reported with 2.1.0.4, 2.1.0.3, and 2.1.0.1.
If you are running one of these versions, it is highly recommended that you upgrade as soon as possible.
Important changes from 2.0.8.1 or older:
- Updated to .NET8 with OS specific builds
- Using Kestrel as the API/UI server
- Mandatory password and new authentication scheme for server
- Settings database version updated to v8
- Backup database updated to v13
- Automatic updating not supported
Detailed list of changes
- Fixed issue where failed uploads would be ignored in certain cases
- Increased default value for
--read-write-timeout
to 10 min to counter timeouts on large sets - Fixed a case where a leading slash would be removed from source url paths
- Fixed fallback support for zip files with non-deflate compressed files
- Fixed dark/light-mode icons on MacOS
- Signing on MacOS is now done by Duplicati Inc
- Signing on Windows is now done by Duplicati Inc, with an extended validation certificate
v2.1.0.110_canary_2025-02-28
This release is a canary release intended to be used for testing.
Major changes in this version
-
Restore improvements
Building further on the new restore engine, this version has significant performance speedups during restore. -
New signing keys
The builds are now signed by "Duplicati Inc" for MacOS and Windows.
The Windows signatures are now done with an extended validation (EV) certificate and should not trigger Windows Defender warnings. -
New enumeration logic
The enumeration of files and folders has been rewritten to better support some edge cases. -
Improved pagination support
All backends are updated to support the new list methods that supports pagination and cancellation.
The test method will now only load a single page of results, instead of listing all items. -
Support for backend-as-source
This version has support for backups of both remote and local data.
In this version, S3, IDrive, SSH and CIFS sources are supported.
The UI does not yet support this, but it is possible to read data from a remote location by "mounting" it into the local filesystem.
For the commandline (and manual text entry in the UI) enter sources such as:
// Linux/MacOS
@/mnt/s3-data|s3://example?auth-username=...
// Windows
@X:\server1|cifs://server/share?auth-username=...
Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface,
ngclient
is the default; there is a button to switch between the two
Detailed list of changes:
- Improved script examples
- Fixed double-click TrayIcon on Windows, thanks @Alex-Heard
- Fixed an issue with CORS headers
- Parallel downloads for restore
- Report interface and port in Webserver startup message
- Fixed missing example script on Windows
- Fixed a case where a leading slash could be stripped from the path or a URL
- Added additional Infomaniak endpoints, thanks @ochaze
- Backend listing is now async for better pagination and cancellation support
- Updated signing support for the release builds
- Added a link from
ngax
tongclient
(the other way already exists) - Added alternate source providers and new enumeration process
- Performance optimizations for restore process