301 lines
15 KiB
XML
301 lines
15 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE PLUGIN [
|
|
<!ENTITY name "urbm">
|
|
<!ENTITY author "Michael Roll">
|
|
<!ENTITY version "2026.06.21.r010">
|
|
<!ENTITY pluginURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm.plg">
|
|
<!ENTITY packageURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm-&version;-x86_64-1.txz">
|
|
<!ENTITY packageSHA256 "6223df8fefd872c4e102a9dfadb8103bce4de364d2836b85d773591c92025c4b">
|
|
]>
|
|
<PLUGIN name="&name;" author="&author;" version="&version;" pluginURL="&pluginURL;" min="7.0.0" support="https://git.casaderoll.de/michael/URBM/issues" icon="urbm.png">
|
|
<CHANGES>
|
|
### 2026.06.21.r010
|
|
- Enrich Unraid and Gotify notifications with structured job, repository, duration, snapshot, file, and data statistics.
|
|
- Use status-specific notification titles with success, warning, and failure indicators.
|
|
|
|
### 2026.06.21.r009
|
|
- Allow normal staging restores to explicitly selected safe targets under /mnt/user, /mnt/disks, and /mnt/remotes.
|
|
- Keep protected system paths blocked and continue rejecting symlink traversal in restore targets.
|
|
|
|
### 2026.06.21.r008
|
|
- Improve the visual hierarchy of folder trees with clearer disclosure buttons, row spacing, and normal path casing.
|
|
- Preserve tree and page scroll positions when expanding folders in directory and snapshot browsers.
|
|
|
|
### 2026.06.21.r007
|
|
- Show an indeterminate progress bar while a complete snapshot file tree is loading.
|
|
- Explain that no real percentage is available because Restic returns the full file listing only after completion.
|
|
|
|
### 2026.06.21.r006
|
|
- Sort runs and snapshots newest-first so lists get older from top to bottom.
|
|
- Apply newest-first ordering consistently to dashboard activity, activity history, failed runs, and snapshot tables.
|
|
|
|
### 2026.06.21.r005
|
|
- Reduce the snapshot path-count column width so the browse action sits directly next to it.
|
|
|
|
### 2026.06.21.r004
|
|
- Show only the number of source paths in the snapshot list to avoid horizontal overflow.
|
|
- Keep the full path list available as a tooltip and show actual contents in the snapshot browser.
|
|
|
|
### 2026.06.21.r003
|
|
- Compact long snapshot path lists into wrapped path chips with a remaining-count indicator.
|
|
- Prevent snapshot tables from forcing a horizontal page overflow when many source paths exist.
|
|
|
|
### 2026.06.21.r002
|
|
- Reuse the expandable folder tree for local repository folders, Rsync targets, restore targets, and directory settings.
|
|
- Preload complete snapshot file listings once and browse them locally in an expandable restore tree.
|
|
- Remove the previous snapshot browser truncation and extend the snapshot listing timeout for large backups.
|
|
|
|
### 2026.06.21.r001
|
|
- Add a separate emergency repository unlock action that invokes Restic unlock with --remove-all after a strong confirmation.
|
|
- Keep the normal unlock action safe by removing only stale locks that Restic considers safe to clear.
|
|
- Clarify unlock tooltips and warnings for repositories shared with other URBM or Restic clients.
|
|
|
|
### 2026.06.15.r023
|
|
- Add a per-job Restic file read concurrency setting for faster backups from SSD and NVMe sources.
|
|
- Keep zero as the backward-compatible Restic default and validate custom values from 1 through 64.
|
|
|
|
### 2026.06.15.r022
|
|
- Replace the source folder table with a lazy-loaded expandable tree for Restic and Rsync jobs.
|
|
- Add rotating disclosure triangles, nested indentation, and per-folder loading, empty, retry, and error states.
|
|
- Preserve full, inherited, and partial checkbox states across all expanded levels and normalize redundant parent/child selections.
|
|
|
|
### 2026.06.15.r021
|
|
- Show an orange mixed checkbox on parent folders when only some descendant folders are selected.
|
|
- Keep partial-selection indicators visible while navigating between folder levels for Restic and Rsync source selection.
|
|
- Add a clear "Partially selected" label and tooltip to distinguish descendant selections from full-folder selections.
|
|
|
|
### 2026.06.15.r020
|
|
- Add a guided Restic repository password change that creates and verifies a new key before removing the old key.
|
|
- Update the encrypted URBM secret only after Restic accepts the new password, with automatic repository rollback on secret-storage failure.
|
|
- Add a verified local-password adoption action for additional URBM servers that share a repository whose password was changed elsewhere.
|
|
- Block password changes while tasks are queued, running, or paused and replace misleading password fields in normal repository editing.
|
|
- Write encrypted secret records atomically to protect the previous password during filesystem failures.
|
|
|
|
### 2026.06.15.r019
|
|
- Add a clearly labeled manual-only schedule mode for every backup and Rsync job.
|
|
- Keep manual-only jobs enabled for one-click starts while excluding them from scheduled and catch-up runs.
|
|
|
|
### 2026.06.15.r018
|
|
- Run a write-free Rsync preflight to estimate the actual transfer size before copying.
|
|
- Abort Rsync jobs when the estimated transfer exceeds the free destination capacity.
|
|
- Add an explicitly confirmed override for advanced replacement scenarios where existing destination files will release enough space.
|
|
|
|
### 2026.06.15.r017
|
|
- Add scheduled Rsync copy jobs with separate source and destination folder browsers.
|
|
- Add explicit controls for overwrite behavior, destination deletion, permissions, ownership, timestamps, links, ACLs, extended attributes, checksums, and dry runs.
|
|
- Integrate Rsync progress, pause, resume, cancellation, activity history, and notifications into the existing global queue.
|
|
- Reject overlapping source and destination paths and require an extra confirmation before enabling destination deletion.
|
|
|
|
### 2026.06.15.r016
|
|
- Keep long backup progress statistics inside the progress column and wrap them before they can overlap pause or abort controls.
|
|
- Stack progress statistics on narrow displays for reliable activity-table layout.
|
|
|
|
### 2026.06.15.r015
|
|
- Generate compatible UUIDs on browsers and Unraid WebViews that do not provide `crypto.randomUUID()`.
|
|
- Prefer cryptographic random bytes when available and retain a schema-compatible last-resort fallback.
|
|
|
|
### 2026.06.15.r014
|
|
- Add a dedicated workflow for attaching and immediately testing an existing Restic repository without initialization.
|
|
- Detect a missing Restic config at local and mounted paths and suggest direct child directories that contain a repository.
|
|
- Explain that an existing repository path must directly contain config, data, index, keys, and snapshots.
|
|
|
|
### 2026.06.15.r013
|
|
- Replace invalid USB raw-image percentages, file counts, and multi-million-hour ETAs with streaming progress.
|
|
- Show bytes read and transfer rate while the final image size remains unknown until EOF.
|
|
|
|
### 2026.06.15.r012
|
|
- Allow multiple backup jobs to share one Restic repository while retaining per-job snapshot tags and retention policies.
|
|
- Catch asynchronous form submission errors so save failures are shown in the WebGUI instead of only in the browser console.
|
|
- Clarify shared-repository behavior in backup job help text.
|
|
|
|
### 2026.06.15.r011
|
|
- Parse Restic repository statistics correctly when progress output precedes the JSON result.
|
|
- Support compact and pretty-printed multi-line statistics JSON.
|
|
|
|
### 2026.06.15.r010
|
|
- Retry repository dashboard statistics once after safely removing stale Restic locks.
|
|
- Show the affected repository name and concrete Restic error when statistics still cannot be loaded.
|
|
|
|
### 2026.06.15.r009
|
|
- Add a per-backup-job CPU core limit using Restic's GOMAXPROCS setting.
|
|
- Apply the configured limit to normal backups and optional USB raw-image backups without affecting restore or maintenance tasks.
|
|
- Preserve existing behavior with 0 meaning all available CPU cores.
|
|
|
|
### 2026.06.15.r008
|
|
- Replace backup-run history graphs with actual per-repository Restic statistics.
|
|
- Show deduplicated stored repository data and the total files referenced by all snapshots.
|
|
- Load repository statistics separately from the two-second activity refresh to avoid repeated expensive scans.
|
|
|
|
### 2026.06.15.r007
|
|
- Add an optional raw USB flash image to flash backup jobs while retaining the normal browsable /boot backup.
|
|
- Stream the physical boot device directly into Restic as urbm-usb-flash.img without a temporary full-size image file.
|
|
- Detect the whole USB device behind the mounted /boot partition and tag image snapshots for retention and recovery.
|
|
|
|
### 2026.06.15.r006
|
|
- Place running backup controls directly beside progress instead of beyond an empty message column.
|
|
- Remove the unnecessary activity-table action column and its horizontal overflow.
|
|
|
|
### 2026.06.15.r005
|
|
- Truncate long activity job names cleanly while keeping the complete name available as a tooltip.
|
|
- Automatically clear safe stale Restic locks and retry retention once after a successful backup.
|
|
|
|
### 2026.06.15.r004
|
|
- Show readable job and repository names in activities instead of full internal UUIDs.
|
|
- Replace verbose Restic lock output with concise German recovery guidance and prevent status badges from overlapping adjacent columns.
|
|
|
|
### 2026.06.15.r003
|
|
- Keep activity tables inside their cards by wrapping long messages, paths, and job IDs and removing oversized empty action columns.
|
|
- Add controlled horizontal scrolling for activity tables on narrow displays.
|
|
|
|
### 2026.06.15.r002
|
|
- Add a confirmed repository unlock action that invokes Restic's safe stale-lock cleanup without `--remove-all`.
|
|
|
|
### 2026.06.15.r001
|
|
- Require repository passwords to be entered twice and reject mismatched values before saving secrets or configuration.
|
|
|
|
### 2026.06.14.r005
|
|
- Remove automatic repository subdirectory creation. The selected or entered path is used directly as the Restic repository location.
|
|
|
|
### 2026.06.14.r003
|
|
- Use URBM consistently as the Unraid navigation and page name instead of the translated Backup / Sicherung labels.
|
|
|
|
### 2026.06.14.r002
|
|
- Complete the product rename to URBM across the plugin ID, package, daemon, WebGUI, runtime paths, configuration paths, notifications, and Restic tags.
|
|
- Migrate existing configuration, run history, and encrypted secrets into the new URBM configuration directory.
|
|
|
|
### 2026.06.14.r001
|
|
- Switch to a zero-padded release identifier that remains sortable by Unraid's lexical version comparison.
|
|
- Add the complete German WebGUI translation from the superseded 2026.06.14.9.13 build.
|
|
|
|
### 2026.06.14.9.13
|
|
- Add a complete German translation for navigation, forms, activities, settings, actions, and user-facing messages.
|
|
|
|
### 2026.06.14.9.12
|
|
- Add Pause, Resume, and Abort controls for active Restic operations using Linux process-group signals.
|
|
|
|
### 2026.06.14.9.11
|
|
- Add a global setting to show live run logs in Activity, disabled by default.
|
|
|
|
### 2026.06.14.9.10
|
|
- Always show a clearly labeled activity history delete action, including when no completed entries exist.
|
|
|
|
### 2026.06.14.9.9
|
|
- Preserve the user's open or closed live-log state across automatic progress updates.
|
|
|
|
### 2026.06.14.9.8
|
|
- Add a Clear history action that removes completed activity entries and saved run logs while preserving active and queued tasks.
|
|
|
|
### 2026.06.14.9.7
|
|
- Explain already initialized repositories and incorrect or damaged Restic keys with actionable errors.
|
|
- Strengthen the Initialize confirmation for existing repository destinations.
|
|
|
|
### 2026.06.14.9.6
|
|
- Hide technical secret IDs and manage them automatically for repositories, SMB, SFTP, and Gotify.
|
|
- Require a Restic password when creating a new repository while preserving existing secrets during edits.
|
|
|
|
### 2026.06.14.9.5
|
|
- Add live backup progress with percentage, file and byte counters, transfer rate, ETA, and current file.
|
|
- Add a sanitized in-memory live log for backup, restore, check, and prune activities.
|
|
|
|
### 2026.06.14.9.4
|
|
- Make the repository form type-aware for local, SMB, NFS, and SFTP destinations.
|
|
- Add a folder browser for local repository paths.
|
|
|
|
### 2026.06.14.9.3
|
|
- Rename the visible product to URBM - Unraid Restic Backup Manager.
|
|
- Show Backup in the Unraid navigation while preserving the existing plugin identifier and configuration paths.
|
|
|
|
### 2026.06.14.9.2
|
|
- Include duration, new and changed files, added data, total backup size, file count, and snapshot ID in backup notifications.
|
|
|
|
### 2026.06.14.9.1
|
|
- Add native Unraid notifications and replace ntfy with Gotify.
|
|
- Allow success, warning, and failure events to be selected per notification channel.
|
|
|
|
### 2026.06.14.9
|
|
- Replace the job cron input with daily, weekday, selected-day, and time controls.
|
|
|
|
### 2026.06.14.8
|
|
- Show Michael Roll as the plugin author and add a dedicated URBM logo.
|
|
|
|
### 2026.06.14.7
|
|
- Add per-job age-based retention and optional daily, weekly, and monthly rotation settings.
|
|
|
|
### 2026.06.14.6
|
|
- Show clear inactive-state messages when Unraid VM Manager or Docker is disabled.
|
|
|
|
### 2026.06.14.5
|
|
- Make backup job forms type-aware with Docker container and VM discovery lists.
|
|
|
|
### 2026.06.14.4
|
|
- Add dashboard history charts for processed backup size and backed-up file count.
|
|
|
|
### 2026.06.14.3
|
|
- Force a daemon restart after every plugin upgrade so new API endpoints become active immediately.
|
|
|
|
### 2026.06.14.2
|
|
- Always show backup browser roots, display folder loading errors inline, and expose the running daemon version.
|
|
|
|
### 2026.06.14.1
|
|
- Match the backup source browser layout and controls to the snapshot file browser.
|
|
|
|
### 2026.06.14
|
|
- Switch to lexicographically sortable date versions for reliable Unraid update detection.
|
|
- Add checkbox folder browsers for backup sources and persistent multi-selection for restores.
|
|
|
|
### 0.1.11
|
|
- Add checkbox folder browsers for backup sources and persistent multi-selection for restores.
|
|
|
|
### 0.1.10
|
|
- Verify repository edits against the daemon and handle form submission without losing changes.
|
|
|
|
### 0.1.9
|
|
- Fix wrapped repository action layout and block initialization of volatile /tmp or /run destinations.
|
|
|
|
### 0.1.8
|
|
- Force a fresh WebGUI asset after updates, display the installed version, and warn about volatile /tmp or /run repositories.
|
|
|
|
### 0.1.7
|
|
- Add an explicit repository initialization action and a clear error for uninitialized destinations.
|
|
|
|
### 0.1.6
|
|
- Fix false CSRF errors by relying on Unraid's native request validation.
|
|
|
|
### 0.1.5
|
|
- Add delayed German tooltips with examples throughout the WebGUI.
|
|
|
|
### 0.1.4
|
|
- Add URBM as a first-class top navigation tab.
|
|
- Use native Unraid theme colors for reliable contrast.
|
|
|
|
### 0.1.3
|
|
- Restore the URBM entry directly under the Unraid Tools menu.
|
|
|
|
### 0.1.2
|
|
- Improve readability and contrast in Unraid light and dark themes.
|
|
|
|
### 0.1.1
|
|
- Show URBM under Tools / Utilities in the Unraid WebGUI.
|
|
|
|
### 0.1.0
|
|
- Initial MVP release.
|
|
</CHANGES>
|
|
<FILE Name="/boot/config/plugins/&name;/urbm-&version;-x86_64-1.txz" Run="upgradepkg --install-new">
|
|
<URL>&packageURL;</URL>
|
|
<SHA256>&packageSHA256;</SHA256>
|
|
</FILE>
|
|
<FILE Run="/bin/bash">
|
|
<INLINE>
|
|
chmod 0700 /boot/config/plugins/&name;
|
|
/etc/rc.d/rc.urbm restart
|
|
</INLINE>
|
|
</FILE>
|
|
<FILE Run="/bin/bash" Method="remove">
|
|
<INLINE>
|
|
/etc/rc.d/rc.urbm stop || true
|
|
removepkg &name;
|
|
rm -rf /usr/local/emhttp/plugins/&name; /usr/local/libexec/&name; /usr/local/sbin/urbmd /etc/rc.d/rc.urbm /run/urbm /var/lib/urbm
|
|
</INLINE>
|
|
</FILE>
|
|
</PLUGIN>
|