But now I need a name!
Not going to explain my name ideas, instead, a brief detour about the project!
I plan to use the Filthy Human Hands license, because I don't care if it gets into distributions. This is a personal project, for me, by me. If it works and is useful for someone else too, great, but I don't plan to make it a Project™. I might accept bug reports or pull request, but... ultimately, this will help me.
As for configuration, I love #KDL, so I will be using KDL.
Something along these lines, maybe:
server Oscar {
ping oscar.onlyjunk.fans
https onlyjunk.fans
ssh -p 2222 onlyjunk.fans
wg ojf-client peers
}
This'd ping Oscar on IPv4 and IPv6 both, report the results. Would also check that it responds to https, and SSH is available on port 222, and report something like "2/4 OJF tunnels up".
The public interface doesn't need to show the reason of the error - it only needs to show that shit's down. I'll look into the error myself, via other means.
I don't need to check every service. Like, I won't be checking whether Prosody is up, or coturn is running, or stuff like that. That's what monitoring is for.
This is a simple, dumb status page, nothing more.
One additional thing I might make it do, is teach it to display a custom banner: "Yes, I know XYZ is down, working on it.". It could provide a tiny little API where I can set a custom message (which would, again, not be persisted). Or perhaps no API at all, just...
banner file="/run/whatever/banner.txt"
// banner "Stuff's down, I'm on vacation. Will fix in two weeks."
As per usual, the generated HTML will be HTML+CSS, no JavaScript.
Oh, yeah... when should it check stuff? Hm. What if it wasn't an always-running service? What if it did the check every time it ran, generated the HTML, and then... quit.
Then I'd run it from cron1.
I mean, I don't need different check intervals for the services or hosts. It's perfectly fine to check all of them, every time the timer's up, like... ever 5/10/15 minutes or so, whatever feels okay. I don't need higher granularity than that.
As a systemd timer, because NixOS & systemd. ↩︎