Show HN: Sigabrt.dev – cronjob monitor with an SSH TUI (sigabrt.dev)
Hello HN. I built this mostly to monitor the things I host myself. I know it's nothing too exciting.
Anyway, the TL;DR is: Create an endpoint, and if your script/cronjob fails to regularly ping it, you get notified (by email or ntfy). E.g.:
0 * * * * ./script.sh && curl -fsS https://sigabrt.dev/pulse/<id>/beat
It also has an SSH TUI which is currently experimental and read-only, mostly because I'm not sure whether it is actually useful or just a gimmick :): ssh sigabrt.dev
To use it, simply add your SSH public key in your account settings.Yes, there are services like this already, and this is minimalistic by comparison. Feedback is welcome.
37 comments
[ 0.26 ms ] story [ 109 ms ] threadYou could also just use systemd timers and do: systemctl --failed -t service
I can see something like this being a great intermediate option to a full monitoring and alerting stack.
If I find something posted here interesting I like knowing what other similar tools/services/platforms there are out there, even if they're free, so I definitely find posts like the one this thread came from to be helpful one way or another. These sorts of threads also often lead to discussion of the differences between the options, which is again very useful, especially in cases like the current one where the competing offering linked is not just a freemium SaaS platform but also as F/OSS as it can possibly be if you want to self-host and not have to pay anyone other than whoever manages your server.
If you're building a product for a market that already has solutions, your product needs to be able to hold its own against the other offerings.
I wanted something that required no setup, but could just push success/failure messages to as part of various cron jobs, windows tasks, and shell scripts we run throughout our organization.
StatShed server: https://github.com/statshed/statshed-server StatShed go-cli: https://github.com/statshed/statshed-gocli
The idea is kind of like "ntfy.sh", but for jobs status. You can send a "started" message at the beginning, update a "status" message periodically throughout the job, then send a "failed" message (optionally with logs) or a "success". Then a web dashboard gives you an overview with ability to drill down.
We use Icinga for monitoring and paging, but this just gives an overview for a quick look at things we don't want heavy duty monitoring on. Like my laptop backups, information about ansible runs across our fleet, etc.
https://habilis.net/cronic/
Your service could accomplish something similar if it had such a wrapper to report both success and failures with logs to a remote server. That would take away the need to run a local MTA, while also detecting with the heartbeat whether the job ran at all.
It does help. Sometimes jobs unexpectedly don't run at all.
There's currently no explicit "fail" ping, as that's not the main use case I care about. It's valid, though, and I've thought about adding it.
Being able to pipe logs to curl would also be useful. I'm concerned that people might accidentally send me private/sensitive data, but I'll consider it.
https://kitaso.app/
Sure there is the downside of having to be at your laptop or having it on, but the upside is that it has very few moving parts and is very simple and it just has one set price.