Self-hosting ntfy on Coolify, from install to your first alert
Run your own ntfy server on Coolify: deploy the one-click template, lock it down, create accounts and topics, subscribe from your phone, and point Butters at it.
Getting the right events to the right people, and only those. 5 articles.
Run your own ntfy server on Coolify: deploy the one-click template, lock it down, create accounts and topics, subscribe from your phone, and point Butters at it.
Butters can send a notified event as a native push, to an ntfy topic, or to a Slack or Discord channel, all at once. Here is how the three differ, and which one to use for whom.
Not everything can hold an API key, and not everyone lives in ntfy. Incoming webhooks turn any URL call into an event, and outgoing webhooks and web push send the events that matter to Slack, Discord, your own backend, or your phone.
An outgoing webhook lets anyone point our server at any URL. Here is how Butters signs JSON deliveries so your receiver can trust them, how to verify one in Node or Python, and why the delivery code refuses private addresses and never follows a redirect.
A notification you ignore is worse than none, because it teaches you to ignore the next one. Here is how the notify flag and ntfy destinations work in Butters, and a simple rule for which events deserve to reach your phone.