@nordbyte/nordrelay-auto-updater
v0.1.0
Published
Update visibility plugin for NordRelay peers, OS package managers, and global npm packages.
Downloads
81
Maintainers
Readme
NordRelay Auto Updater Plugin
Auto Updater is a NordRelay plugin that shows update visibility for Linux/macOS package managers and global npm packages on every peer where it is installed and enabled. Admins can explicitly run selected updates, update all listed updates, or uninstall global npm packages from the WebUI panel.
The plugin is self-contained. NordRelay provides plugin installation, peer routing, scheduling, permissions, and the WebUI panel container; all update checks, parsing, history, cleanup, and rendering logic lives in this plugin.
Install
Install on the current node:
nordrelay plugin install github:nordbyte/nordrelay-plugin-auto-updater --enable --approveInstall from a local checkout:
nordrelay plugin install /path/to/nordrelay-plugin-auto-updater --enable --approveThe npm package is published as:
@nordbyte/nordrelay-auto-updaterIn the WebUI, open Plugins, select the target node in the header, and install the GitHub source. Use Install on all enabled peers to install the same plugin on reachable peers.
Capabilities
- Collector:
updates.snapshot - Commands:
refresh,latest,panel-data,os-updates,npm-packages,update-os,update-npm,configure-npm-auto,uninstall-npm,history,export,storage-health,cleanup - Web panel:
dashboard - Diagnostics: enabled
Required permissions:
system.packages.read
system.packages.write
system.updates.read
system.updates.writeThe dashboard aggregates data only from peers where this plugin is installed, enabled, and approved.
What It Checks
Linux package managers:
apt list --upgradablednf check-updatepacman -Quzypper list-updatessnap refresh --listflatpak remote-ls --updates
macOS:
softwareupdate -lbrew outdated --json=v2
All platforms:
npm ls -g --depth=0 --json --longnpm outdated -g --json --long
Windows currently reports npm package status only.
Update, uninstall, and automatic npm install actions run as the same
operating-system user that runs NordRelay. The plugin does not use sudo, so
package managers that require root privileges must be handled by running
NordRelay with the required permissions or by using package managers that allow
user-level updates.
Global npm packages can be configured individually for automatic installation.
Each package has its own interval in hours or days. By default the automatic
action installs only when the package is outdated; enabling Install latest
also runs npm install -g <package>@latest when the package already reports the
latest version.
Settings
| Setting | Default | Description |
| --- | ---: | --- |
| checkIntervalMs | 1800000 | Preferred collector interval in milliseconds |
| retentionDays | 30 | Snapshot history retention in days |
| commandTimeoutMs | 20000 | Timeout for individual package-manager commands |
| updateTimeoutMs | 600000 | Timeout for package update or uninstall commands |
| enableOsUpdates | true | Check Linux/macOS package-manager updates |
| enableNpmPackages | true | Check global npm package versions |
| npmRegistry | https://registry.npmjs.org | Registry used by npm outdated checks |
| refreshPackageIndexes | false | Reserved for future explicit index refresh flows |
Data
Snapshots are stored in the plugin data directory:
~/.nordrelay/plugins/data/auto-updater/The plugin writes:
updates.sqlite
Useful commands:
nordrelay plugin invoke auto-updater command refresh
nordrelay plugin invoke auto-updater command panel-data
nordrelay plugin invoke auto-updater command os-updates
nordrelay plugin invoke auto-updater command npm-packages
nordrelay plugin invoke auto-updater command update-os --input-json '{"packages":[{"manager":"apt","name":"openssl"}]}'
nordrelay plugin invoke auto-updater command update-npm --input-json '{"packages":["typescript"]}'
nordrelay plugin invoke auto-updater command configure-npm-auto --input-json '{"package":"typescript","enabled":true,"intervalValue":12,"intervalUnit":"hours","installLatest":false}'
nordrelay plugin invoke auto-updater command uninstall-npm --input-json '{"packages":["typescript"]}'
nordrelay plugin invoke auto-updater command history --input-json '{"range":"30d","limit":500}'
nordrelay plugin invoke auto-updater command export --input-json '{"format":"csv","range":"30d"}'
nordrelay plugin invoke auto-updater command storage-health
nordrelay plugin invoke auto-updater command cleanupDevelopment
npm run check
npm test