Skip to content

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.

  1. WebSocket subscription -- connects to Unraid and subscribes to notification events
  2. Parity tracking -- creates a progress-bar activity during parity checks, updating every 30 seconds
  3. Array monitoring -- tracks Starting/Started/Stopping/Stopped transitions
  4. Alert activities -- surfaces disk errors, SMART failures, and UPS events as alert-type activities
Info

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:

  1. Go to Settings → Manage Keys
  2. Tap +
  3. Set name (e.g. "Unraid"), choose Full management scope, and restrict tounraid-*
  4. Copy the generated hlk_ key

3. Deploy the Bridge

docker-compose.yml
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-stopped
Info

No ports need to be exposed -- the bridge connects outbound to both Unraid (WebSocket) and the PushWard API.

Configuration

Environment VariableDescriptionDefault
PUSHWARD_URLPushWard server URL--
PUSHWARD_API_KEYIntegration key (hlk_ prefix)--
PUSHWARD_UNRAID_HOSTUnraid server hostname or IP--
PUSHWARD_UNRAID_PORTGraphQL WebSocket port3001
PUSHWARD_UNRAID_API_KEYUnraid API key--
PUSHWARD_PRIORITYActivity priority (0-10)2
PUSHWARD_CLEANUP_DELAYHow long the activity stays after ending15m
PUSHWARD_STALE_TIMEOUTEnds activity if no updates received24h

Activities

EventSlugTemplateColor
Parity check runningunraid-paritygenericBlue
Parity check completeunraid-paritygenericGreen
Array starting/startedunraid-arraygenericBlue / Green
Array stopping/stoppedunraid-arraygenericOrange / Green
Disk / SMART errorunraid-disk-*alertRed
UPS warningunraid-upsalertOrange
UPS alertunraid-upsalertRed
💡 Tip

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.