Conversation

I should set up some kind of uptime monitor, just to see how many nines my servers have.

The problem is that I can't  have it on my own infra - but I also do not like relying on third party services. This one would not be critical, though. It's purely for show.

2
0
0

@algernon A mutual monitoring service agreement with a trusted friend?

1
0
0

I kinda like Codeberg's status page, that's the kind of thing I'm aiming at.

That one is powered by Uptime Kuma, but that has recent Copilot-assisted commits by its maintainer, so... I'll look for alternatives.

I do not want to build my own. Did that before, abandoned it both times, don't want to make the same mistake again.

2
0
0

@algernon You meant that abadoning the projects was the mistake, right? … right?

1
0
0

@positivedinosaur Abandoning them was the second mistake, yes. Starting them was the first. flan_guns

0
0
0

Mngh. awesome-sysadmin does not have many suitable alternatives, really.

There's Kuvasz, which, at a first glance, does what I need. It also has a delightful "vibe-coding 0%" badge. But it's Kotlin, and isn't available in nixpkgs. Normally, that wouldn't be a problem, but... I kinda want something lightweight, and when the JVM is involved, lightweight is not among the properties I'd first think of.

There's kener, with a lot of slop-supporting files in the repo.... and a whole bunch of monitoring things I don't need.

I need a status page.

3
0
0
@algernon .........right after I switched to it for not having that.

Siiiiiiiigh, I guess at some point I'll just hack something together myself.
1
1
0

@algernon I am using Beszel as a private dashboard monitoring Docker containers and I am quite happy with it. It shows also CPU, traffic, etc. but of course it requires a Daemon/monitoring container running on the monitored servers.

1
0
0

@agajdosi Not really what I'm looking for. I already have private dashboards with Prometheus & Grafana.

I want a public status page, one that does not require an agent to push status to the hub, but one that runs elsewhere, and pings the hosts I configured it to ping, and keeps a few stats about downtime.

0
0
0

@alexia That happens more and more often lately. At this point, I'm reluctant to start using anything that doesn't have a strict anti-"AI" policy.

I need assurance that if I invest time into something, it will stay slop-free. I don't want to go look for alternatives in a month.

0
0
0

I mean, I don't need much. I don't need an API, nor authentication. I don't want to post messages or alerts or anything.

I want a single page that displays the status of the servers I configured it to check, and a small graph to show historic availability, and perhaps a badge to show off that I have more nines than GitHub.

Feels like it shouldn't be much more than a cron job & some saved state, and a static site generator.

2
0
0

"How hard can it be?!"

I understand all to well that there's the constant temptation to make it more complex, to make it more flexible, so it can do stuff like... check SSH, verify that it's not just reachable, but responds as expected, that the certificate isn't expired, etc.

I want something that does none of that.

I want something I give a list of URLs, it checks the periodically, if they respond with 200, fine, yay. If not, record an outage. That's it.

1
0
0

This is something I can't believe doesn't exist. Yet, I'm having trouble finding it.

(Fuck you, slop machines, for making it harder to find stuff!)

2
0
0

Hrm, maybe health?

Seems to require a database, but I can live with that, both my servers have Postgres for various reasons.

2
0
0

@zhenech I have not, but it looks like an option on first glance. Thanks!

0
0
0

Open-source status pages and uptime monitoring built for the AI era.

Oh, fuck off.

1
0
0

Another contender: statping-ng.

This one's packaged in nixpkgs, and I'm not seeing immediate red flags.

2
0
0

An AI-powered next-generation open source real-time observability system.

flan_set_fire

1
0
0

Okay, I have a few options, one is packaged in nixpkgs, so that'll be the first to test drive.

1
0
0

Hrm. How do I make it1 connect to postgres on localhost using the unix domain socket?

I don't want to mess with passwords, and I don't want to use SQLite either.


  1. statping-ng ↩︎

2
0
0

@niko It doesn't, by the looks of it - it would be easy then!

It wants host/port/username/password & database.

1
0
0

@algernon @niko absolute path to Unix socket directory in the host config should be it?

1
0
0

Okay, that wasn't too hard.

https://status.madhouse-project.org/ is now a thing. Mind you, this will go down if Oscar goes down, there's no fallback on Eru, nor elsewhere.

It's a start, though!

2
0
0

@algernon maybe gatus?
It uses sqlite for its history storage, is it a dB but like, no extra efforr

1
0
0

@LilaHexe @4censord Yep, and recent CoPilot-tainted commits from the maintainer too.

0
0
0

Do I love it? No.

Am I content with it? I think so.

Will I keep dreaming about writing my own? Yes.

Will I succeed at not writing my own? Hopefully.

1
0
0

@algernon cool! so are you hosting statping-ng on a vps somewhere that's not hosting the rest of the services?

1
0
0

@pho4cexa Of course not! You think I'm a proper sysadmin?! HAH! No. I'm hosting it on the same server as OnlyJunk.Fans (Oscar).

I put it there because that server gets far less traffic than my main fronting server (Eru). I do plan to move most of my fronting to OJF, and slowly decommission Eru - but I might keep it around to host the status page, and serve as a backup.

(One of the reasons I don't love statping-ng is because it's non-trivial to distribute it among N hosts to make the status page itself resilient.)

0
0
0

Like... what if we had a federated uptime monitor? With ActivityPub and stuff?

How? I dunno! But I'm sure @doctor will conjure up something in a few days.

1
0
0

I wanted to fiddle with an ActivityPub server, a very specialized one, to conduct some experiments. This might be the opportunity to do so.

1
0
0

I do not need another side project, though. So even if dreams are conjured up, the most I will do is write them down.

Because I'm a strong willed adult who can resist the temptation of new toys1.


  1. Obligatory confession: exactly none of those adjectives are true.2 ↩︎

  2. "But algernon! You're surely strong willed! You have a whole bunch of hills you're willing to die on!" - that's called "stubborn", as an ox. ↩︎

1
0
0

@algernon I have a little software[1] that let's me scrape a prometheus /metrics which then pings some things and collets stats from their APIs. This way, I have some uptimes and some other data in my Grafana.

[1]: https://codeberg.org/jak2k/up_metrics

2
0
0

@jak2k Interesting tool, thanks! I'll keep it bookmarked, I can see some use for it in the not too distant future.

It's not quite what I was looking for though: I don't need a tool that reports up status to Prometheus - I already have monitoring for the things I care about. I was looking for a public "status page", independent of prometheus.

(settled on statping-ng for the time being)

2
0
0

@jak2k Also, to comply with the license in advance: be gay, do crime.

I hope that saying it in advance is sufficient! I'll try to remember doing so at least once when I start using it too. But figured I'll get it out of the way ASAP!

0
0
0

@algernon Couldn't you then build an uptime dashboard and embed that on a status domain?

The main function it currently has for my is getting stats from FreshRSS. I should add some other stuff…

1
0
0

@jak2k I could. I don't want to build anything, have too many things on my plate as it is.

Not to mention, it would need to handle the case when my Prometheus server is not available, which happens more often than I'm ready to admit: it's in my homelab, if there's power outage, it goes down. If my ISP decides to drop some nines, it goes down.

If Prometheus is down, that'd render the status page useless, unless it has its own database. In which case, I might aswell just send a few HEAD requests and skip the whole Prometheus thing.

0
0
0
@jak2k @algernon that license isn't allowed by the codeberg terms of use by the way, because it isn't a free software license: https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md#2-allowed-content-usage
2
0
1

@jak2k @algernon if you want something similar that would be allowed on codeberg, I would suggest a modified MIT/Expat license with the line:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

altered to say:

The above copyright notice, this permission notice, and the words "be gay, do crime" shall be included in all copies or substantial portions of the Software.

it’s not exactly the same thing but it will likely still put off bigots from using it and doesn’t make it a nonfree license or violate codeberg’s terms of use

0
0
1

@noisytoot @jak2k I'd argue it is allowed.

First, because Codeberg's rules do not say the license has to be OSI or FSF approved.

Second, because it technically allows all 5 things listed in there, with the added requirement of saying "be gay, do crimes" at least once - the rules do not - as far as I see - mention there can't be additional requirements (many OSI/FSF approved licenses have additional requirements beyond the ones listed in Codeberg's rules!). We can argue endlessly about the text and the spirit of the rule, but: The rules also say that exceptions may be considered acceptable, and... in this case I think that'd apply.

But obligatory note: I am not involved in Codeberg's governance in any shape or form, and am not a lawyer.

2
0
0

So far, I have zero nines of uptime. There are no nines in 100%.

I'm funny. Please laugh. Thanks!

1
0
0

@algernon @noisytoot A board member of Codeberg told me that it is not allowed a quite some time ago. (If you are reading this: uwu 👉👈 Sorry for taking so long!) For this reason updating the license was on my todo list for quite some time. It's now REUSE compliant and dual-licensed under AGPL and GAL. This means all modifications must be open or person doing it has to say "be gay, do crime" and I'm very happy with that outcome.

0
0
1

@algernon @jak2k it does not give “all natural and legal persons” the listed rights, because it restricts the rights of anyone who “supports restricting the rights of LGBTQ+ people” from doing anything with the software

it could be also argued that the requirement to say “be gay, do crimes” restricts the right to use the content, especially since someone might be physically unable to say that phrase (if they can’t speak, for example). free software licenses are not EULAs, usually (arguably “providing the service over a network counts as distribution” clauses like the AGPL and EUPL are an exception to this) you do not have to agree to the license at all in order to merely use the software, only to distribute and modify it

maybe it would qualify as an exception though, you’d have to ask codeberg about that never mind, while I was writing this @jak2k replied and apparently it doesn’t qualify as an exception and isn’t allowed on codeberg

unrelated: I wish I had footnotes on akkoma, I'd like to use them instead of parenthesized text sometimes
1
0
2

@noisytoot @algernon If I remember correctly they told me this before the Terms of Service got clarified (and relaxed) on this matter. It might very well be allowed now.

It's not super important for me though. Companies would probably not like to use AGPL software and people who are offended by the GAL will also stay away if they see it.

0
0
0

@algernon IIRC, .9... repeating is equal to 1, so 99.9999... repeating would be equal to 100. So infinite nines?

1
0
0

@Unlikelylass Yeees, but also no: "Ctrl-F 9" only finds "90 days" and response times. No literal nines in the uptime!

I do not worry, though. I'll be rebooting my homelab soonish, so there will be at least one server that has some nines! And more than GitHub!

Can't wait!

0
0
0