Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 30 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# Updater

An unofficial Unraid OS updater. Paste a download URL, verify the checksum, reboot. Bypasses the official update flow and installs any OS version directly to the boot device.
An unofficial Unraid OS updater. Install any OS version directly to the boot device, either manually or automatically within your current `major.minor` branch.

## Features

- Install any Unraid OS version from a direct download URL
- MD5 checksum verification before touching the boot device
- Manual updates from any direct download URL
- Automatic patch updates on your current `major.minor` branch
- MD5 / SHA256 checksum verification
- Automatic backup of current boot files to `/boot/previous`

## Requirements
Expand All @@ -20,15 +21,35 @@ An unofficial Unraid OS updater. Paste a download URL, verify the checksum, rebo
2. Paste the `.plg` URL from the [latest release](https://raw.githubusercontent.com/wandercone/Updater/refs/heads/main/plugin/updater.plg)
3. Click **Install**

After installation the plugin is available at **System Information > Unraid Updater**.
After installation the plugin is available at **Tools > Updater**.

## Usage

1. Visit the [Unraid version history](https://docs.unraid.net/unraid-os/download_list/) and copy the download URL and MD5 checksum for the version you want
2. Paste the URL and checksum into the plugin
3. Click Download & Install
4. Reboot
### Manual update

1. Visit the [Unraid version history](https://docs.unraid.net/unraid-os/download_list/) and copy the download URL and MD5 checksum.
2. Paste the URL and checksum into the **Manual Update** section.
3. Click **Download & Install**.
4. Reboot.

### Automatic updates
1. Enable Auto-Updates
- **Auto-Update Mode**:
- Check and notify only; show available updates, do not download.
- Stage updates automatically; download and verify the zip, then hold it for manual install.
- Install updates automatically; download, verify, and write the update to `/boot` at the configured window.
- **After Automatic Install**:
- Notify and wait for manual reboot (default).
- Stop the array and reboot automatically; stop the array with `emcmd 'cmdStop=Stop'`, then reboot.
- **Check Frequency**: how often to query `releases.unraid.net/json`.
- **Install Window**: when unattended installs are allowed.
2. Click **Save Settings**.
3. Click **Check Now** to test the flow.

Only patch releases on your current `major.minor` branch are handled automatically. Cross-minor or cross-major updates must still be requested manually.

## How It Works

The install process follows the [official manual upgrade steps](https://docs.unraid.net/unraid-os/system-administration/maintain-and-update/upgrading-unraid/)
The install process follows the [official manual upgrade steps](https://docs.unraid.net/unraid-os/system-administration/maintain-and-update/upgrading-unraid/).

State and staged downloads are kept in `/boot/config/plugins/updater/`.
16 changes: 16 additions & 0 deletions plugin/plugin.j2
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ For older releases, see https://github.com/{{ env['GITHUB_REPOSITORY'] }}/releas
<SHA256>{{ env['PLUGIN_CHECKSUM'] }}</SHA256>
</FILE>

<FILE Name="/boot/config/plugins/{{ name }}/{{ name }}.cron">
<INLINE>
# Generated {{ name }} plugin scheduled tasks
# Disable/enable and change schedule from the plugin settings page
</INLINE>
</FILE>

<!--
The 'install' script.
-->
Expand All @@ -37,6 +44,12 @@ upgradepkg --install-new /boot/config/plugins/{{ name }}/{{ package_name }}-{{ e
# cleanup old versions
rm -f $(ls /boot/config/plugins/{{ name }}/{{ package_name }}-*.txz 2>/dev/null | grep -v '{{ env['PLUGIN_VERSION'] }}')

# regenerate the plugin-owned cron file from saved state (also recreates it on boot)
/usr/bin/php /usr/local/emhttp/plugins/{{ name }}/include/cron.php --install-cron 2>/dev/null || true

# sync the plugin-owned cron file into the running cron state
/usr/local/sbin/update_cron

echo ""
echo "----------------------------------------------------"
echo " {{ name }} has been installed."
Expand All @@ -57,6 +70,9 @@ removepkg {{ package_name }}

rm -rf /usr/local/emhttp/plugins/{{ name }}
rm -rf /boot/config/plugins/{{ name }}

# sync removal into the running cron state
/usr/local/sbin/update_cron
]]>
</INLINE>
</FILE>
Expand Down
6 changes: 3 additions & 3 deletions src/install/slack-desc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
|-----handy-ruler------------------------------------------------------|
updater: updater
updater:
updater: An unofficial Unraid updater plugin.
updater: Fetches a manual specified releases and installs is via the
updater: documented manual upgrade process.
updater: An unofficial Unraid updater plugin. Supports manual installs from
updater: any release URL as well as scheduled automatic patch updates within
updater: the currents branch.
updater:
updater: https://github.com/wandercone/Updater
updater:
Loading
Loading