DEV Community

Cover image for Don’t Wait for Users to Complain: These Two Bad Boys Got You Covered
Athreya aka Maneshwar
Athreya aka Maneshwar

Posted on • Edited on

Don’t Wait for Users to Complain: These Two Bad Boys Got You Covered

Hello, I'm Maneshwar. I'm building git-lrc, an AI code reviewer that runs on every commit. It is free, unlimited, and source-available on Github. Star Us to help devs discover the project. Do give it a try and share your feedback for improving the product.

Nobody wants to hear “hey, your site’s down” from a client or teammate.

It’s way better to catch issues before anyone notices — and that’s exactly what Gatus helps you do.

It’s a self-hosted tool that keeps an eye on your endpoints and tells you when something goes sideways.

But just monitoring isn’t enough — you need to know the moment things break.

That’s where ntfy comes in.

It’s a dead-simple notification service that can ping your phone, browser, or terminal in real time.

In this guide, you’ll:

  • Set up Gatus to check if your service is up
  • Plug in ntfy so you get alerts instantly
  • Lock it down with basic authentication so it’s not wide open to the world

It’s fast to set up, easy to maintain, and doesn’t need any cloud accounts or fancy dashboards. Just you, some YAML, and peace of mind.

Why Gatus?

Gatus lets you define endpoints in a YAML file and check their health regularly:

  • Is the endpoint returning 200 OK?
  • Is it responding within 150ms?
  • If not, trigger an alert via ntfy, Slack, or others.

No cloud account, no vendor lock-in.

GitHub logo TwiN / gatus

Automated developer-oriented status page with alerting and incident support

Gatus

test Go Report Card codecov Go version Docker pulls Follow TwiN

Gatus is a developer-oriented health dashboard that gives you the ability to monitor your services using HTTP, ICMP, TCP, and even DNS queries as well as evaluate the result of said queries by using a list of conditions on values like the status code the response time, the certificate expiration, the body and many others. The icing on top is that each of these health checks can be paired with alerting via Slack, Teams, PagerDuty, Discord, Twilio and many more.

I personally deploy it in my Kubernetes cluster and let it monitor the status of my core applications: https://status.twin.sh/

Looking for a managed solution? Check out Gatus.io.

Quick start
docker run -p 8080:8080 --name gatus ghcr.io/twin/gatus:stable
Enter fullscreen mode Exit fullscreen mode

You can also use Docker Hub if you prefer:

docker run -p 8080:8080 --name gatus twinproduction/gatus:stable
Enter fullscreen mode Exit fullscreen mode

For more details, see Usage

❤ Like this project? Please consider sponsoring me.

Gatus dashboard

Have any feedback…

Why ntfy?

ntfy lets you receive alerts anywhere using:

It’s easy to self-host, and it works with a simple curl or POST request.

GitHub logo binwiederhier / ntfy

Send push notifications to your phone or desktop using PUT/POST


ntfy

ntfy.sh | Send push notifications to your phone or desktop via PUT/POST

Release Go Reference Tests Go Report Card codecov Discord Matrix Matrix space Healthcheck Gitpod

ntfy (pronounced "notify") is a simple HTTP-based pub-sub notification service. With ntfy, you can send notifications to your phone or desktop via scripts from any computer without having to sign up or pay any fees. If you'd like to run your own instance of the service, you can easily do so since ntfy is open source.

You can access the free version of ntfy at ntfy.sh. There is also an open-source Android app available on Google Play or F-Droid, as well as an open source iOS app available on the App Store.

ntfy Pro 💸 🎉

I now offer paid plans for ntfy.sh if you don't want to self-host, or you want to support the…




1. Gatus Config with ntfy

Here’s a working config.yaml for Gatus:

ntfy:
  url: "https://ntfy.dev.to"
  topic: "gatus"
  priority: 5
  token: "tk_gjblah"
  default-alert:
    failure-threshold: 3
    send-on-resolved: false
    interval: 1m
  overrides:
    - group: "critical"
      priority: 5

security:
  basic:
    username: "username"
    password-bcrypt-base64: "pwd"  # bcrypt hash (base64 encoded)

endpoints:
  - name: purchases
    group: hex-core
    url: "https://dev.to/health"
    interval: 2m
    conditions:
      - "[STATUS] == 200"
      - "[RESPONSE_TIME] < 150"
    alerts:
      - type: ntfy
        description: dev.to is down
Enter fullscreen mode Exit fullscreen mode

What this does:

  • Every 2 minutes, Gatus checks https://dev.to/health.
  • If it fails 3 times in a row, it triggers an ntfy alert.
  • It will not send a "resolved" notification once the site comes back (you can toggle this).
  • Uses basic auth for the dashboard.

2. Self-host ntfy

You can self-host ntfy with a server.yaml like this:

base-url: "https://ntfy.dev.to"
auth-file: "/data/auth.db"
auth-default-access: "deny-all"
behind-proxy: true
Enter fullscreen mode Exit fullscreen mode

Then build and run:

docker run -d -p 8080:80 --name ntfy my-ntfy
Enter fullscreen mode Exit fullscreen mode

Add users:

docker exec -it ntfy ntfy user add --role=dev
docker exec -it ntfy ntfy user list
Enter fullscreen mode Exit fullscreen mode

This gives you full control over access, topics, and permissions.

3. Quick Reset Script for Gatus

Here’s a quick way to stop and reset your Gatus container:

#!/bin/bash
docker stop gatus-container
docker rm gatus-container
Enter fullscreen mode Exit fullscreen mode

Run it before redeploying if needed.

Wrap-up

With this setup:

  • Gatus checks your endpoints and sends HTTP alerts.
  • ntfy delivers them instantly — no third-party services.
  • Both are lightweight, open-source, and customizable.

Perfect for small teams or internal infra monitoring.


With LiveAPI, you can quickly generate interactive API documentation that allows users to execute APIs directly from the browser.

If you’re tired of manually creating docs for your APIs, this tool might just make your life easier.

git-lrc
*AI agents write code fast. They also silently remove logic, change behavior, and introduce bugs -- without telling you. You often find out in production.

git-lrc fixes this. It hooks into git commit and reviews every diff before it lands. 60-second setup. Completely free.*

Any feedback or contributors are welcome! It's online, source-available, and ready for anyone to use.

⭐ Star it on GitHub:

GitHub logo HexmosTech / git-lrc

Free, Unlimited AI Code Reviews That Run on Commit

git-lrc logo

git-lrc

Free, Unlimited AI Code Reviews That Run on Commit


git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

AI agents write code fast. They also silently remove logic, change behavior, and introduce bugs -- without telling you. You often find out in production.

git-lrc fixes this. It hooks into git commit and reviews every diff before it lands. 60-second setup. Completely free.

See It In Action

See git-lrc catch serious security issues such as leaked credentials, expensive cloud operations, and sensitive material in log statements

git-lrc-intro-60s.mp4

Why

  • 🤖 AI agents silently break things. Code removed. Logic changed. Edge cases gone. You won't notice until production.
  • 🔍 Catch it before it ships. AI-powered inline comments show you exactly what changed and what looks wrong.
  • 🔁 Build a habit, ship better code. Regular review → fewer bugs → more robust code → better results in your team.
  • 🔗 Why git? Git is universal. Every editor, every IDE, every AI…




Top comments (0)