Unraid
Monitor parity checks, array state changes, disk alerts, and UPS events on your Lock Screen via Unraid's GraphQL WebSocket API.
How It Works
The pushward-unraid bridge connects to Unraid's GraphQL WebSocket API (port 3001) and creates Live Activities for system events.
- WebSocket subscription -- connects to Unraid and subscribes to notification events
- Parity tracking -- creates a progress-bar activity during parity checks, updating every 30 seconds
- Array monitoring -- tracks Starting/Started/Stopping/Stopped transitions
- Alert activities -- surfaces disk errors, SMART failures, and UPS events as alert-type activities
The bridge auto-reconnects with a 5-second backoff if the WebSocket connection drops.
Setup
1. Enable the GraphQL API
Ensure your Unraid server has the GraphQL API enabled (port 3001 by default). Generate an API key from the Unraid dashboard.
2. Get Your 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. Deploy the Bridge
services:
pushward-unraid:
image: ghcr.io/mac-lucky/pushward-unraid:latest
environment:
PUSHWARD_URL: https://api.pushward.app
PUSHWARD_API_KEY: hlk_YOUR_INTEGRATION_KEY
PUSHWARD_UNRAID_HOST: unraid.local
PUSHWARD_UNRAID_API_KEY: your-unraid-api-key
restart: unless-stoppedNo ports need to be exposed -- the bridge connects outbound to both Unraid (WebSocket) and the PushWard API.
Configuration
| Environment Variable | Description | Default |
|---|---|---|
PUSHWARD_URL | PushWard server URL | -- |
PUSHWARD_API_KEY | Integration key (hlk_ prefix) | -- |
PUSHWARD_UNRAID_HOST | Unraid server hostname or IP | -- |
PUSHWARD_UNRAID_PORT | GraphQL WebSocket port | 3001 |
PUSHWARD_UNRAID_API_KEY | Unraid API key | -- |
PUSHWARD_PRIORITY | Activity priority (0-10) | 2 |
PUSHWARD_CLEANUP_DELAY | How long the activity stays after ending | 15m |
PUSHWARD_STALE_TIMEOUT | Ends activity if no updates received | 24h |
Activities
| Event | Slug | Template | Color |
|---|---|---|---|
| Parity check running | unraid-parity | generic | Blue |
| Parity check complete | unraid-parity | generic | Green |
| Array starting/started | unraid-array | generic | Blue / Green |
| Array stopping/stopped | unraid-array | generic | Orange / Green |
| Disk / SMART error | unraid-disk-* | alert | Red |
| UPS warning | unraid-ups | alert | Orange |
| UPS alert | unraid-ups | alert | Red |
Parity checks can run for many hours on large arrays. The bridge updates progress every 30 seconds and uses a 24-hour stale timeout to handle extended operations.