Commit Graph
173 Commits
Author SHA1 Message Date
Kenneth Skovhede b26782ddf1 Improve config speed from console
This PR updates the remove configuration to receive configuration directly on connection, instead of waiting for the server to send it.

This also adds a hibernation setting that will let the server tell the client to stop connecting for a while which can reduce resource consumption at the cost of not being always available.
2026-04-21 14:47:03 +02:00
Kenneth Skovhede c0f40e19ca Updated copyright year to 2026 across the project 2026-04-16 15:21:24 +02:00
Kenneth Skovhede 07cd39af34 Add support for managed TLS
This PR adds support for generating a self-signed CA and then using that CA to generate TLS certificates.

A new tool `duplicati-configure` / `Duplicati.CommandLine.ConfigureTool.exe` is added to manage the certificates.  The tool saves the configuration in the database and is meant to run with elevated privileges for the initial CA installation.

The option `--configure-https` can be added to server/trayicon, and if the process has permissions, this will automatically install the CA certificate.

If a CA is configured, the server will automatically issue, renew and use a TLS certificate.

With this setup, the TLS is opt-in, but once the flow is well tested, we can switch it to opt-out.
2026-03-01 11:33:05 +01:00
Kenneth SkovhedeandGitHub e8bc016791 Merge branch 'master' into feature/folder-status-indicator 2026-02-20 10:34:16 +01:00
Kenneth Skovhede 21f85dbcc9 Fixed a compile issue after merge 2026-02-20 10:32:08 +01:00
Kenneth SkovhedeandGitHub 8cf2154037 Merge pull request #6768 from duplicati/feature/add-google-workspace-backup
Add support for Google Workspace backup
2026-02-20 08:56:40 +01:00
Kenneth SkovhedeandGitHub 336e30936e Merge pull request #6773 from duplicati/feature/add-tempdisk-api
Add temp disk space check endpoint
2026-02-20 08:56:26 +01:00
Kenneth SkovhedeandGitHub a2d247adb3 Merge branch 'master' into feature/folder-status-indicator 2026-02-19 19:30:31 +01:00
Kenneth Skovhede 4bba0d4a41 Updated unmasking to support values from persisted ConnectionStrings 2026-02-19 16:35:49 +01:00
Kenneth Skovhede 55ed014689 Fixed a missing connectionStringID mapping 2026-02-19 16:34:52 +01:00
Kenneth Skovhede 8cebbd4f3c Add temp disk space check endpoint
Add a new V2 API endpoint POST `/system/temp-disk-space` that reports
free and total disk space for the configured temporary folder. The
endpoint accepts an optional backup ID to resolve backup-specific
tempdir overrides, and returns the resolved temp path, free/total
space, `dblock-size`, and `restore-cache-max values`.
2026-02-19 14:23:51 +01:00
Kenneth Skovhede 94d272e734 Added support for also storing the connectionstringId for additional target urls 2026-02-19 10:41:27 +01:00
Kenneth Skovhede ea6d94b035 Added support for storing multiple targets in database with backwards compatibility. 2026-02-18 11:06:08 +01:00
Kenneth Skovhede b8e148d000 Merge remote-tracking branch 'origin/HEAD' into feature/add-destination-repo 2026-02-17 10:29:53 +01:00
Kenneth Skovhede f785f3e6ea Reworked restore flow to support unmasking source path for destination 2026-02-16 22:33:28 +01:00
Kenneth Skovhede 23e1d8ee3e Fixed correct unmasking of remote sources 2026-02-16 22:05:44 +01:00
Kenneth Skovhede c606dba53a Fixed issues with testing remote sources when masked 2026-02-06 14:04:51 +01:00
Kenneth Skovhede fa6dd0fd94 Fixed option to provide a connection string id for test methods 2026-02-05 10:43:16 +01:00
Kenneth Skovhede 9dd6dba0c2 Merge remote-tracking branch 'origin/master' into feature/add-destination-repo 2026-02-05 10:26:45 +01:00
Kenneth Skovhede 0f806c1a3a Improve WebDAV SSL certs
This PR now checks for the SSL certificate and the UI will offer to pin the certificate if this is not a trusted certificate.

Also, the sourceproviders and restoredestinationproviders now actually invoke the `Test` method when being tested.
2026-02-03 14:57:11 +01:00
Kenneth SkovhedeandGitHub 562cb1199a Merge branch 'master' into feature/add-destination-repo 2026-02-02 11:00:39 +01:00
Kenneth SkovhedeandGitHub 0a702f48ff Merge branch 'master' into feature/folder-status-indicator 2026-01-30 16:22:18 +01:00
Kenneth Skovhede cf17d2617e Added a connection string repo
This adds a connection string repo, where connection strings can be stored.

The general idea is that it is possible to store connection strings, say an S3 connection, and then re-use the connection string for multiple backups, editing as needed.

The implementation supports listing connection strings, creating, updating, and deleting them.

The connection strings are masked so sensitive information is not available in the browser, and the logic patches connection strings internally to ensure markers are replaced with the correct values.

The connection string itself is stored in full, such that a Duplicati version roll-back will not make the connectionstring become invalid.

There is also an endpoint that allows updating existing backups using the connection string, so it is easy to rotate keys. The logic for this feature is that it retains: scheme, port, host, path, and any extra settings on the target url.
It does not remove settings from the target, but will overwrite or add settings from the connectionstring.
2026-01-30 13:59:47 +01:00
Kenneth SkovhedeandGitHub 26f7dd8586 Merge branch 'master' into feature/add-office-365-backup 2026-01-29 20:04:42 +01:00
Kenneth Skovhede 0f61698238 Minor fixes for better experience when running a command and the database is in an incorrect version 2026-01-28 15:37:41 +01:00
Kenneth SkovhedeandGitHub c8283fe299 Merge branch 'master' into feature/add-office-365-backup 2026-01-27 20:44:45 +01:00
Kenneth Skovhede 732b4e3989 Implemented support for the Test operation on sourceProvider and restoreDestinationProvider 2026-01-25 11:57:09 +01:00
Kenneth Skovhede e9af50f9ac Added minor code cleanup
- Added missing cultureinformation on some date/time strings
- Added a check if a file exists to avoid an exception when probing for datafolder files
- Fixed a string that should be a constant
- Fixed a dirseparator append
- Fixed places where the exception message was logged into the log message itself creating double data
2026-01-23 11:43:59 +01:00
Kenneth Skovhede 1523f730e3 Added support for storing metadata in the database 2026-01-14 10:01:20 +01:00
Kenneth Skovhede 6ac07531bd Change webmodule to have async return value 2026-01-14 09:49:56 +01:00
Andy Bodnar 1538ed4b26 Add Windows folder icon overlay for backup status
This adds a Windows Shell Extension that shows overlay icons on folders
that are included in Duplicati backups, similar to how cloud storage
solutions like OneDrive and Google Drive indicate sync status.

The feature includes:
- New API endpoint /api/v1/folderstatus to query backup status of folders
- Windows Shell Icon Overlay handlers for backed up, warning, error and
  syncing states
- Client methods in DuplicatiServerClient for the new endpoint
- Registration script for the COM shell extension

Closes #6450
2026-01-11 14:34:52 -07:00
Kenneth SkovhedeandGitHub e37a636819 Merge pull request #6684 from duplicati/feature/support-remote-locking
Add support for remote locks
2026-01-05 14:44:37 +01:00
Kenneth Skovhede 0dbcb456cc Improve API for getting registration status.
This PR adds a new endpoint to explicitly wait for registration instead of reusing the registration endpoint for both starting and continuing registration wait.
2025-12-18 08:11:14 +01:00
Kenneth Skovhede 6e6e993765 Fixed issues with database transaction not being comitted.
Renamed the options to be more descriptive.
Rewrote the dependency query to be more readable and also check for metadata dependency.

Fixed an edge case where there were no modified files, and no new backup is created.

Fixed some issues with local/utc datetime compares.

Fixed logic for deleting filesets to only look at the filesets themselves. This makes the version lock follow the dlist file, and can create "dangling" volumes that have no filesets, but these will be picked up by compaction.

Updated tests to work correctly.

Added lock-info update option for the backup recreate call, so the UI can also re-create lock information on database rebuilds.
2025-12-17 22:27:38 +01:00
Kenneth Skovhede e2f37fb86b Improved support for authenticating behind a proxy
This PR adds new support for fine-grained control over the server/ui handling when the X-Forwarded-Prefix header is set.

Additionally, this allows getting a websocket token, so cases where the websocket is not pre-authenticated, but regular requests are authenticated, it works the same.

Added a new endpoint for probing for pre-authenticed conditions without causing a 401 to be logged.
2025-12-16 14:39:58 +01:00
Kenneth Skovhede d7ab1b03ac Merge remote-tracking branch 'origin/HEAD' into feature/duplicati-storage-backend
Streamlined the use of SharedRemoteOperation
2025-12-10 15:33:35 +01:00
Kenneth Skovhede e968f81f26 Fixed issues with webmodule 2025-12-10 11:54:23 +01:00
Kenneth Skovhede 5cfa9724d7 Added support for loading remote backup names in Duplicati Storage 2025-12-09 21:17:01 +01:00
Kenneth Skovhede 772005cf40 Merge remote-tracking branch 'origin/HEAD' into feature/duplicati-storage-backend 2025-12-04 15:30:45 +01:00
Kenneth Skovhede 1e4a1d3df3 Added support for settings override in imports
This PR adds the option to provide additional settings when importing a backup.

The ServerUtil has been expanded to support passing in the target url and backup passphrase when importing a backup.

Also clarified wording around the import passphrase as there are (at least) two passphrases related to imports.

This fixes #6640
2025-12-02 10:26:45 +01:00
Kenneth Skovhede 7748cd199f Added support for auto-patching connection details into destination 2025-11-27 15:39:59 +01:00
Kenneth Skovhede 8e5f092a85 Added support for importing a backup as temporary
This allows the FE to call the import with both `direct` and `temporary` set to `true` to import from a config without needing a second step.

Once the FE is updated to support this, we can keep the unencrypted passwords out of the FE during import-from-config
2025-11-03 19:06:03 +01:00
Kenneth Skovhede 50ac1e81e1 Add support for unmasking passwords from commandline
This fixes the commandline call so masked passwords are unmasked before being sent for execution.

This also removes the wrong use of `Thread.Abort()` in the runner, which could abort random tasks in the server.
2025-09-26 10:53:31 +02:00
Kenneth Skovhede 55478523aa Fixed masked passwords breaking test function
This updates the masked password feature to be better at detecting variations of the password mask, such as removing one or more asterisks from the string.

This also updates the "Test destination" endpoints to support a backupId so the call can unmask the target urls.
2025-09-25 13:11:39 +02:00
Kenneth Skovhede 34b6f9ea55 Implemented remotely managed backup configurations
This PR adds the ability to manage backup configurations outside of the the client.

The implementation ensures that locally created configurations cannot be affected by the remotely managed backups.

If the instance is not connected to a remote console, this has no effect.

This PR updates the local database to add the column `ExternalID` that tracks backups that are managed remotely.
2025-09-17 15:07:09 +02:00
Kenneth SkovhedeandGitHub 360253c062 Merge branch 'master' into feature/hyperv-and-mssql-sources 2025-09-12 09:07:04 +02:00
Kenneth Skovhede 45f902594e Mask passwords to avoid leaking them in the UI
This PR adds a masking function that replaces sensitive parameters with a masking string, such that the passwords are never submitted to the client during edits.

For now, the export feature (both as JSON and as commandline) do not mask the sensitive parameters.

This fixes #2024
2025-09-04 22:03:10 +02:00
Svend Roperos 490c40cd3b fix: remove testplugin 2025-09-04 20:16:02 +02:00
Svend Roperos 1aff3f86bd feat: add support for specific VM lookup and fetch VM names if missing 2025-09-04 20:14:52 +02:00
Svend Roperos c261d3a550 feat: add server selections on MSSQL 2025-09-04 20:14:52 +02:00