I was reading a homelab discussion about NUTs (Network UPS Tools) that left me scratching my head and wondering "…why? Is complexity for complexities sake part of homelabs? Isn’t this a huge overkill for one machine? Just…use a UPS? "

Then I got to thinking more broadly about homelabbing and I started to wonder if there weren’t maybe (at least) two different schools of thought.

Using home media as example -

  • Store the original.
  • Detect the client.
  • Transcode when required.
  • Monitor the GPU.
  • Add reverse proxy et al
  • Track bandwidth.
  • Add user accounts
  • Add failover.
  • Graph the result.
  • Dashboard.

Vs

  • Store a common compatible file for your devices.
  • Play it directly.

Which school of thought are you and why?

PS: not throwing shade. I get it; for some people, complexity, learning infrastructure, practicing skills for work etc is part of the why. For me, complexity as recreation is suspiciously like work after work.

Perhaps there’s an odd Venn diagram between homelabbing, interest in ownership / useful capability and infrastructure that could make for a fun discussion. For you, is homelabbing a means to an end or is it an end in itself?

EDIT: Feel free to consider “home-lab” and “self hosted” as synonyms for the purpose of this discussion (although I am aware they are somewhat different in scope).

  • SuspiciousCarrot78@aussie.zoneOP
    link
    fedilink
    English
    arrow-up
    3
    ·
    14 hours ago

    I’m not sure if there’s a fundamental misunderstanding but I felt a need to clarify that NUT works with a UPS. It isn’t either or. Whether you’ve got a homelab or a single desktop PC, you need some piece of software which can see when the UPS goes “Oh shit, power is gone” and instruct the machine(s) to shut down cleanly. NUT is that software.

    Could be. In context, the respondent was discussing the use of a raspberry pi - between their UPS and their single Lenovo minipc - as a stand-alone home device. Why? Don’t know.

    To my understanding, the sequence is (or should be)

    Mains fails -> UPS supplies battery power -> UPS reports its battery state over USB -> software on the PC shuts the OS down.

    Using a Pi as a dedicated NUT server makes sense when several machines need the same UPS…for one PC, it seems like an extra machine in the chain (for the sake of an extra machine in the chain).

    That’s sort of what I meant: things get overbuilt. Maybe for fun.

    • __hetz@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      4
      ·
      14 hours ago

      I was actually working on an edit to further clarify but that context helps. You’d think for a single machine, just run NUT (or whatever) directly on said machine. The two big reasons, even in that case, for using NUT on a RPi or other low power machine are actually what my edit was going to address: Power Consumption and Wake on LAN. After shutting down any power hog server(s) a decent UPS can probably keep a Pi Zero and travel router running for half a day. Ideally long enough to send a WoL packet to the server(s) once the UPS says power is restored. That can be pretty important, even in a “single” (ignoring the Pi) machine setup, if you’re out of town and nobody else has access to manually power it back up.

      I will admit NUT was one of the more convoluted things I ever set up, and one has to write their own scripts and such for it, but I find it worth the peace of mind knowing things shut down cleanly. Having them wake back up automatically is icing on the cake, even if my own setup is local only. There’s never a need, if I’m not home, to walk anyone over the phone through identifying which nondescript black rectangle needs its power button pushed.

      • hirihit640@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        13 hours ago

        I bet another reason is security. You might not trust the NUT software. It might be proprietary, and even if its open source, it might not be scrutinized enough to be safe.

        Using separate hardware, lets you take in the power loss signal from the NUT and then convert it to a channel you might trust more, like an http request over wireguard. Alternatively you could use a VM with usb passthrough on the main PC…though usb passthrough still has risks.

      • SuspiciousCarrot78@aussie.zoneOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        14 hours ago

        I can dig it…but surely the simple option is to have the PC wake up on power restoration, right?

        Set the BIOS to “restore last state after AC loss” and let the UPS do its basic job. If power returns before the battery dies, the PC never shuts down. If the battery does die, the PC loses AC while running, then powers back up when AC returns.

        Does that not achieve the same outcome?

        I get the idea of Pi + NUT + WoL setup (especially if you want a clean shutdown). It just seems…a lot for a single machine.

        (He said, conspicuously hiding the shopping cart of solar panels and marine batteries)

        • Wolf314159@startrek.website
          link
          fedilink
          English
          arrow-up
          2
          ·
          12 hours ago

          The idea is to have the server safely shutdown BEFORE it loses power, so that BIOS setting wouldn’t mean anything. The server does not loose power while it it running, so it will never “restore last state after AC loss”. The idea is that you can run a low power device (the raspberry pi) for which you don’t care if power is cut abruptly and that can talk to both the UPS and the wake-on-lan of the server directly over ethernet. It being local means those WOL are much more likely to work than trying to send them from outside your network when you’re remote. It’s a lot simpler to set this up once than it is to recover a server with a corrupted file system due to power loss or lose access to your server for weeks because a thunderstorm knocked out power for 30min at the beginning of a long trip. That pi can also take care of other always on services like a pi-hole, home assistant, etc.

        • SteveTech@aussie.zone
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          12 hours ago

          I can dig it…but surely the simple option is to have the PC wake up on power restoration, right?

          After the PC shuts down, the UPS runtime will increase by a lot. So the power might come back before the UPS turns off, so as far as the PC can see, the power was never lost.

          Edit: Also I assumed you meant restore on after AC loss, and not the last state.

        • __hetz@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          1
          ·
          12 hours ago

          What you’re describing works but probably not for me as you acknowledge. The “PC loses AC while running” part is what I actively try to avoid as part of the greater goal of minimizing risk of damage/data loss. It might be superstitious at this point, modern hardware and filesystems being a bit more resilient, but I feel better not risking it. Since I’m shutting down before the UPS battery dies, and power could restore before it does, there’s a real chance power will never be totally lost as far as the motherboard sees it. In that case a boot on AC restoral won’t get triggered. Otherwise I agree. It’s a lot of work. Or rather a lot of research, RTFM, and understanding before you can even do the a little bit of work to implement it.