Unraid
Monitor parity checks, array state changes, disk alerts, and UPS events on your Lock Screen via Unraid's GraphQL WebSocket API.
Beta: the Unraid plugin is in beta — expect rough edges and please report issues on GitHub.
How It Works
A native Unraid plugin — no Docker container required. Runs as an autostart service and connects to the local GraphQL API.
- Notification forwarding — subscribes to Unraid's
notificationAddedWebSocket and forwards every notification to PushWard.ALERTandWARNINGimportance map to active iOS notifications,INFOto passive. - Parity tracking — polls the GraphQL API every 10 seconds for parity-check progress and array state changes, surfaced as a Live Activity while the check runs.
Setup
1. Generate an Unraid API Key
On your Unraid server, go to Settings → Management Access → API Keys and create a new key. Read access on array and notifications is
sufficient.
2. Get Your PushWard Integration Key
Open the PushWard app → Settings → Integration Key to find your default hlk_ key.
To create a dedicated key for this integration:
- Go to Settings → Manage Keys
- Tap +
- Set name (e.g. "Unraid"), choose , Full management scope, and restrict to
unraid-* - Copy the generated
hlk_key
3. Install the Plugin
In the Unraid web UI, go to Plugins → Install Plugin and paste this URL:
https://github.com/mac-lucky/pushward-unraid-plugin/raw/main/pushward-unraid.plgThe plugin downloads the pushward-unraid binary into /usr/local/bin/,
drops a control script and Settings page into /usr/local/emhttp/plugins/pushward-unraid/, and registers an autostart symlink at /usr/local/etc/rc.d/rc.pushward-unraid. Unraid 6.12 or later is required.
4. Configure
Open Settings → PushWard in the Unraid web UI and fill in:
| Field | Description | Default |
|---|---|---|
| Service | Set to Enable to autostart the bridge | Enable |
| PushWard server URL | PushWard API URL | https://api.pushward.app |
| PushWard integration API key | The hlk_… key from step 2 (needs activity:manage scope) | -- |
| Unraid host | Hostname Unraid is reachable on (the plugin runs on the same host) | localhost |
| Unraid port | Port Unraid's nginx serves /graphql on | 80 |
| Use TLS | Set to Yes if you reach the Unraid GUI over HTTPS only | No |
| Unraid API key | The API key from step 1 | -- |
| Server display name | Shown in PushWard Live Activities (e.g. "Tower") | -- |
Click Apply. Values are persisted to /boot/config/plugins/pushward-unraid/pushward-unraid.cfg and survive reboots and
plugin upgrades.
Logs and Manual Control
tail -f /var/log/pushward-unraid.log
/usr/local/emhttp/plugins/pushward-unraid/pushward-unraid.sh status
/usr/local/emhttp/plugins/pushward-unraid/pushward-unraid.sh restart
/usr/local/emhttp/plugins/pushward-unraid/pushward-unraid.sh stopUpdates
The .plg manifest auto-bumps when a new unraid-v* release is
published. Pick up the latest version via Plugins → Check for Updates inside Unraid.
Uninstall
Plugins → PushWard → Remove. The binary, autostart symlink, ramdisk
plugin directory, and log file are removed. Your config under /boot/config/plugins/pushward-unraid/ is left intact, so reinstalling restores your
API keys.