Commit Graph
13965 Commits
Author SHA1 Message Date
Kenneth Skovhede b264e52a7a Fixed running server in-process from the WindowsService. This fixes the MSI not cleanly restarting a running service. 2026-06-01 16:45:00 +02:00
Kenneth Skovhede 36716949d0 Switched to using ServiceManager instead of custom scripting 2026-06-01 11:20:20 +02:00
Kenneth Skovhede 8dc8150220 Improved installer self-cleanup 2026-06-01 09:41:37 +02:00
Kenneth Skovhede 13f9800aee Improved upgrade flow with a service 2026-06-01 09:30:16 +02:00
Kenneth Skovhede 025f25711e Moved more logic from the MSI into WindowsService so we can manage it from C# code, which simplifies the logic in the MSI but adds a bit more scripting dependence.
The logic is now that there is a `Service` registry key that is locked down and used to communicate with the service. The service will refuse to use the key if it does not have the correct permissions.

Another key, `InstallState` is user readable and is used to keep track of what is installed with the MSI, and also communicates back if the initial password was applied.
2026-05-31 10:26:40 +02:00
Kenneth Skovhede 1f7b30a673 Migrated away from .idt tables in favor of a single .sql file that updates the MSI post-creation.
Added support for installing a `preload.json` file by setting the MSI option `INSTALL_PRELOAD=true` and then placing a `preload.json` file in the same folder as where the MSI is located.
2026-05-29 14:22:26 +02:00
Kenneth Skovhede 5fdcc644d7 Fix missing semicolon 2026-05-29 13:42:09 +02:00
Kenneth Skovhede 6bea04e2a5 Fixed logic to avoid resetting the password when re-installing the service. 2026-05-29 12:38:13 +02:00
Kenneth Skovhede a0e672f2cf Added support for configuring TLS certificates as part of the install 2026-05-28 22:57:25 +02:00
Kenneth Skovhede 29f3139e4a Added mst to support install with preload.json 2026-05-28 15:25:14 +02:00
Kenneth Skovhede 024bd1e162 Fixed password message showing when not using a service 2026-05-28 15:20:30 +02:00
Kenneth Skovhede 35a3bc1510 Added option to reset password from WindowsService 2026-05-28 13:51:38 +02:00
Kenneth Skovhede 5e35a965c4 Added support for setting a random password on install and storing this in the users credentials manager, such that regular user-installs will work with a service and desktop console. 2026-05-28 11:02:14 +02:00
Kenneth Skovhede e102e8cacd Added a custom UI for choosing installation options, so we no longer rely on the dated WixUI_FeatureTree.
Also fixed a bug with the shortcuts not being properly updated in service mode
2026-05-27 16:40:37 +02:00
Kenneth Skovhede 703e13909e Install as service on Windows
This adds the option to install Duplicati as a Windows service from within the MSI package.

This fixes #1738
This fixes #2384
2026-05-27 16:38:36 +02:00
Kenneth Skovhede 765235b009 Harden MSI installer
This PR adds explicit permissions to the installation folder, so even when installed to an insecure location, the folder cannot be modified.
2026-05-27 10:00:30 +02:00
Kenneth SkovhedeandGitHub d328be82ab Merge pull request #6930 from duplicati/release/canary-2.3.0.103
Version bump to v2.3.0.103-2.3.0.103_canary_2026-05-22
2026-05-22 19:10:25 +02:00
Kenneth Skovhede c39aba97a4 Version bump to v2.3.0.103-2.3.0.103_canary_2026-05-22
You can download this build from:

Binaries: https://updates.duplicati.com/canary/?version=2.3.0.103

Signature file: https://updates.duplicati.com/canary/duplicati-2.3.0.103_canary_2026-05-22.signatures.zip
v2.3.0.103_canary_2026-05-22 v2.3.0.103-2.3.0.103_canary_2026-05-22
2026-05-22 14:49:15 +02:00
Kenneth SkovhedeandGitHub d0ddf1716c Merge pull request #6821 from redmars27/movistarCloud
Movistar cloud
2026-05-22 11:01:49 +02:00
Kenneth SkovhedeandGitHub 96acfb1d75 Merge pull request #6929 from duplicati/feature/bump-ngclient-223
Update ngclient to 0.0.223
2026-05-22 08:09:37 +02:00
Kenneth Skovhede 3986366f7a Update ngclient to 0.0.223 2026-05-22 08:07:43 +02:00
Kenneth SkovhedeandGitHub 0d53a0f2a0 Merge pull request #6928 from duplicati/feature/update-duplicati-backend
Update Duplicati-backend
2026-05-21 13:56:29 +02:00
Kenneth Skovhede c3ad6fb697 Fixed timeout logic to guard all Http calls 2026-05-21 12:48:42 +02:00
Kenneth Skovhede 703a86cb09 Mark module as untested 2026-05-21 11:13:08 +02:00
Kenneth SkovhedeandGitHub a60bb1757d Merge branch 'master' into movistarCloud 2026-05-21 11:11:44 +02:00
Kenneth SkovhedeandGitHub 63d0a44d71 Merge pull request #6921 from duplicati/feature/add-ipc-for-controller
Added IPC for operations
2026-05-21 11:10:44 +02:00
Kenneth SkovhedeandGitHub 3166223508 Merge pull request #6927 from duplicati/feature/fix-timeout-onedrive
Fix OneDrive timeout
2026-05-21 11:10:07 +02:00
Kenneth Skovhede e896548656 Update Duplicati-backend
Updated the Duplicati backend to support direct backups where the storage server returns keys to an AWS compatible storage and lets the client communicate directly with the storage.

The gateway mode is stil supported.
2026-05-21 11:09:50 +02:00
Kenneth Skovhede 4bad50eda6 Updated to a more maintainable setup, inplementing the interface more directly.
Added a test for IPC callbacks.
2026-05-20 18:17:10 +02:00
Kenneth Skovhede 09106aa977 Fix OneDrive timeout
This removes a built-in HTTP timeout of 100s that is applied to all requests.

Since Duplicati sometimes need more than 100s to transfer a file, this could cause problems.

Duplicati already handles timeouts, but this timeout was happening regardless of Duplicati's other timeouts.
2026-05-20 15:27:33 +02:00
Kenneth SkovhedeandGitHub 5e8479d574 Merge pull request #6923 from duplicati/feature/improve-snapshot-error-message
Improved error message on snapshot failure
2026-05-19 08:42:26 +02:00
Kenneth Skovhede 491ce24119 Refined permission check indicator slightly 2026-05-18 08:23:09 +02:00
Kenneth Skovhede 15b432779e Improved error message on snapshot failure 2026-05-18 08:16:34 +02:00
redmars27 f741647477 cleaning up comments 2026-05-16 23:37:00 +02:00
redmars27 cd1870b314 remove --root-folder-path to use standard path offered by the URL config 2026-05-16 23:32:16 +02:00
redmars27 4a309dc4ba Honor DefaultWaitForValidation. Another alternative could be to add to Library.Utility.Utility.ParseBoolOption a default behavior like other methods 2026-05-16 21:27:50 +02:00
redmars27 d8c88fee64 Adding a warning on the logs if file is not uploaded with status=U within deadline 2026-05-16 20:52:54 +02:00
Kenneth Skovhede bc945f4a29 Added IPC for operations
This PR adds experimental support for running the backup in an isolated process.

The motivation for this is to protect the server from a faulty process and later enable running server and processing with different security levels.

This needs to be toggled on, and then it will run the process isolated. When running as an isolated process, the "Abort" call will kill the process so it can no longer become "stuck".
2026-05-15 17:13:21 +02:00
Kenneth SkovhedeandGitHub 0508afde1c Merge branch 'master' into movistarCloud 2026-05-15 09:44:07 +02:00
Kenneth SkovhedeandGitHub 36d4c9ec9d Merge pull request #6919 from duplicati/feature/make-options-detached
Detatch options on controller
2026-05-15 09:37:37 +02:00
Kenneth Skovhede e377bce6d1 Fixed run-script tests 2026-05-14 22:45:40 +02:00
Kenneth Skovhede e613142bca More option passing cleanup 2026-05-14 22:45:11 +02:00
Kenneth Skovhede 21c1f899ce Fixed a failing test due to options 2026-05-14 22:37:18 +02:00
Kenneth Skovhede 65eadb815c Fixed restore in recovery tool 2026-05-14 22:25:41 +02:00
Kenneth Skovhede f03cf2f7a3 Detatch options on controller
When creating a new controller, the options dictionary was used by-reference.

This meant that code could update the options dictionary *after* creating the controller, which would not be thread-safe.

It does not have much effect on regular operations as the normal method is to create the dictionary, pass it, and not modify it.

But in the tests, we frequently re-use the dictionary and update it with new values to test various cases.

Due to the dictionary being a reference, the controller would update the dictionary to fit the operations, but this would reflect back into the tests, meaning that some tests were being run with options that were not supposed to be there.

This meant that at least two edge cases that we test for were never found to have errors, even though they do.

The first issue is the listing of files using a non-default blocksize. The second issue is recreating the database with a non-default file-hash algorithm.

This PR removes the reference passing, and fixes the issues that were uncovered.
2026-05-14 17:59:49 +02:00
Kenneth SkovhedeandGitHub 16d3bdb16c Merge pull request #6918 from duplicati/feature/update-mega-s4-endpoints
Update Mega S4 endpoints
2026-05-14 09:08:12 +02:00
Kenneth Skovhede d6917b0e9c Update Mega S4 endpoints 2026-05-14 09:07:49 +02:00
Kenneth SkovhedeandGitHub 0d29006317 Merge pull request #6915 from duplicati/feature/make-controller-async
Make controller Async
2026-05-13 20:06:25 +02:00
Kenneth SkovhedeandGitHub e1dbc1e44b Merge pull request #6917 from duplicati/feature/defensive-macos-timestamps
Guard against invalid timestamps on MacOS
2026-05-13 18:01:25 +02:00
Kenneth SkovhedeandGitHub 4b1847bfd0 Merge pull request #6916 from duplicati/features/hide-internal-options
Hide test options
2026-05-13 17:14:04 +02:00