[FEATURE REQUEST] Add WebDAV as a backup target for Package Backup (self-hosted cloud backups)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
調査の方向性
Start by reading the existing Package Backup and GitHub Cloud Backup implementation, then trace how scheduled and manual backups create the .ubundle/JSON payload and how the Bundle restore flow loads it. The issue describes adding WebDAV configuration, uploads, remote listing and downloads, credential storage, and offline handling; done when those flows work while existing GitHub backup remains unchanged. The payload does not name specific files or tests.
索引モデルが issue の本文から書いたものです。
説明
Please confirm these before moving forward.
- I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- This proposal is a completely new feature. If you want to suggest an improvement or an enhancement, please use this template.
Describe the new feature
Background / Motivation
UniGetUI 3.3.0+ can export the installed-package list as a local .ubundle/JSON bundle and, through Cloud Backup, periodically sync it to a private GitHub repository/Gist tied to the user's GitHub account. This makes reinstalling Windows or migrating to a new PC remarkably easy.
Today GitHub is the only remote backup target. That means users must create and trust a third-party account, depend on its OAuth flow and service availability, and in some regions or restricted networks GitHub access is unreliable or blocked. Users who already run a self-hosted NAS or a WebDAV-capable cloud drive cannot point UniGetUI at storage they own and control. The local export works, but it remains a manual copy step and provides no automatic off-device copy of the backup.
Desired feature
Add "WebDAV" as an optional backup destination alongside the existing GitHub Cloud Backup, under Settings > Package Backup:
- Configuration: server URL (HTTPS), remote folder/path, username and password/app-specific token. Store credentials securely (e.g. Windows Credential Manager / DPAPI), never in plaintext or in logs.
- Reuse the existing backup payload (.ubundle/JSON) and the existing "Periodically perform a backup" schedule plus the manual "Backup now" button: upload the generated file with PUT, while keeping a local copy as a fallback.
- Restore flow: list remote backups (PROPFIND), let the user select one, download it (GET) and feed it into the existing Bundle restore flow.
- Multi-device safety: use per-device filenames (e.g. HOSTNAME\username.ubundle) or explicit naming so two machines do not overwrite each other's backup.
- Robustness: timeouts and retries, clear error reporting that never blocks the local backup, queued uploads while offline, optional timestamped/versioned copies or ETag-based conflict handling, TLS/self-signed certificate options and proxy support.
- GitHub backup stays unchanged and remains the default; WebDAV is opt-in.
Use cases
- A desktop and a laptop at home/office both push their package lists to one WebDAV share; after a clean Windows install, pick the matching device backup and reinstall everything in a few clicks.
- Privacy- or compliance-minded users and teams keep their software inventory on an internal NAS reachable only over LAN/VPN, instead of a third-party service.
- Users of WebDAV-capable drives — Nutstore / 坚果云, Nextcloud, ownCloud, Synology or QNAP NAS, AList — get cloud backup without a GitHub account and without any extra server-side component.
- Unattended automation: scheduled backups run at logon and upload silently, failed uploads retry later, and the NAS can add its own snapshots/versioning.
Describe how this new feature could help users
Expected benefits
- Cross-device sync and a single central place for all machine backups, with no manual copying.
- Self-hosted data: users decide where backups live, who can read them and how long they are kept; less exposure to third-party account or OAuth changes, service outages, and regional access restrictions.
- Broad compatibility via a standard protocol (RFC 4918): mainstream cloud drives and home/office NAS work out of the box, with no service for UniGetUI to host or maintain.
- Makes scheduled, hands-off off-device backups practical, so the package list survives disk failure, theft, or a system reinstall.
- Additive and low-risk: no change for existing GitHub users; WebDAV client libraries are mature, and the existing backup payload and restore logic can be reused as-is.
- 主要言語
- C#
- スター
- 26.8k
- フォーク
- 970
- 平均マージ
- 17時間 26分
- マージ済み PR(30日)
- 134
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Devolutions/UniGetUI のほかの issue
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
Devolutions/UniGetUI#5723 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug priority: low winget
難易度 3/5 1〜2日 初心者へのやさしさ 56/100
Devolutions/UniGetUI#5722 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug winget
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
Devolutions/UniGetUI#5721 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
Devolutions/UniGetUI#5718 · コメント 2 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug priority: medium
難易度 4/5 1〜2日 初心者へのやさしさ 43/100
Devolutions/UniGetUI#5685 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
Devolutions/UniGetUI の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
criticalmanufacturing/cli#909 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
RadicalCSG/com.chisel#312 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
eyalgolan/statecraft-israel#3093 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 63/100
DeveloperAcademy-POSTECH/2026-C6-M10-MUSA#677 ·
メンテナーはふだん 1 日以内に返信
-
REQ-13 : une demande En cours perd son responsable par un simple enregistrement, et reste En coursオープンa-corriger bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
christian-raj/S-Aloha#301 ·