Skip to content

Synology capacity alerts (ntfy)

Wire scripts/hotfix-syno-capacity.sh on Whrrr (Synology DSM) to send ntfy alerts when any /volume* mount exceeds a threshold (default 90%).

Does not depend on the infra-services monitoring stack.

1. Pick an ntfy topic

Use ntfy.sh (public) or your own ntfy server.

  1. Choose a hard-to-guess topic name (e.g. homelab-whrrr-capacity-7f2a).
  2. On your phone: install ntfy app → Subscribe to topic → same name.
  3. Optional: set topic password in ntfy app if you use a private server.

Test from any machine:

curl -d "homelab capacity test" -H "Title: Test" \
  "https://ntfy.sh/your-topic-name"

2. Install on Synology

SSH as admin (or use DSM Task Scheduler with a user script).

sudo mkdir -p /volume1/scripts/homelab
sudo cp hotfix-syno-capacity.sh /volume1/scripts/homelab/
sudo chmod 755 /volume1/scripts/homelab/hotfix-syno-capacity.sh

Create env file (root-readable):

sudo tee /volume1/scripts/homelab/capacity-alert.env << 'EOF'
NTFY_TOPIC=your-topic-name
NTFY_SERVER=https://ntfy.sh
CAPACITY_THRESHOLD=90
HOST_LABEL=whrrr
EOF
sudo chmod 600 /volume1/scripts/homelab/capacity-alert.env

3. Cron (every 30 minutes)

DSM Control Panel → Task Scheduler → Create → Scheduled task → User-defined script:

  • User: root
  • Schedule: every 30 minutes
  • Script:
set -a
source /volume1/scripts/homelab/capacity-alert.env
set +a
/volume1/scripts/homelab/hotfix-syno-capacity.sh

Or /etc/crontab on DSM:

*/30 * * * * root set -a && source /volume1/scripts/homelab/capacity-alert.env && set +a && /volume1/scripts/homelab/hotfix-syno-capacity.sh

Then: sudo synoservicectl --restart crond

4. Verify

# Dry run with low threshold (should alert if any volume > 10%)
sudo set -a && source /volume1/scripts/homelab/capacity-alert.env && set +a
sudo CAPACITY_THRESHOLD=10 /volume1/scripts/homelab/hotfix-syno-capacity.sh

Close README Owner TODO when cron is live and a test alert arrives on your phone.

Deployed (2026-06-21): Whrrr — topic homelab-whrrr-capacity-7f2a, script at /volume1/scripts/homelab/, DSM Task Scheduler every 30 minutes.