{"id":251,"date":"2026-11-10T10:06:34","date_gmt":"2026-11-10T05:06:34","guid":{"rendered":"https:\/\/blog.vicnunes.com\/?p=251"},"modified":"2026-11-10T10:11:29","modified_gmt":"2026-11-10T05:11:29","slug":"self-hosted-push-notifications-for-everything","status":"publish","type":"post","link":"https:\/\/blog.vicnunes.com\/?p=251","title":{"rendered":"Self-hosted push notifications for everything"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"474\" src=\"https:\/\/blog.vicnunes.com\/wp-content\/uploads\/2026\/11\/push_notifications.jpg\" alt=\"\" class=\"wp-image-252\" style=\"width:474px;height:auto\" srcset=\"https:\/\/blog.vicnunes.com\/wp-content\/uploads\/2026\/11\/push_notifications.jpg 474w, https:\/\/blog.vicnunes.com\/wp-content\/uploads\/2026\/11\/push_notifications-300x300.jpg 300w, https:\/\/blog.vicnunes.com\/wp-content\/uploads\/2026\/11\/push_notifications-150x150.jpg 150w, https:\/\/blog.vicnunes.com\/wp-content\/uploads\/2026\/11\/push_notifications-270x270.jpg 270w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">I\u2019ve been on the sidelines about self-hosting push notifications for a while. Along the way I\u2019ve been watching <a href=\"https:\/\/gotify.net\">Gotify<\/a> and <a href=\"https:\/\/docs.ntfy.sh\">ntfy<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Given my requirement to have push notification sent to my iPhone, ntfy became my only known choice. The ease with which I was able to configure it was a bonus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prior to this I had <a href=\"https:\/\/uptimekuma.co\/\">Uptime-Kuma<\/a> pushing notifications to email, which worked fine via SMTP, but it got a bit too much. While still using Uptime-Kuma with ntfy for internal systems &amp; container up or down status, ntfy grants me much greater control over what I can get notified for.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The range of push notifications available to me has just gone through the roof. Say I want success or failure notifications for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CRON jobs<\/li>\n\n\n\n<li>Bash scripts<\/li>\n\n\n\n<li>Sync jobs<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Whatever you can think of, you\u2019re only a <a href=\"https:\/\/www.geeksforgeeks.org\/linux-unix\/curl-command-in-linux-with-examples\/\">Curl<\/a> command away.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Push notifications from anything to wherever I am in the world.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">I also use <a href=\"https:\/\/uptimerobot.com\">Uptime-Robot<\/a> to monitor my public-facing websites or services from the greater Internet, and recommend it highly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In summary: ntfy + uptime-kuma excel at monitoring internal systems, containers, or processes, and uptime-robot is equally good at monitoring Internet-facing sites. On the iPhone, I\u2019m using the <a href=\"https:\/\/apps.apple.com\/us\/app\/ntfy-me-next-gen\/id6787782178\">NTFY me<\/a> App thus far.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next, I\u2019m toying with the idea of integrating <a href=\"https:\/\/github.com\/clemcer\/loggifly\">LoggiFly<\/a> with ntfy to get alerts on critical errors in log files\u2026fun for another day in the homelab!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019ve been on the sidelines about self-hosting push notifications for a while. Along the way I\u2019ve been watching Gotify and ntfy. Given my requirement to have push notification sent to my iPhone, ntfy became my only known choice. The ease with which I was able to configure it was a bonus. Prior to this I had Uptime-Kuma pushing notifications to email, which worked fine via SMTP, but it got a bit too much. While still using Uptime-Kuma with ntfy for&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/blog.vicnunes.com\/?p=251\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-251","post","type-post","status-publish","format-standard","hentry","category-lab"],"_links":{"self":[{"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=\/wp\/v2\/posts\/251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=251"}],"version-history":[{"count":4,"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=\/wp\/v2\/posts\/251\/revisions"}],"predecessor-version":[{"id":256,"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=\/wp\/v2\/posts\/251\/revisions\/256"}],"wp:attachment":[{"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.vicnunes.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}