Presenting ilias, yet another dashboard because obviously the world needed one more

You know how it goes. You're happily using [Homer](https://github.com/bastienwirtz/homer) or [Homepage](https://github.com/gethomepage/homepage) fo…

I’ve gone to write something almost exactly like this several times and never quite finished. I like how this is set up. It seems like one thing that could be improved is parameterizing the configs a bit so that e.g. matching a 200 status gives a standard label that doesn’t need added to every job
Hu, never thought of that - that’s a pretty neat idea! Thank you 🤗

Loved that idea so much that I went and implemented it: - The checks now have an automatic type inferrence and shorthand - introduced default rules that are used when nothing’s configured - realized that yaml-anchors always worked thanks to the lib I’m using.

So now with this preamble:

# Defaults are used when nothing is defined at the slot level. They can be overridden by defining rules directly on a slot. defaults: rules: - match: code: 0 status: { id: ok, label: "✅" } - match: {} status: { id: error, label: "❌" } # YAML anchors: reusable fragments ilias doesn't interpret directly... # it's all just yaml _anchors: pct_rules: &pct_rules # works for disk, memory, CPU … - match: output: "^[0-6]\\d%$|^[0-9]%$" status: { id: ok, label: "✅ <70%" } - match: output: "^[7-8]\\d%$" status: { id: warn, label: "⚠️ 70–89%" } - match: {} status: { id: critical, label: "🔴 ≥90%" }

I can now have a tile like this:

- name: Memory slots: # combine anchors and default rules as well as check shorthands - name: usage check: "free | awk '/^Mem:/ {printf \"%.0f%\", $3/$2 * 100}'" rules: *pct_rules - name: available check: "free -h | awk '/^Mem:/ {print $7 \" free\"}'" # uses default rules - name: total check: "free -h | awk '/^Mem:/ {print $2 \" total\"}'" # uses default rules

And the best? It’s fully backwards compatible ❤️

Thanks again for the suggestion!

This is a great idea! Nice work man!
Just FYI, Homepage has ping functionality to check if your services are up. siteMonitor

Yes, I’m aware of that, but I always found it weird to have a live service for something that hardly ever changes. And then I had the idea of this whole “fully self contained html”, and now I can’t imagine it another way 😆

That’s just opinions though, and if Homepage strikes your fancy go for it - it’s an awesome project.

Hey everyone! I think I got a cool idea for a dashboard!
Is it … a new tool? I love new tools 🥹

Its just an idea…

When my router says “threat” and gives me an IP address, this address gets added to a big ass database that all routers see. Then every router in the world blocks their ass out…get them to go to a government office and ID themselves as an adult if they want back in.

Wow, I can really see this taking off in the international dashboading-scene!
Thanks its super unique LOL.
@altphoto @selfhosted This is essentially what Pi-Hole does. It handles your DNS queries and blocks any that you want. It automatically updates blocklists from a variety of sources available. Some IPs are trackers, advertisers, malware, phishing and other notorious or otherwise obnoxious. You decide. Works great. I have about 1.7 million IP addresses blocked, but only a couple thousand or so show up on any day. Amounts to between 5% and 8% of my total traffic. I cannot fully express my joy with the FREE software. I have a dedicated Raspberry Pi 4B on my network for this purpose, but it can run on almost any Linux variant. #RPi #homelab #DNS #PiHole

soo… servers your router doesn’t like for whatever reason blocked for everyone else? with gov ID checks? why would we want that?

and how is this a dashboard idea?

It’s just an idea! Geez!
ok, but who is the target audience for that? I am interested now
Its a sarcastic comment because this post was started as “yet another…”

The only problem is it probably IS an adult human, a 85 year old running windows XP to check the church newsletter every Sunday.

(the newsletter is also hosted on xp)

Gonna need a dashboard to keep track of my favorite dashboard projects, you in?
Excellent! A dashboard dashboard!
wonderful! now somebody needs to rewrite this in Rust and we are done!
Go for it 👍
it was just a joke, to the “one more dashboard” part :D its fine

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

Fewer Letters More Letters DNS Domain Name Service/System IP Internet Protocol PiHole Network-wide ad-blocker (DNS sinkhole) RPi Raspberry Pi brand of SBC SBC Single-Board Computer

[Thread #124 for this comm, first seen 1st Mar 2026, 20:20] [FAQ] [Full list] [Contact] [Source code]

Decronym

I’m sorry if this is a dumb question, I am on my phone and did not check much of the repo. I was thinking of adding a dashboard to my stack, and was thinking about Prometheus + grafana because of versatility but the main con is the complexity. How are the graphs generated on your example? Are they static images generated manually?

I love grafana, but it’s a resource hog, and my machine isn’t powerful. Prometheus/node_exporter however is as lightweight as it can get.

So I made a little Python script that fetches the data from Prometheus and uses mathplotlib to generate a graph.

The dashboard calls that python script for every configured graph and embeds the image so it looks nice.

You can find the script in one of my other repos (Prometheus-renderer probably), but there are dozen similar ones: search github for Prometheus renderer and you’ll see

If there are other things unclear, please don’t hesitate to ask

You had me at “no Node.js”