[FEATURE REQUEST] Add WebDAV as a backup target for Package Backup (self-hosted cloud backups)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C#
- Estrellas
- 26.8k
- Forks
- 970
- Merge medio
- 17 h 26 min
- PR fusionados (30 d)
- 134
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Devolutions/UniGetUI
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Devolutions/UniGetUI#5723 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug priority: low winget
Dificultad 3/5 1-2 días Aptitud para principiantes 56/100
Devolutions/UniGetUI#5722 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug winget
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Devolutions/UniGetUI#5721 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[IMPROVEMENT] Lower GPU usageAbiertoenhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
Devolutions/UniGetUI#5718 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug priority: medium
Dificultad 4/5 1-2 días Aptitud para principiantes 43/100
Devolutions/UniGetUI#5685 · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de Devolutions/UniGetUI
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
criticalmanufacturing/cli#909 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
RadicalCSG/com.chisel#312 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
eyalgolan/statecraft-israel#3093 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
DeveloperAcademy-POSTECH/2026-C6-M10-MUSA#677 ·
Los mantenedores suelen responder en 1 día
-
REQ-13 : une demande En cours perd son responsable par un simple enregistrement, et reste En coursAbiertoa-corriger bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
christian-raj/S-Aloha#301 ·