So after months of dealing with problems trying to get the stuff I want to host working on my Raspberry Pi and Synology, I’ve given up and decided I need a real server with an x86_64 processor and a standard Linux distro. So I don’t continue to run into problems after spending a bunch more, I want to seriously consider what I need hardware-wise. What considerations do I need to think about in this?

Initially, the main things I want to host are Nextcloud, Immich (or similar), and my own Node bot @DailyGameBot@lemmy.zip (which uses Puppeteer to take screenshots—the big issue that prevents it from running on a Pi or Synology). I’ll definitely want to expand to more things eventually, though I don’t know what. Probably all/most in Docker.

For now I’m likely to keep using Synology’s reverse proxy and built-in Let’s Encrypt certificate support, unless there are good reasons to avoid that. And as much as it’s possible, I’ll want the actual files (used by Nextcloud, Immich, etc.) to be stored on the Synology to take advantage of its large capacity and RAID 5 redundancy.

Is a second-hand Intel-based mini PC likely suitable? I read one thing saying that they can have serious thermal throttling issues because they don’t have great airflow. Is that a problem that matters for a home server, or is it more of an issue with desktops where people try to run games? Is there a particular reason to look at Intel vs AMD? Any particular things I should consider when looking at RAM, CPU power, or internal storage, etc. which might not be immediately obvious?

Bonus question: what’s a good distro to use? My experience so far has mostly been with desktop distros, primarily Kubuntu/Ubuntu, or with niche distros like Raspbian. But all Debian-based. Any reason to consider something else?

  • Zagorath@aussie.zoneOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    if I’m doing virt though

    What’s the use case for that? My plan has been to run a single server with a handful of Docker containers. No need for more complex stuff like load balancing or distributed compute.

    • curbstickle@anarchist.nexus
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      I prefer lxc to docker in general, but that’s just a preference.

      If you end up relying on it, you can expand your servers by adding another to the cluster, and easily support the more complex stuff without major changes.

      The web interface is also extremely handy as is the CLI, and backups are easy. High utility for minimal effort.

      Its also a lot easier to add a VM later if youre set up for it from the start IMO.

      • Zagorath@aussie.zoneOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        13 hours ago

        Interesting. I’ve never really played around with that style of VM-based server architecture before. I’ve always either used Docker (& Kubernetes) or ran things on bare metal.

        If you’re willing to talk a bit more about how it works, advantages of it, etc., I’d love to hear. But I sincerely don’t want to put any pressure and won’t be at all offended if you don’t have the time or effort.

        • curbstickle@anarchist.nexus
          link
          fedilink
          English
          arrow-up
          1
          ·
          12 hours ago

          No worries

          Like I said, I generally prefer lxc. LXC and docker aren’t too far off specifically in that both are container solutions, but the approach is a bit different. Docker is more focused on the application, while lxc is more about creating an isolated container of Linux that can run apps. If that makes sense.

          LXC is really lightweight, but the main reason I like it is the security approach. While docker is more about running as a low privileged user, the lxc approach is a completely unprivileged container - its isolating at the system level rather than the app level.

          The nice thing about a bare metal hypervisor like proxmox is that there isnt just one way to do things. I have a few tools that are docker containers that I run, mostly because they are packaged that way and I dont want to have to build them myself. So I have an lxc that runs docker. Mostly though, everything runs in an lxc, with few exceptions.

          For example, I have a windows VM just for some specific industry applications. I turn on the VM then open remote desktop software, and since I’m passing the dGPU to the VM, I get all the acceleration I need. Specifically, when I need it - when I’m done I shut that VM off. Other VMs with similar purposes (but different builds) also share that dGPU.

          Not Jellyfin though, that’s an lxc where I share access to my igpu - so the lxc gets all the acceleration, and I dont need to dedicate it to the task. Better yet, I actually have multiple JF instances (among a few other tools that use the iGPU) and they all get the same access while running simultaneously. Really, really handy.

          Then there are other things I like as a VM that are always on, like HomeAssistant. I have a USB dongle I need to pass through (I’ll skip the overly complex setup I have with USB switching), and that takes no effort in virt. And if something goes wrong, it just starts on another machine. Or if I want to redistribute for some manual load balancing, or make some hardware upgrades, whatever. Add in ceph and clustering is just easy peasy IMO.

          The main reason I use proxmox is its one interface for everything - access all forms of virt on the entire cluster from a single web interface. I get an extra layer of isolation for my docker containers, flexibility in deployment, and because its a cluster I can have a few machines go down and I’m still good to go. My only points of failure are the internet (but local still works fine) and power (but everything I “need” is on UPS anyway). Cluster is, in part, because I was sick of having things down because of an update and my wife being annoyed by it, once she got used to HA, media server, audiobook server, eBook server, music server (navidrome as well as JF, yes, excessive), so on.

          Feel free to ask on any specifics