]> ##&name; ###2026.05.29 - Add button to create a fresh snapshot and immediately send a backup - Prompt to create a fresh snapshot when "Send backup now" is used before any snapshots exist - Improve restore snapshot loading with clearer messages and compatibility with buddies that have not updated the BuddyBackup plugin yet - Improve remote SSH host key handling and show clearer guidance when a buddy's SSH host key has changed - Improve ZFS compatibility so dataset lists and reported backup sizes load more reliably ###2026.05.02 - Allow spaces in snapshot and dataset names sent over SSH [#20](https://github.com/Piratkopia13/unraid-buddybackup/issues/20) - Fix GUI field alignment that broke in some version of Unraid - Handle if ZFS is not available in SSH user buddybackup's PATH - Validate destination dataset name during connection testing - Validate that ZFS is available and working on the remote during connection testing - Reduce false positives for failed security validation during connection testing, and add debug logs if the test still fails ###2025.09.13 - Update to sanoid/syncoid 2.3 - Fix bug causing apply button to not work when adding a new local backup with non-existent destination dataset [#19](https://github.com/Piratkopia13/unraid-buddybackup/issues/19) ###2025.06.01a - Allow adding multiple buddy ssh keys to allow multiple buddies to push backups to the same destination [#10](https://github.com/Piratkopia13/unraid-buddybackup/issues/10) - Fix bug causing snapshot listing to fail when trying to restore data if the any of the destination datasets had no snapshots [#7](https://github.com/Piratkopia13/unraid-buddybackup/issues/7) ###2025.06.01 - Sort backups list in dashboard by source and destination name [#11](https://github.com/Piratkopia13/unraid-buddybackup/issues/11) - Fix potential issue causing "invalid format character" [#8](https://github.com/Piratkopia13/unraid-buddybackup/issues/8) ###2025.05.24 - Fix remote SSH connection issue on Unraid 7.1 ###2025.04.06b - Fix invisible public key in settings - Fix SSH wierdness by always recreating buddybackup user on update ###2025.04.06a - Fix plugin update not applying the latest changes directly ###2025.04.06 - Fix remote not being able to connect after destination machine reboots ###2025.03.16 - The "Test connection" button now does a simple security validation to ensure permissions are set correctly. - Add advanced option to allow unencrypted remote backups - Allow aborting all running backups or restores from gui - Add checkbox for toggling auto scrolling in backup/restore outputs ###2025.03.02 - Allow restoring from local backup destination - Print syncoid errors to log when run from cron - Add separate advanced options for warn/crit on buddys dashboard entry ###2025.02.23 - Fix permission issue when getting dataset size for buddy's backup shown in dashboard panel ###2025.02.19 - Fix bug requiring buddys backups to be enable for snapshot creation/pruning to work. Thanks to @adamzetpl for reporting this bug - Fix bug causing snapshot creation/pruning entries to break after removing any entry. ###2025.02.18 - Expose advanced settings for utc timezone, and dashboard panel coloring ###2025.02.17 - Add panel to Unraid Dashboard with info about last backup and destination size - Clarified remote destination dataset names in settings ###2025.02.10 - Fix logic error that caused a warning for snapshot creation entries when buddy's destination dataset was unset. Thanks to @MowMdown for reporting this bug ###2025.02.09 - Multiple backups can now be specified - Added support for local datasets as backup destination - Add option to trigger backup after snapshot creation - Restoring backups is now done from a button in the backup section instead of restore having its own section ###2025.02.02 - Improve error handling when getting list of snapshots from buddy ###2025.01.31 - Bug fixes ###2025.01.29 - Added settings section for automatic snapshot creation and pruning ###2025.01.25 - Added restore functionality ###2025.01.19b - Bug fixes ###2025.01.18 - BuddyBackup - Initial release &gitRelURL;/&pkgName; &pkgMD5; ReceiveBackups=disable ReceiveDestinationRententionHourly=0 ReceiveDestinationRententionDaily=7 ReceiveDestinationRententionWeekly=4 ReceiveDestinationRententionMonthly=3 ReceiveDestinationRententionYearly=0 echo "Installing BuddyBackup dependencies.." source /etc/unraid-version major=${version:0:2} minor=${version:2:2} DEPS=( "perl-Capture-Tiny-0.48-x86_64-1ponce.txz" "perl-Exporter-Tiny-1.000000-x86_64-1ponce.txz" "perl-Config-IniFiles-2.82-x86_64-3_slonly.txz" "perl-List-MoreUtils-0.425-x86_64-2_slonly.txz" ) if [[ $((${major/./}*1)) -lt 7 ]]; then DEPS+=( "mbuffer-20240107-x86_64-1_SBo.tgz" ) fi function install_dep() { local dest="&pkgPath;/deps/${1}" local src="&gitURL;/deps/${1}" mkdir -p "&pkgPath;/deps" if [ ! -f "${dest}" ]; then echo "Downloading dependency '${1}'.." curl --location --silent --fail "${src}" --output "${dest}" fi if [ ! -f "${dest}.md5" ]; then curl --location --silent --fail "${src}.md5" --output "${dest}.md5" fi expected_md5=$(cat "${dest}.md5") actual_md5=$(md5sum "${dest}" | sed 's/\s.*$//') if [ "${actual_md5}" != "${expected_md5}" ]; then echo "Mismatched md5 hash for dependency '${1}'. Aborting." rm "${dest}" exit 1 elif ! installpkg "$dest"; then echo "Failed to install dependency '${1}'" exit 1 fi } for d in ${DEPS[@]}; do install_dep "${d}" done &emhttp;/scripts/rc.buddybackup.php update echo "" echo "-----------------------------------------------------------" echo " &name; has been installed." echo " Happy backups" echo " Version: &version;" echo "-----------------------------------------------------------" echo "" &emhttp;/deps/sanoid.defaults.conf echo "-----------------------------------------------------------" echo " Uninstalling &name;" echo "-----------------------------------------------------------" echo "" &emhttp;/scripts/rc.buddybackup.php uninstall removepkg &pkgPath;/&pkgName; echo "" echo " &name; has been uninstalled. Dependencies will be gone after next reboot" echo ""