Commit Graph
159 Commits
Author SHA1 Message Date
Kenneth Skovhede be667ce9b6 Don't push Docker with naked version
This PR updates the build process to not push Docker tags with naked version numbers, unless they are stable releases.

For a canary version, it will be tagged `canary` and `2.2.0.105-canary`.

For a stable version, it will be tagged with  `stable`, `2.2.0.0-stable`, `2.2.0.0`, and `latest`

This is done to make Duplicati releases more compatible with how other tools use version number tags.

This fixes #6797
This fixes #6797
2026-03-13 16:20:24 +01: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 Skovhede 543845378d Don't include shell extensions in agent build 2026-02-19 19:37:42 +01:00
Kenneth SkovhedeandGitHub a2d247adb3 Merge branch 'master' into feature/folder-status-indicator 2026-02-19 19:30:31 +01:00
Kenneth Skovhede f53b9f2a33 Fixed release builder to include the shell extension 2026-02-19 17:32:54 +01:00
Kenneth Skovhede 581c87ec41 Fix openSuse build
This fixes compatibility with OpenSUSE by using the target filenames as dependencies instead of the package names that differ (libICE vs libICE6).

This fixes #6166
2026-02-09 11:54:53 +01:00
Kenneth Skovhede 44bef1e855 Implement support for filesystem snapshots on macOS using APFS (Apple File System). This allows disks-consistent backups and backing up files that are locked by other processes by creating and mounting local snapshots using tmutil.
Key changes:
- Add `MacOSSnapshot` class implementing `SnapshotBase`
- Add helper scripts for creating, finding, and removing APFS snapshots
- Update `SnapshotUtility` to initialize macOS snapshots
- Enable `snapshot-policy` option for macOS in `Options.cs`
- Update build configuration to include APFS scripts
- Update snapshot test utility with macOS support

This fixes #6409
2026-02-04 15:02:31 +01:00
Kenneth Skovhede ccf5977779 Added support for building AppImage
This PR adds support for building AppImage outputs.

This also adds the metainfo.xml to .deb and .rpm packages.
2026-01-16 21:10:37 +01:00
Kenneth Skovhede 03d0bc38bd Fixed high-res package icons 2025-12-18 16:23:46 +01:00
Kenneth Skovhede 07f296622d Added support for Synology DSM
This adds back support for Synology DSM.

The implementation is compatible with DSM 7.2+ and integrates with DSM to forward requests through the DSM server into Duplicati.

The setup features database locks, using a random auth-key so DSM handles authentication.

The database is encrypted with a random key, and all data is stored in the `var` folder.

The uninstall can optionally remove the `var` data.

This is still a work in progress. The authentication integration with DSM does not currently work.
2025-12-16 14:47:37 +01:00
Kenneth Skovhede 78c2487fb9 Fixed an issue with building when signing is auto-disabled, but not explicitly disabled. 2025-12-02 20:39:06 +01:00
Kenneth Skovhede 3b695cf065 Added support for Photos on MacOS
This PR adds detection of the MacOS Photos folder, and intercepts reads and replaces them with PhotoKit calls.
With this, it is possible to make backups of all MacOS Photos, even if they are not stored locally.

The previous versions would just make a backup of the on-disk structure, which was not guaranteed to contain all photos, but instead has various indexing for finding photos, and may contain some original photos.

The option `--photos-handling` controls how Duplicati now deals with the Photos folder. The options are:
- `LibraryOnly`: Same as before, just treat it as a folder
- `PhotosOnly`: Ignore the folder contents and just back up the actual photos
- `PhotosAndLibrary` (default): Make a backup of the photos and the library on-disk. This may cause images to be stored twice, but de-duplication will usually limit the storage increase.

The option `--photos-library-path` can be used to point to the on-disk Photo library that should be handled, in case the auto-detection does not pick it up. If this does not point to a valid Photoslibrary, or the path is not being backed up, no special handling will be done.

Note that the restore is not restoring into Photos itself, but instead restores into a sub-folder in the Photolibrary that is called `dup_backup`. To get the photos out after a restore, one needs to right-click the Photolibrary folder, and choose "Show package contents" and then the `dup_backup` folder is revealed.

This is done to keep all photos in the same folder, but avoid messing with the structure of the on-disk Photolibrary.

A future update could allow restoring back into Photos, and metadata is captured for each image to eventually allow this.

This fixes #6381
2025-11-17 17:12:10 +01:00
Kenneth Skovhede 0d61eae192 Fixed a probe version number 2025-11-14 17:39:17 +01:00
Kenneth Skovhede 123ad98236 Bumped a few packages 2025-11-14 16:57:47 +01:00
Kenneth Skovhede cd7f11bd81 Fix up package versions 2025-11-14 16:52:22 +01:00
Kenneth Skovhede 1ea74a3c63 Updated to .NET10 2025-11-14 15:05:39 +01:00
Kenneth Skovhede a062295477 Fix naming issue for release builder
This fixes #6572
2025-10-31 11:10:18 +01:00
Kenneth Skovhede a61639c841 Fixed logic for release builder
If the user supplies --resume-from-upload, this now implies that the build folder should not be deleted
2025-10-08 10:12:54 +02:00
Kenneth Skovhede 1c266110e0 Upgrade to latest libicu in Docker, and switch to libssl3t64 2025-08-19 11:02:31 +02:00
Kenneth Skovhede 1efe727996 Fixed permission validation issue for deb package 2025-08-14 10:20:40 +02:00
Kenneth Skovhede 094be4a9d8 Improve dependency on libicu
Since .NET dynamically loads libicu, it is not prone to ABI breakage and can load virtually any version.

However, there is no `Depends: libicu*` option in Debian packages, so we need the explicit package version. This is prone to breaking as new Debian version bump the version number.

This PR changes the `Depends:` to `Recommends:` so `libicu` is installed if possible, but does not prevent installation.

For cases where the is no `libicu` on the system, there is now a `preinst` script which will warn if the library is missing, but not prevent installation.

The warning should only show in Docker images or similar slim contexts, as `libicu` is otherwise installed with the base system.
2025-08-12 15:34:14 +02:00
Kenneth Skovhede db8c0ad67a Include script file in Docker builds 2025-08-09 00:00:45 +02:00
Kenneth Skovhede 39ea5a2a46 Fixed using assembly name 2025-08-08 13:15:19 +02:00
Kenneth Skovhede 1aa496923e Fixed version checks 2025-08-08 12:49:18 +02:00
Kenneth Skovhede cff8073b64 Fix after renames in SharpAESCrypt 2025-08-07 23:17:18 +02:00
Kenneth Skovhede 42a3d98c72 Added more preload 2025-07-11 22:14:59 +02:00
Kenneth Skovhede c3d539b721 Preload S3 libraries 2025-07-11 20:33:00 +02:00
Kenneth Skovhede 6502017c57 Merge remote-tracking branch 'origin/master' into feature/vanara-vss-backup 2025-07-03 17:09:30 +02:00
Kenneth Skovhede 98deb8c576 Update support for VSS
This updates VSS to default use Vanara in favor of AlphaVSS which is no longer maintained.

The build for Vanara requires targeting `net8.0-windows7.0`, which will cause significant build overhead and complexity for cross platform builds.
To counter this, the setup is to have a single project, `Duplicati.Library.WindowsModules`, that is targeting `net8.0-windows7.0`.
The output from this project is then hoisted into the TrayIcon project for Windows builds so the files are available when debugging on Windows.
A top-level dummy executable project is added to ensure the project always builds.
The built modules are then loaded with reflection when requested.

With the use of Vanara there is now also support for using BackupRead to read files without making a VSS snapshot.
With BackupRead, it is possible to read locked files, but it still requires the SeBackupPrivilege as VSS does as well.

Unfortunately, the `vssapi.dll` file is not shipped for Arm64 on Windows, so even with Vanara this will not work, and only WMIC is supported on Arm64.
A workaround is to run Duplicati with x64 emulation if more advanced VSS features are needed (HyperV and MSSQL support).

This PR also updates options and filters out unsupported options for each operating system, so options that are not supported by the current OS are not reported and will give warnings if they are used, as opposed to just being ignored.

The release builder project has been updated to exclude the unused project, and purge unwanted outputs.
2025-07-01 16:32:19 +02:00
Carl Johnsen 09d79512bc Handled package / assembly version mismatch due to revision numbers 2025-06-23 13:31:05 +02:00
Carl Johnsen b729a1929a SQLite no longer has to be manually patched 2025-06-23 13:30:46 +02:00
Carl Johnsen e536c73be2 Removed whitespace 2025-06-23 13:30:28 +02:00
Carl Johnsen 46499033b8 Exchanged one of the known packages in the ReleaseBuilder to expect Microsoft.Data.Sqlite instead of the old SQLite package. 2025-06-23 10:28:25 +02:00
Carl Johnsen a3d2ffbcd0 Removed whitespace 2025-06-23 10:27:35 +02:00
Kenneth Skovhede 80d4b5a571 Added retry for reading key files 2025-05-30 07:56:45 +02:00
Kenneth Skovhede 8353ab2569 Added support for resuming builds when the date changes. 2025-05-30 07:49:24 +02:00
Kenneth Skovhede e166918e87 RPM not overwriting config
This PR updates the RPM spec file to mark the config files as such. This ensures that files will not be replaced during updates if they are modified.

Also updated the description slightly to not mention now-defunct services in the description. Also applied this to Debian packages.

The agent based installation has been updated slightly to better differentiate it from the the CLI/GUI package.

Fixed a bug that prevented the preset file from being installed for the agent.

This fixes #6099
2025-05-19 17:27:21 +02:00
Kenneth Skovhede a0ecc5e05d Added a database downgrade tool 2025-04-24 16:36:14 +02:00
Kenneth Skovhede 589bb2416c Fixed some bugs with the license filename change 2025-04-23 15:37:38 +02:00
Kenneth Skovhede 5511ed6a46 Added support for additional libicu versions 2025-04-22 13:08:36 +02:00
Kenneth Skovhede 430e4a8b1b Better Windows support 2025-04-15 00:05:20 +02:00
Kenneth Skovhede e30fbf5613 Renamed build-only to compile-only.
More flexible setup for compile-only runs.
2025-04-14 22:14:06 +02:00
Kenneth Skovhede df939a4334 Add tests to build releases
This adds a CI test for building releases so we know in advance if package versions are out-of-order.

This also sets the primary project for CLI to the Server as that covers more than the CLI project.
2025-04-14 21:56:27 +02:00
Kenneth Skovhede cbaccecd9d Removed unused file 2025-04-14 18:02:26 +02:00
Kenneth Skovhede 0fb8930329 Added elaborate version comparison to avoid shipping with wrong versions. 2025-04-14 17:37:51 +02:00
Kenneth Skovhede 966391e245 Update release build stability
With 2.1.0.114 we re-introduced the assembly version issue.

This commit fixes the check to actually validate the version numbers.
2025-04-14 15:42:19 +02:00
Kenneth Skovhede bd7a080d15 Reverted logic for building with temporary solutions as that can cause debug builds in the outputs and gives build warnings.
The logic is reverted to build each project into a build folder, and then copy the files into a shared common folder.

An additional check examines the log output and checks that there are no debug builds performed or used.
2025-04-13 23:32:39 +02:00
Kenneth Skovhede cf47b77d7a Manually clean source folders prior to build 2025-04-01 13:25:50 +02:00
Kenneth Skovhede b1c8250a27 Force restore prior to analysis to ensure results are correct 2025-04-01 13:25:03 +02:00
Kenneth Skovhede b658ad30a4 Write sln to temp file first 2025-04-01 12:56:23 +02:00