I’m ready to graduate from my Raspberry Pi era of selfhosting and buy hardware specifically for use as a server.

I’ve been recommended in the past to look for used Lenovo Thinkstations and/or Dell Optiplex, but it has been so many years since I’ve shopped for a computer, I don’t know what kind of specs to look for. What are the types of specs I should look for to get the best value for money?

I’m hoping to spend around $300-400, get something that can be upgraded in the future to last 10+ years, and do the following things:

  • YUNoHost / reverse proxy
  • Nextcloud with a custom domain for email addresses, cloud drive, photos
  • Music Streaming with something like Navidrome
  • Serve static websites
  • pi-Hole
  • Maybe pi-VPN

And someday maybe:

  • Host game servers like minecraft
  • Jellyfin for videos
  • Kodi and output to TV?

So far based on my selfhosted journey, I expect to want the following:

  • Room for 3+ Hard Drives
  • External UPS (probably will go with the cheap APC at Microcenter that’s always on sale).
  • Solid Power Supply / Cooling
  • probably 1000 gigabit Networking (?)

The types of questions I have for Thinkstations / Optiplex:

  • How is the Power Supply / Cooling?
  • Processor? Do I need i5? i7? Generations? AMD? Clock Speed? I’m completely lost here.
  • How much RAM do I need?
  • Do I need a discrete graphics card? Can Thinkstations / Optiplex have a graphics card added to them later?
  • Anything else I’m missing?

Thanks!

  • Cort@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    9 hours ago

    If you’re ok buying used, I’d go for a first Gen Ryzen 8 core. They’re cheap as chips since they don’t support Windows 11, but the cpu is upgradable so you can upgrade if you need more power or want to run Windows 11. Also it’s a ddr4 platform so the ram is under $100 for 64gb.

    A GTX 1050 would be fine for Plex, and discrete graphics would be required if you go with the Ryzen recommendation. I think rtx 3060 is probably the sweet spot for a 12gb vram card, but you won’t need that much unless your streaming to 5+ Plex users simultaneously.

  • teppa@piefed.ca
    link
    fedilink
    English
    arrow-up
    5
    ·
    15 hours ago

    I would buy an i5 9400 PC off eBay. Dell or Lenovo. Should be less than 200$.

  • Onomatopoeia@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    15 hours ago

    Two requirements stand out: Media streaming (jellyfin) and multiple hard drives.

    In the video front, Jellyfin has documented what you want to look for if you’re building “new” (that is, not just using what you have lying about). Discrete video card is very much recommended for tranacoding (which will invariably happen). Check their docs here. They also cover which processor to use and why.

    Let’s consider drives now: what’s the reasoning for multiple drives? I had this requirement too, then had a Dell OptiPlex SFF (Small Form Factor) fall in my lap. Because it can only handle 2 drives (in addition to the M2 OS drive), it made me rethink things. At first I added a 4 port SATA card and four 2.5" drives I had lying around. It worked, but what I realized was my media server needed enough storage to hold my library, but it didn’t need internal redundancy. So currently it has an 8TB drive for my library, and an M2 drive for the OS (which is how this machine comes anyway). That drive is duplicated to a NAS and two other drives on different machines (to protect against drive failure).

    I run a monthly host OS backup to my NAS, just in case (but it’s a simple rebuild as my services/tools run in VM’s).

    I had a cooling issue at first, then realized it was an old machine (2017), and the cooler paste was likely hard. Cleaned it off and put on new and the fan now runs quietly, even when converting. At idle it hardly makes any noise at all.

    One nice thing is it has a relatively small power supply, so it peaks at 80w while converting, and idles about 15w.

    It lacks a discrete video card, so when it does transcoding the quality suffers a little. I’ll need to upgrade the power supply to add a video card.

    I’m really impressed with this little box - I’d buy another in a heartbeat.

    • sem@lemmy.blahaj.zoneOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      14 hours ago

      I could get by with 2 HD bays – it is more because I would like to use RAID if possible, and have an easier time to upgrade to larger capabilities as time goes on.

      I’ve also just appreciated larger cases with more room – with small cases sometimes it’s hard to work in there.

      Internal redundancy would be nice to have with a file server, but probably not necessary if I can have redundancy with regular backups instead.

      Thanks for the ideas!

      • Onomatopoeia@lemmy.cafe
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 hours ago

        Oh, I hear ya on the space issue - there’s almost no space in this SFF, but I like it’s form factor so I’m willing to compromise.

        Anymore I don’t find RAID very useful, except for mirroring a drive. As I say this, I do have a NAS with 5 drives, but it’s used as one of my replicators as it’s too slow for anything else. I did run Proxmox with RAID for a while, that was pretty cool, I just don’t need all it’s capability.

        These days I can get a large enough single drive for a box - I considered getting a 12TB but the price on the 8 was hard to beat and I won’t be filling it anytime soon.

      • kevincox@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        12 hours ago

        IMHO for 2 drives you don’t want redundancy. (I assume that is what you want RAID for, mirroring?). The per-drive failure rate is so low that you are unlikely to encounter it and nothing you are running seems particularly availability sensitive. Having a bit of downtime to rebuild in the very rare case of a drive failure is fine. The extra storage space is way more valuable.

  • Mordikan@kbin.earth
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    12 hours ago

    If you end up going with a SFF build, I would recommend a dedicated GPU for Jellyfin. Nothing fancy, just a low profile GTX-1030 or RX 550 to handle the transcoding. Otherwise you’ll probably run into high CPU spikes while watching content from browser or some smart TVs.

    • MaggiWuerze@feddit.org
      cake
      link
      fedilink
      English
      arrow-up
      12
      ·
      12 hours ago

      An Intel CPU with quicksync is the better and way more energy efficient solution for transcoding. A regular 8th gen+ i7 can handle multiple 4k transcodes

    • kevincox@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      12 hours ago

      IMHO this isn’t really worth it.

      1. x264 is very fast at lower profiles. Especially if you aren’t streaming across the internet often the size hit from the fast profiles is fine. Even if you are streaming over the internet it is probably fine. Getting a slightly faster CPU will also get you super far and is more useful to have lying around than a GPU as it will benefit most things that you do on the server. And worst-worst case a bit of CPU usage isn’t going to hurt much of the things that he is running (except maybe a game server if people are playing at the same time and you are really maxing out all of your cores).
      2. Integrated GPUs are fine for a handful of concurrent streams. Especially the Intel ones which have amazing media engines.
      3. Even if you are going for a dedicated GPU I would go with an Intel ARC. They are way better at media encoding and cost less.
      4. You can always add a GPU later. Wait until you have a need and are seeing problems without.
      • hietsu@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 hours ago

        Someone should explain me why transcoding is even needed (other than in case bandwidth is an issue)? My ”media server” at the moment is a custom ffmpeg script to edit all x264 mp4 files it finds by moving the moov atom to the beginning of the file (and what ever the similar thing for x265 was), and then lighttpd to serve them via dir listing. No file has yet had playback issues even over the internet…

        • kevincox@lemmy.ml
          link
          fedilink
          English
          arrow-up
          3
          ·
          11 hours ago

          There are a handful of common reasons.

          1. The client doesn’t support the formats. Browser clients are notoriously picky not supporting some common video (for example few browsers support h265 and it isn’t generally considered web-safe) and audio formats. But embedded devices may also cause trouble if they don’t have enough CPU to do non-accelerated playback and don’t have hardware support for the codec used.
          2. Playing at a lower bitrate. In that case you can transcode at the fly.
          3. Remuxing. This is things like the moov atom where the actual codecs are supported but not the container or exact packaging of the file.

          But yeah, especially if you are using a player with wide format support you may not need it.

          • hietsu@sopuli.xyz
            link
            fedilink
            English
            arrow-up
            2
            ·
            11 hours ago

            Mostly using the ”browser” (so shitty that you can barely call it one) on my LG smart TV, and sometimes some iDevices, but I’ll consider myself lucky with codecs then. Even mkv’s play on LG without hiccups. Only small thing I miss are subtitles which these devices do not seem to support, even if I’d mux them in as a track.

            • kevincox@lemmy.ml
              link
              fedilink
              English
              arrow-up
              2
              ·
              edit-2
              11 hours ago

              I’m pretty surprised that all of the audio formats work. I’m not so surprised that the TV has h265, although maybe a bit surprised that it is exposed to the browser. The container support is also pretty surprising. Unless your MKVs are so simple that they are effectively WEBM.

              Or maybe it pops the link out of the browser into a dedicated media player which has decent codec support.

              iDevices do expose h265 in the browser, but the container support is still a bit surprising. But then again WEBM is basically MKV, so maybe that is why it tends to work.

              • hietsu@sopuli.xyz
                link
                fedilink
                English
                arrow-up
                2
                ·
                11 hours ago

                Or maybe it pops the link out of the browser into a dedicated media player which has decent codec support.

                I think this is exactly what it does.

                With iDevices no luck with mkv’s if I remember right, but not sure if I have even tested one. Most my files are mp4 x264.

                • kevincox@lemmy.ml
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  11 hours ago

                  Yeah mp4s with h264 will play basically anywhere if the audio format is a common one. Must be the most supported setup.

        • MotoAsh@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          11 hours ago

          Jellyfin and others transcode some videos to a more streamable format. Not important if it’s already a good streamable format, but if it’s some older file, it might not even be streamable (like AVI, and WMV). Those situations are where transcoding is necessary. It also comes in to play when the bitrate needs to change, like trying to watch a high bitrate video on old hardware that cannot handle it (like an old chromecast). It’s nice when the server can just transcode the video and send a less heavy or more compatible stream.

          Hardware acceleration for the transcoding is simply more efficient these days. Most CPUs for the last decade can do software transcoding of 1080p without much issue (if that’s all it’s doing), but get multiple people watching older videos or some really high bitrate ones and hardware acceleration will become a tangible benefit, too.

          Your situation only works for video formats that are streaming-friendly, meaning all the browser has to do is feed the stream of data to a video player, and it Just Works. The media player doesn’t need significant chunks of the file to start playing it, so as long as the connection is fast enough, it’s fine.