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!

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