• 1 Post
  • 11 Comments
Joined 3 months ago
cake
Cake day: December 28th, 2025

help-circle
  • How would anyone place a 100% community driven distribution like Debian in such a cage? There’s no monetary leverage, the community is truly international, so local laws don’t apply …
    Please note that it’s also one of the most prolific distributions, and the foundation p.e. for *buntu.

    If you’re living in an oppressive jurisdiction, your employer might obviously not allow you to use a truly free operating system, but that’s hardly Linux’s fault.

    So if your favorite distribution is starting bullshit, just switch to the next one, there are literally thousands of them. That’s why “Year of the Linux desktop” is confusing: it’s “year of steamOs” or “year of *buntu”, probably even “year of Debian”, but most certainly never “year of the nixos desktop”.

    You have choice. Use it.


  • 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





  • Couldn’t stop worrying about this, so I added:

    • --no-tooltips param: Don’t include check output for hover tooltips
    • --no-timestamp param: Omit the “Generated at” timestamp to hide system clock and monitoring cadence.

    If you’re using these, I feel much better about making the html publicly accessible, but when you set up a config please remember that links-tags can expose your internal topology and the tile/slot name might do the same! Don’t go naming your tiles something like “Database Primary”, “Payment Service Worker”, or “Internal Auth API”!

    (unless you wanna place a honeypot)



  • 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!




  • Awesome, thanks for the consideration!

    Please don’t immediately start public facing however - I literally just bashed the thing together in an afternoon, so who knows what kind of exploitable information leaks it might bring!

    I’m personally using it from within a tailnet, so not public facing.


    Edit:
    I have since added:

    • --no-tooltips param: Don’t include check output for hover tooltips
    • --no-timestamp param: Omit the “Generated at” timestamp to hide system clock and monitoring cadence.

    If you’re using these, I feel much better about making the html publicly accessible, but when you set up a config please remember that link-tags can expose your internal topology and the tile/slot name might do the same! Don’t go naming your tiles something like “Database Primary”, “Payment Service Worker”, or “Internal Auth API”!