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>
Two tracks from the Beszel/Domain-Locker merge plan in ROADMAP.md:
- Importers: POST /api/import/external sniffs Homepage services.yml,
Homarr JSON, and Dashy conf.yml into sections/items; SettingsDialog
import now accepts all four formats.
- Monitors (M1): monitors + heartbeats schema, pure checkers for
http/tcp/ping/dns/keyword/json-query/push, scheduler on app ctx,
CRUD + check-now + push ingest API, /monitors + /monitors/:id pages
(wouter), monitor board widget, ServiceDialog monitor opt-in.
Authored By: TDvorak <[email protected]>
Generated with Devin (https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>