Generic webhook
Pinglet doesn’t need a plugin on the other side. Any tool that can send an HTTP POST (CI pipelines, cron jobs, Home Assistant, n8n, Node-RED, a shell script) can publish a push notification directly. This is the integration that always works, and it’s the one to reach for before looking for anything tool-specific. If the tool embeds Apprise, that’s even quicker: one pinglets:// URL, no headers to configure.
The recipe
Point the tool’s webhook at your topic URL with three things:
| Setting | Value |
|---|---|
| URL | https://pinglet.dev/acme/alerts |
| Header | Authorization: Bearer pinglet_<your key> |
| Body | JSON, e.g. {"title":"Backup finished","message":"nightly OK"} |
Replace acme/alerts with your namespace and preferred topic name. The topic is created on the first publish. Subscribe to it in the Pinglet app via the share link from your dashboard (or from the publish response).
As a curl one-liner, the shape every webhook-capable tool reproduces with its own URL/headers/body fields:
curl -X POST https://pinglet.dev/acme/alerts \
-H "Authorization: Bearer $PINGLET_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Disk warning","message":"/dev/sda1 at 91%","level":"warning"}'
Only message is required. Add level (info, success, warning, error) to colour the card and priority: "urgent" to break through Do Not Disturb. The full set of fields is in Message anatomy.
When the tool controls its own payload
Some tools can call a URL but can’t customise the JSON body they send. For those, Pinglet translates the tool’s native payload server-side: add ?rewrite=<source> to the publish URL and no glue service is needed. Tool-specific guides:
| Tool | Rewrite | Status |
|---|---|---|
| Uptime Kuma | ?rewrite=uptimekuma |
Available |
| Prometheus Alertmanager | ?rewrite=alertmanager |
Available |
| Komodo | ?rewrite=komodo |
Coming soon, needs an upstream Komodo change |
A guide shows Coming soon when the tool itself can’t yet attach the Authorization header a publish needs, and getting there requires a change (a PR) on the tool’s side rather than on Pinglet’s. Pinglet’s server-side translation for those tools is already live.
Tools that can shape their own body just use the recipe above. Walkthroughs for popular ones: Gatus, Proxmox VE, Home Assistant.
If the tool can’t send headers
The Authorization header is the one hard requirement. If a tool can neither shape its body nor set a request header, you have two options until it gains header support:
- A reverse proxy you control (Caddy, nginx) that injects the
Authorizationheader and forwards to Pinglet. Point the tool at the proxy. - A tiny relay: a few lines of serverless function or script that receives the tool’s webhook and re-posts it with the header.
What counts as “webhook-capable”
Checklist for whether any given tool can integrate with no work on Pinglet’s side:
- It can send an HTTP
POSTto a URL you choose. - It can attach a custom header (for the Bearer key).
- Either it lets you write the JSON body, or Pinglet has a
?rewrite=translator for its fixed payload.
If 1 and 2 hold but there’s no rewrite for its payload yet, get in touch; adding a translator is a small, self-contained change on Pinglet’s side.