Know when something happens at home.
Watch your homelab from anywhere — Home Assistant, Uptime Kuma, or any self-hosted box can reach your phone without ever exposing a port. The free tier covers a personal lab.
Monitoring for your homelab
Self-hosting still deserves eyes on it. Connect your homelab to your phone and drop the cloud monitoring bill.
Works with your stack
Uptime Kuma, Home Assistant, Proxmox, Pi-hole, and the *arr apps forward a webhook or chain a curl.
No exposed ports
Outbound HTTPS only. No public IP needed, and it runs fine from behind NAT or a VPN.
Per-machine channels
One app per machine keeps NAS, Proxmox, and Pi-hole alerts in their own channels.
Scriptable anywhere
Call it from bash, a systemd unit, a Docker healthcheck, or a cron job.
Free for hobby use
The free tier covers a personal homelab, with no per-seat pricing.
Sub-second delivery
Delivery takes under a second, so a problem at home reaches you wherever you happen to be.
Three steps to homelab alerts
Get the URL or CLI
Copy your application webhook URL, or install the PocketAlert CLI on your box.
Wire up your boxes
Chain a curl onto a script, forward a webhook from Kuma or Home Assistant, or use systemd OnFailure.
Monitor from anywhere
Fire an event and your phone buzzes, even from behind NAT with no ports exposed.
Connect your homelab
1. From a bash or cron script (CLI)
pocketalert auth YOUR_API_KEY
pocketalert send -t "NAS · disk degraded" -m "pool tank · drive 2 FAULTED"
Or skip the CLI and curl the messages API straight from any script:
curl -X POST "https://api.pocketalert.app/v1/messages" \
-H "Token: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Proxmox backup failed","message":"vzdump job on pve1 exited 1","level":"high"}'
2. From Home Assistant
rest_command:
pocketalert:
url: "https://api.pocketalert.app/v1/messages"
method: POST
headers:
Token: "YOUR_API_KEY"
content_type: "application/json"
payload: '{"title":"{{ title }}","message":"{{ message }}"}'
3. From Uptime Kuma (webhook)
Create a webhook on the Webhooks page and copy its receive URL, e.g. https://p4a.me/wh/1234abcd. In Uptime Kuma add a webhook notification pointed at that URL, then map Kuma's payload with a GJSON template such as %monitor.name% is %heartbeat.status%.
Everything runs over outbound HTTPS, so port-forwarding never enters the picture. See the docs.
Questions, answered
Any self-hosted box that can make an HTTP request can reach you. Chain a curl onto a script, forward a webhook from Uptime Kuma or Home Assistant, or call the CLI from a systemd unit. The alert finds your phone no matter where the server runs.
Yes. PocketAlert pairs with Uptime Kuma, Home Assistant, Proxmox hooks, Pi-hole, the *arr apps, and plain bash scripts. If it can POST JSON, it works.
No public IP, no port-forwarding. Your server opens an outbound HTTPS request to PocketAlert, which means it works from behind NAT, a home router, or a VPN.
Create one application per box or service. Your NAS, Proxmox, and Pi-hole alerts each land in a separate channel and stay easy to tell apart.
Yes. The free tier covers a personal homelab. No per-seat pricing, and no enterprise monitoring contract for the privilege of hearing about a sick NAS.
Yes. Send it with level critical and on Android it posts to a dedicated notification channel that bypasses Do Not Disturb and can even show full screen — you grant DND access once. On iPhone, high and critical arrive as time-sensitive notifications that break through Focus modes, and the full critical sound that overrides the mute switch is rolling out as Apple grants the entitlement. On the free plan critical is delivered as high: still instant, without the DND override.
Watch your homelab from anywhere.
One curl connects a self-hosted box to your phone. No cloud monitoring bill.