forked from duplicati/duplicati
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.txt
1305 lines (1073 loc) · 63.6 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2025-04-25 - 2.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
2025-04-17 - 2.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
2025-04-14 - 2.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
2025-04-14 - 2.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
2025-04-11 - 2.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
2025-03-26 - 2.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
2025-03-15 - 2.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
2025-02-28 - 2.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` to `ngclient` (the other way already exists)
- Added alternate source providers and new enumeration process
- Performance optimizations for restore process
2025-02-11 - 2.1.0.109_canary_2025-02-11
==========
This release is a canary release intended to be used for testing.
# Important change for Windows Service
This build changes the folder locations for the `Duplicati-server.sqlite` file on Windows and Linux when running as a service.
There is support for backwards compatibility, so existing installations should not be affected.
The detailed changes are:
Windows: Avoid storing data in `C:\Windows\System32\config\systemprofile\AppData\Local\Duplicati` and prefer `{CSIDL_COMMON_APPDATA}\Duplicati`
Linux: Avoid storing data in `/Duplicati` and prefer `/var/lib/Duplicati`.
If you are not running Duplicati as a service, this has no effect.
If you are using `--server-datafolder` or `DUPLICATI_HOME`, this has no effect on the database, but may cause your machineid and installid to change.
The `machineid.txt` and `installid.txt` would previously be stored in the local app data folder, even when using portable mode or choosing a specific data folder.
This has been fixed, so the files will now follow the database.
If you are using the Duplicati console or otherwise depend on these values, you need to move them into the folder where the database is stored.
## Important for users running 2.1.0.108
For **2.1.0.108 version only**, the service folder was `{SYSTEMDRIVE}\Users\LocalService\Duplicati` which was dropped.
If you have only installed 2.1.0.108 and ended up using the previous folder, you must manually move it to `{CSIDL_COMMON_APPDATA}\Duplicati`.
# Permissions on database and data folder
This update sets permissions on the data folder and the databases to prevent unauthorized access from local accounts.
To opt out of setting permissions on each startup, place a file named `insecure-permissions.txt` inside the data folder.
# New user interface
This version uses the `ngclient` as the default interface. If some feature is not working as expected, it is possible to switch back to the `ngax` client.
To switch client, replace `ngclient` with `ngax` in the url, or use the `theme.html` page to choose the UI (example: `http://localhost:8200/theme.html`).
Please report any issues with the new UI.
# Removed timeout guard
Due to many reports of failures with the timeout mechanism this has been removed in the current version. It will be added back into each of the backends later.
# Added a new tool for offsite backup
This release features a new tool: `Duplicati.CommandLine.SyncTool.exe` / `duplicati-sync-tool` which can be used to create copies of backup files in multiple locations. The tool is currently documented with the built-in help, and more documentation is on the way. The tool is intended to be more integrated into Duplicati later and enables a straightforward way to achieve 3-2-1 backups, including copies in immutable storage.
## Detailed list of changes:
- Support topics on Telegram reports
- Added remote syncronization tool
- Removed high-level backend timeout
- Added guard to prevent dataloss on shared destinations
- Added option to disable automatic update checks
- Fixed a bug with the new restore that could cause incorrect files to be restored if files alredy exists
- Fixed a case where updated timestamps were discarded if no data was changed
- Added permission updates to data folder
- Fixed automatic fallback on unsupported Zip files
- Fixed multiple issues with TrayIcon state
- Mark Mega.nz backend as deprecated
- Switched to ngclient as the default UI
- Added support for 429 responses on B2
2025-01-31 - 2.1.0.108_canary_2025-01-31
==========
This release is a canary release intended to be used for testing.
# Important change
This build changes the folder locations for the `Duplicati-server.sqlite` file on Windows and Linux when running as a service.
There is support for backwards compatibility, so existing installations should not be affected.
The detailed changes are:
Windows: Avoid storing data in `C:\Windows\System32\config\systemprofile\AppData\Local\Duplicati` and prefer `{SystemRoot}\Users\LocalService\Duplicati`
Linux: Avoid storing data in `/Duplicati` and prefer `/var/lib/Duplicati`.
If you are not running Duplicati as a service, this has no effect.
If you are using `--server-datafolder` or `DUPLICATI_HOME`, this has no effect on the database, but may cause your machineid and installid to change.
The `machineid.txt` and `installid.txt` would previously be stored in the local app data folder, even when using portable mode or choosing a specific data folder.
This has been fixed, so the files will now follow the database.
If you are using the Duplicati console or otherwise depend on these values, you need to move them into the folder where the database is stored.
# New UI
This release contains an updated version of the new UI.
In the url, change `ngax` to `ngclient` to try the new UI.
## Detailed list of changes:
- Fixed encoding of exported files
- Fixed issue with restore trying to read files opened with write-only
- Improved backend tester
- Missing file detection during recreate is now a warning
- Fixed Minio backend not throwing exceptions
- Fixed hidden files display in source picker
- Added additional source folders for MacOS
- Removed SHA1 signatures on Windows signing
- Rewrote the backend manager to better control backend (re-)use
- Updated reporting to support sending OS type and backend type
- Tagging Docker images with channel, thanks @stavros-k
- Added support for CORS headers in the Webserver
- Unified help arguments across all executables
- Fixed parsing flags as multiple values for FTP SSL type
- Added guard against storing files in Windows folder
- Fixed crash in AutoUpdater
2025-01-17 - 2.1.0.107_canary_2025-01-17
==========
This release is a canary release intended to be used for testing.
**Note that this build has a redesigned restore flow**
Should issues arise, the previous restore engine can be enabled with `--restore-legacy=true`.
This release contains a substantially updated version of the new UI.
In the url, change `ngax` to `ngclient` to try the new UI.
## Detailed list of changes:
- Avoid optimize after vacuum
- Prevent inifinite shutdown loop
- Fixed a recreate database issue
- Added a warning in the UI if the volume size is excessive
- Fixed an issue with AWS S3 permission check
- Prevent a termination error caused by unused transactions
- Updated B2 backend to use HttpClient
- Changed timeouts for WebDAV
- Updated new UI (ngclient)
2025-01-11 - 2.1.0.106_canary_2025-01-11
==========
This release is a canary release intended to be used for testing.
**Note that this build has a redesigned restore flow**
Should issues arise, the previous restore engine can be enabled with `--restore-legacy=true`.
## Detailed list of changes:
- Added server status and wait to ServerUtil
- Fixed an issue where index files would contain replicated blocklists
- Fixed an issue with duplicate blocks preventing repair
- Size strings are now formatted as kikibytes
- Fixed some issues with CIFS/SMB backend
2025-01-07 - 2.1.0.105_canary_2025-01-07
==========
This release is a canary release intended to be used for testing.
**Note that this build has a redesigned restore flow**
Should issues arise, the previous restore engine can be enabled with `--restore-legacy=true`.
## Detailed list of changes:
- Fix issue with FTP not connecting correctly
- Improved large restore speed (+5TiB), thanks @snamds
- Corrected reported options for Azure, Aliyun, OpenStack and Storj
- OpenStack detects protocol version from URL
- Sia redundancy option is now a decimal (culture invariant parsing)
- Added help links to connection dialog and login pages
- Fixed issue with new restore not auto-creating missing folder structure
- Fixed issue with new restore without overwrite
- Fixed a place not honoring disabled quota
- Added CIFS / SMB backend
- Updated MacOS DMG image
2024-12-31 - 2.1.0.104_canary_2024-12-31
==========
This release is a canary release intended to be used for testing.
**Note that this build is using .NET8, unlike the 2.0.8.1 build**
**Note that this build has a redesigned restore flow**
Should issues arise, the previous restore engine can be enabled with `--restore-legacy=true`.
## Detailed list of changes:
- Fixed issue with launchAgent for CLI server not taking an argument
- Added simultaneous file processors, thanks @gpatel-fr
- Updated translations, thansk to many contributors!
- Added NOOP Daemon for FTP backend
- Excluded Google Drive and GCS from timeout streams
- Fixed an issue with the TrayIcon being disconnected after 15 minutes
- Removed the captcha fro full backup removal
- Reduced number of backend instances created
- Removed Windows-only options on the File backend on non-Windows
- Added option to log FTP messages to regular log
2024-12-21 - 2.1.0.103_canary_2024-12-21
==========
This release is a canary release intended to be used for testing.
**Note that this build is using .NET8, unlike the 2.0.8.1 build**
**Note that this build has a redesigned restore flow**
Should issues arise, the previous restore engine can be enabled with `--restore-legacy=true`.
## Detailed list of changes:
- Updated MacOS LaunchAgents to run as current user
- Updated preloader logic to search additional paths
- Fixed a few potential issues in JS
- Disabled openid probing on the server
- Fixed problem with FTP backend not unescaping special characters
- Reduced amount of logging output from Server
- Fixed bugreport download
- Fixed pause/stop/resume/abort and throttle control
- Fixed issues with timeouts in Microsoft Graph-based backends
- Fixed a potential exit crash
- Renamed some strings from "OneDrive v2" to "OneDrive"
- Removed `--use-http-client` from Microsoft Graph-based backends
- Logging on Windows moved to separate Windows Log
2024-12-12 - 2.1.0.102_canary_2024-12-12
==========
This release is a canary release intended to be used for testing.
**Note that this build is using .NET8, unlike the 2.0.8.1 build**
**Note that this build has a redesigned restore flow**
Should issues arise, the previous restore engine can be enabled with `--restore-legacy=true`.
## Detailed list of changes:
- Upgraded FluentFTP to fix a crash on socket timeout
- Removed named channels to fix a rare exception
- Rewrote the restore process to be multithreaded and target optimal disk I/O write performance
- Added missing documentation to the iDrive e2 backend
- Added activity timeout on backend transfers
- Added support for generating a "forever token"
2024-12-06 - 2.1.0.101_canary_2024-12-06
==========
This release is a canary release intended to be used for testing.
**Note that this build is using .NET8, unlike the 2.0.8.1 build**
## Breaking change from previous canary
The pCloud backend is updated to support subfolders.
Paths with `/` will now be treated as a folder structure on pCloud.
Previous version would treat `folder/subfolder` as a single foldername,
this version treats it as `folder` / `subfolder`.
## Detailed list of changes:
- Fixed a case where the TrayIcon would hang in detached mode
- Improved OpenAPI description for filter groups
- Fixed an issue with websocket requests through a proxy
- Updated icons for Linux and dark-mode MacOS
- Added logging of unobserved exceptions
- Fixed a compatibility issue with FTP not correctly detecting explicit TLS
- Fixed an issue where the quota was reported incorrectly
- Removed the unused `--use-block-cache` option
- Agent now has a dedicated `register` command
- Sizes can now be supplied as kikibytes, eg. `20kib`
- Fixed supporting subfolders in pCloud
- Added option to send http requests with relaxed TLS security
- Agent can now be asked to retain the previous UI password
- Updated SSH.NET to v2024.2.0
2024-11-25 - 2.1.0.100_canary_2024-11-25
==========
This release is a canary release intended to be used for testing.
**Note that this build is using .NET8, unlike the current beta**
See release notes from previous canary builds for details.
## Detailed list of changes:
- Fixed startup delay caused by AWS upgrade
- Running WindowsService INSTALL will now automatically start the new service
- Removed log messages from GPG detection
- Fixed an issue with Agent not being able to see connection status in the UI
- Added Downloads folder to list of special folders
- Fixed an issue with the remote control heartbeat period
- Re-introduced the crashlog feature
- Updated FTP backend to be compatible with the previous FTP backend
- Fixed an issue with quiet MSI upgrades
- MSI will automatically attempt to stop and restart the service during install
- Added single-click handler to TrayIcon on Linux+Windows
- Added pCloud native backend
- Fixed issue with DST changes causing schedule time-of-day to change
- Fixed issue with lingering update notification
- Added option to ignore snapshot warnings from HyperV on client-Windows
2024-11-14 - 2.0.9.111_canary_2024-11-14
==========
This release is a canary release intended to be used for testing.
This release is expected to progress to a stable release if no major blockers are found.
**Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.**
The builds are self-contained so Mono or .NET installations are not required to install.
**Important changes from last Beta**
- 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
# New tool to manage a running server
Due to incompatibility with `duplicati_client` a new tool is included, named `Duplicati.CommandLine.ServerUtil.exe`/`duplicati-server-util`.
# Upgrade from `v2.0.9.105`
If you are upgrading from 2.0.9.105 please see the release notes from 2.0.9.106 for how to prepare the database.
Upgrades from other versions do not need special steps.
## Detailed list of changes:
- Added missing options to Agent commandline
- Fixed a warning when using the S3 backend
- Sending package type id to usage reporter
- Reduced log output and increased heartbeat period for Agent
2024-11-09 - 2.0.9.110_canary_2024-11-09
==========
This release is a canary release intended to be used for testing.
This release is expected to progress to a stable release if no major blockers are found.
**Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.**
The builds are self-contained so Mono or .NET installations are not required to install.
For users running on builds prior to 2.0.9.x, this build will appear later as an update that requires manual installation.
**Important changes from last Beta**
- 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
Please see list of known issues related to .NET8/Kestrel upgrade:
https://github.com/orgs/duplicati/projects/2
# New tool to manage a running server
Due to incompatibility with `duplicati_client` a new tool is included, named `Duplicati.CommandLine.ServerUtil.exe`/`duplicati-server-util`.
# Upgrade from `v2.0.9.105`
If you are upgrading from 2.0.9.105 please see the release notes from 2.0.9.106 for how to prepare the database.
Upgrades from other versions do not need special steps.
## Downgrade backup database to v12
If you need to go back to v12, run these two SQL statements:
```
DROP INDEX "UniqueBlockVolumeDuplicateBlock";
UPDATE "Version" SET "Version" = 12;
```
## Detailed list of changes:
- Minor updates to help text and option types
- Fixed an issue with file backend url on Windows, thanks @Jojo-1000
- Fixed a condition that could hang the trayicon on a crash
- Updated AWSSDK to latest version
- Fixed an issue with the AWS Secrets Manader provider stalling the load of settings
- Fixed Telegram notifications
- Added Agent MSI installer
- Updated Avalonia to the latest version to fix crash on Debian
- Added Agent PKG for MacOS
- Added CLI PKG for MacOS
- Added autolaunch for Agent Deb package
- Added option to let scripts create log entries
2024-11-06 - 2.0.9.109_canary_2024-11-06
==========
This release is a canary release intended to be used for testing.
This release is expected to progress to a stable release if no major blockers are found.
**Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.**
The builds are self-contained so Mono or .NET installations are not required to install.
For users running on builds prior to 2.0.9.x, this build will appear later as an update that requires manual installation.
**Important changes from last Beta**
- 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
Please see list of known issues related to .NET8/Kestrel upgrade:
https://github.com/orgs/duplicati/projects/2
# New tool to manage a running server
Due to incompatibility with `duplicati_client` a new tool is included, named `Duplicati.CommandLine.ServerUtil.exe`/`duplicati-server-util`.
# Upgrade from `v2.0.9.105`
If you are upgrading from 2.0.9.105 please see the release notes from 2.0.9.106 for how to prepare the database.
Upgrades from other versions do not need special steps.
## Downgrade backup database to v12
If you need to go back to v12, run these two SQL statements:
```
DROP INDEX "UniqueBlockVolumeDuplicateBlock";
UPDATE "Version" SET "Version" = 12;
```
## Detailed list of changes:
- Updated list of S3 endpoints to include Segate Lyve
- Updated all backends to support asyncronous calls
- Bugfixes for the new API implementation
- Bugfix for recreate failing on some systems
- Added option to disregard advisory locking on Linux
- Fixed issues with WebDAV and self-signed certificates
- Removed the deprecated FTP backend and made FluentFTP handle both FTP and aFTP
- Fixed a performance issue with compacting
- Fixed issues with remote control registration
- Fixed a performance issue with SharpAESCrypt
- Fixed an incorrect error masking another error in backups
- Support for EC-based certificates, thanks @mnaiman
- Always excluding the SQLite journal file for the active database
- Added support for detecting self-signed certificates and securely accepting them
- Cleaned up CSS/Less files, thanks @luixxiul
- Improved IPv6 support for `loopback` and `any`
- Fixed Rclone backend not setting defaults for empty strings
- Fixed a bug in the recompress tool, if not using encryption
- Fixed an issue where SharePoint would not honor the server throttle requests
- Improved cleanup after removing volumes, thanks @Jojo-1000
- Removed 7z compression
- Simplified showing the default value of boolean options
- Fixed an issue with leftover index files, thanks @Jojo-1000 and @ts678
- Fixed an issue that would cause verification errors if the compact was interrupted, thanks @Jojo-1000 and @ts678
- Fixed an issue where `dindex` files would be missing a blocklist, causing extra download on restores
- Fixed CSS/Less to rely on autoprefixer, thanks @luixxiul
- Added support for reducing the system load intensity
- Disabled Telegram notification destination
- Added support for external secret providers
2024-10-03 - 2.0.9.108_canary_2024-10-03
==========
This release is a canary release intended to be used for testing in preparation of a later stable release.
**Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.**
For that reason, the updater in previous canary builds does not detect this update yet, but this can be activated at a later time.
The builds are self-contained so Mono or .NET installations are not required to install.
**Important changes from last Beta**
- 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
Please see list of known issues related to .NET8/Kestrel upgrade:
https://github.com/orgs/duplicati/projects/2
# New tool to manage a running server
Due to incompatibility with `duplicati_client` a new tool is included, named `Duplicati.CommandLine.ServerUtil.exe`/`duplicati-server-util`.
# Upgrade from `v2.0.9.105`
If you are upgrading from 2.0.9.105 please see the release notes from 2.0.9.106 for how to prepare the database.
Upgrades from other versions do not need special steps.
# New experimental UI
This version features a new more modern UI based on Angular18 :tada:
Not all features are implemented just yet, so the new UI is not yet default.
The curious ones can try it by visiting `http://localhost:8200/theme.html` (or similar).
## Detailed list of changes:
- Added export feature to server-util
- Default to using .NET built-in Zip code for performance improvements
- Added `/health` healthcheck API to server + server-util
- Removed unuspported use of `Thread.CurrentCulture`
- Removed unsupported use of `Environment.OSVersion`
- Removed support for piped download as it was slow and caused hangs
- Fixed an issue with multi-instance detection that caused crashes
- Added a new experimental UI
- Added support for enabling remote control
2024-09-11 - 2.0.9.107_canary_2024-09-11
==========
This release is a canary release intended to be used for testing in preparation of a later stable release.
**Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.**
For that reason, the updater in previous canary builds does not detect this update yet, but this can be activated at a later time.
The builds are self-contained so Mono or .NET installations are not required to install.
**Important changes from last Beta**
- 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
Please see list of known issues related to .NET8/Kestrel upgrade:
https://github.com/orgs/duplicati/projects/2
# New tool to manage a running server
Due to incompatibility with `duplicati_client` a new tool is included, named `Duplicati.CommandLine.ServerUtil.exe`/`duplicati-server-util`.
# Upgrade from `v2.0.9.105`
If you are upgrading from 2.0.9.105 please see the release notes from 2.0.9.106 for how to prepare the database.
Upgrades from other versions do not need special steps.
## Detailed list of changes:
- Prepared some additional localization strings
- Fixed a bug with server-util not finding backups by name
- Added support for insecure connections from server-util
- Embedding backwards compatible ARMv7 binaries in builds
- Another fix for MSI packages breaking on upgrade
- Improved Swagger output to include types
- Replaced `WebRequest` for WebDAV with `HttpClient`
- Reduced log output from server-util and TrayIcon
- Microfix for USN parsing
- Fixed a case where almost identical files could cause broken index files, thanks @Jojo-1000
- Also improved handling when reading index files with broken lists, thanks @Jojo-1000
- Fixed auto-repair failing due to locked databases, thanks @Jojo-1000
2024-09-03 - 2.0.9.106_canary_2024-09-03
==========
This release is a canary release intended to be used for testing in preparation of a later stable release.
**Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.**
For that reason, the updater in previous canary builds does not detect this update yet, but this can be activated at a later time.
**Important changes from last Beta**
- Updated to .NET8 with OS specific builds
- Using Kestrel as the API/UI server
- Mandatory password and new authentication scheme
- Settings database version updated to v8
Please see list of known issues related to .NET8/Kestrel upgrade:
https://github.com/orgs/duplicati/projects/2
# New tool to manage a running server
Due to incompatibility with `duplicati_client` a new tool is included, named `Duplicati.CommandLine.ServerUtil.exe`/`duplicati-server-util`.
The new tool can pause/resume a backup, run a backup, change the password and more:
https://github.com/duplicati/duplicati/pull/5483
# Encrypting database fields
To reduce the risk of leaking encryption passphrases and credentials,
many fields in the `Duplicati-server.sqlite` file can now be encrypted with user supplied key.
The following environment variables control the encryption options:
- `SETTINGS_ENCRYPTION_KEY`: Provides the settings encryption key.
- `DUPLICATI__REQUIRE_DB_ENCRYPTION_KEY=true`: Prevents starting with a key (also supported via `--require-db-encryption-key-true`).
- `DUPLICATI__DISABLE_DB_ENCRYPTION=true`: Forces Duplicati to run without encryption (also supported via `--disable-db-encryption=true`).
If you need to change the key, you can temporarily decrypt the database by starting the server with `--disable-db-encryption`.
After starting, stop the instance again, change `SETTINGS_ENCRYPTION_KEY` to the new key and start again without the argument, to have it re-encrypted.
To downgrade from this version, run once with `--disable-db-encryption`, and change the version number to 7, then install the previous version.
**Note for users of 2.0.9.105:** The method for extracting an encryption key from the machine seriail number did not produce secure results.
This feature has now been removed, and will prevent you from upgrading. To upgrade from 2.0.9.105, start with `--disable-db-encryption`, then exit, then upgrade to 2.0.9.106+.
Users from other versions than 2.0.9.105 will not have difficulties, and Docker users should not see any issues either.
## Detailed list of changes:
- Fixed console duration output including days
- Added blacklisting of some settings encryption keys
- Refactored the way databases are located to use shared code
- Fixed translation consistency issues, thanks @luixxiul
- Fixed missing commandline help on Windows
- Added dift support for JWT expiration
- Removed DeviceId as the source for settings encryption keys
- Fixed an issue where an authentication issue was reported as a server error
- Fixed MSI packages failing to upgrade
- Re-added the `FORSERVICE=true` flag to MSI packages
- Improved diganostics output from server-util
2024-08-29 - 2.0.9.105_canary_2024-08-29
==========
This release is a canary release intended to be used for testing in preparation of a later stable release.
**Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.**
For that reason, the updater in previous canary builds does not detect this update yet, but this can be activated at a later time.
**Important changes from last Beta**
- Updated to .NET8 with OS specific builds
- Using Kestrel as the API/UI server
- Mandatory password and new authentication scheme
- Settings database version updated to v8
- Encrypting data in `Duplicati-server.sqlite` with machine serial number
Please see list of known issues related to .NET8/Kestrel upgrade:
https://github.com/orgs/duplicati/projects/2
# New tool to manage a running server
Due to incompatibility with `duplicati_client` a new tool is included, named `Duplicati.CommandLine.ServerUtil.exe`/`duplicati-server-util`.
The new tool can pause/resume a backup, run a backup, change the password and more:
https://github.com/duplicati/duplicati/pull/5483
# Encrypting database fields
To reduce the risk of leaking encryption passphrases and credentials,
many fields in the `Duplicati-server.sqlite` file will be encrypted after running this version.
The key used to encrypt is derived from the machine serial number, so **the database cannot be decrypted on another machine**.
If your strategy relies on being able to read this database, you must take action.
These two setups are vulnerable:
- If you do not store a copy of the passphrase elsewhere
- If you make a copy of the settings database
We strongly recommend that you store a copy of the passphrase(s) securely, regardless of your setup.