[FEATURE REQUEST] Add WebDAV as a backup target for Package Backup (self-hosted cloud backups)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
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 分钟
- 30 天内合并 PR
- 134
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Devolutions/UniGetUI 的其他 Issue
-
bug
难度 4/5 3-5 天 新手友好度 45/100
Devolutions/UniGetUI#5723 · 1 个 reaction ·
维护者通常 1 天内回复
-
bug priority: low winget
难度 3/5 1-2 天 新手友好度 56/100
Devolutions/UniGetUI#5722 · 1 个 reaction ·
维护者通常 1 天内回复
-
bug winget
难度 4/5 3-5 天 新手友好度 45/100
Devolutions/UniGetUI#5721 · 1 个 reaction ·
维护者通常 1 天内回复
-
enhancement
难度 4/5 3-5 天 新手友好度 42/100
Devolutions/UniGetUI#5718 · 2 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
bug priority: medium
难度 4/5 1-2 天 新手友好度 43/100
Devolutions/UniGetUI#5685 · 1 个 reaction ·
维护者通常 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 ·