mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-29 12:00:13 +00:00
43 lines
1.2 KiB
Markdown
43 lines
1.2 KiB
Markdown
# 🔔 Webhooks
|
|
|
|
Pulse supports Discord, Slack, Teams, Telegram, Gotify, ntfy, and generic webhooks.
|
|
|
|
## 🚀 Quick Setup
|
|
|
|
1. Go to **Alerts → Notifications**.
|
|
2. Click **Add Webhook**.
|
|
3. Select service type and paste the URL.
|
|
|
|
## 📝 Service URLs
|
|
|
|
| Service | URL Format |
|
|
|---------|------------|
|
|
| **Discord** | `https://discord.com/api/webhooks/{id}/{token}` |
|
|
| **Slack** | `https://hooks.slack.com/services/...` |
|
|
| **Teams** | `https://{tenant}.webhook.office.com/...` |
|
|
| **Telegram** | `https://api.telegram.org/bot{token}/sendMessage?chat_id={id}` |
|
|
| **Gotify** | `https://gotify.example.com/message?token={token}` |
|
|
| **ntfy** | `https://ntfy.sh/{topic}` |
|
|
|
|
## 🎨 Custom Templates
|
|
|
|
For generic webhooks, use Go templates to format the JSON payload.
|
|
|
|
**Variables:**
|
|
- `{{.Message}}`: Alert text
|
|
- `{{.Level}}`: warning/critical
|
|
- `{{.Node}}`: Node name
|
|
- `{{.Value}}`: Metric value (e.g. 95.5)
|
|
|
|
**Example Payload:**
|
|
```json
|
|
{
|
|
"text": "Alert: {{.Level}} - {{.Message}}",
|
|
"value": {{.Value}}
|
|
}
|
|
```
|
|
|
|
## 🛡️ Security
|
|
|
|
- **Private IPs**: By default, webhooks to private IPs are blocked. Allow them in **Settings → System → Webhook Security**.
|
|
- **Headers**: Add custom headers (e.g., `Authorization: Bearer ...`) in the webhook config.
|