feat: webhook alerts for monitor + domain events (merge plan M2)

Generic webhook notification delivery configured via the
notify_webhook settings key — no new schema. Fires on monitor
up/down transitions (pending stays silent), domain expiry,
domain expiring, and TLS cert expiring; dispatch is async and
failures are logged, never fatal.

POST /api/notify/test verifies configuration; Settings dialog
gains a webhook URL field with save + send-test. Payload carries
event/name/text/content/message so Slack, Discord, ntfy, and
custom receivers all work.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Tomas DvorakandDevin committed 2026-09-21 18:43:48 +02:00
1 parent f9fd1d9cf2
commit 2f3e8a1879
7 files changed
+255 -4

No files matched your search

+11
View File
@@ -540,6 +540,17 @@ paths:
additionalProperties:
$ref: "#/components/schemas/Status"
/api/notify/test:
post:
operationId: notifyTest
summary: Send a test notification to the configured webhook
description: Requires the `notify_webhook` settings key to hold an http(s) URL.
responses:
"200":
description: Test notification dispatched
"400":
$ref: "#/components/responses/BadRequest"
/api/settings:
get:
operationId: getSettings