Get a Discord message when a cron job, backup script or alerting pipeline stops checking in
10K+
knell is a dead man's switch for your scheduled jobs. It sends you a Discord message when a cron job, backup script or alerting pipeline stops pinging it over HTTP. It only listens and never runs them.
knell tells you when a scheduled job stops, in four ways:
Each watched job is a beat. Its deadline is the longest silence allowed between two pings.
knell is built for a home lab that gets its alerts in Discord and wants a small watchdog with no database or web page. It is one static binary set up from environment variables, keeps its state in memory and sends only to Discord or a Discord-compatible relay.
You need a Discord webhook, a Docker host and jobs that can send an HTTP POST. Keep its port on a network you trust.
Two projects suit a different setup:
knell is free software under the GPL-3.0-or-later license.
docker pull cplieger/knell:latest
Also published to ghcr.io/cplieger/knell with identical images and tags. Release versions are tagged vX.Y.Z alongside latest.
# Example compose for knell. See the README for all configuration options and hardening.
services:
knell:
image: ghcr.io/cplieger/knell:latest
container_name: knell
restart: unless-stopped
environment:
BEATS: "cron-backup:26h,pipeline-watchdog:20m" # one id:deadline pair per job you watch
DISCORD_WEBHOOK_URL: "https://discord.com/" # replace with your full Discord webhook URL, or knell refuses to start
BEAT_TOKEN: "CHANGEME" # replace with the output of "openssl rand -hex 16", or knell refuses to start
NODE_NAME: "server-1" # names this instance in every notice
ports:
# /metrics needs no token and lists every beat. Publish this port only to a
# network you trust, see README "Security".
- "9190:9190"
GPL-3.0-or-later. See LICENSE. The image carries the license text of every bundled component under /usr/share/licenses/.
Content type
Image
Digest
sha256:7390fa95e…
Size
3.4 MB
Last updated
about 19 hours ago
docker pull cplieger/knell