You don’t need to run it on a pi. In fact, I’d actually argue against it; A pi will be underpowered if you’re ever needing to transcode anything. Transcoding is what Plex/Jellyfin does if your watching device can’t natively play the video. Maybe you have a 4k video, but you’re playing it on a 1080p screen. That video will need to be transcoded from 4k into 1080p for the screen to be able to display it. Or maybe the file is encoded using ACC (a fairly recent encoding method) which isn’t widely supported by older devices. This often happens with things like smart TVs (which often don’t support modern encoding and need to be transcoded even if the resolution is correct.)
Basically, if you’re 100% positive that every device you’re watching it on will never need transcoding, then a pi is acceptable. But for anything else, I’d recommend a small PC instead. You can even use an old PC if you have one laying around.
Or if you want to use a new machine, maybe something like an HP Elitedesk. They’re basically what you see in every single cubicle in every single office building. They’re extremely popular in corporate settings, which means there are a ton of used/refurbished systems available for cheap, because IT destroys the drives and sends the rest to refurb when they upgrade their fleet of PCs. So for the refurb you’re basically just paying the cost of an SSD they added in (to replace the one IT pulled out), plus whatever labor is associated with dusting it out and checking the connections to make sure they all work. You can pick up a modern one for like $250 on Amazon (or your preferred electronics store).
Worth noting that the elitedesk generations are marked by a G-number, so google the model (like an EliteDesk G9, G7, etc) to see what kind of processor it has; Avoid anything with an intel 13th or 14th generation CPU, (they have major reliability issues) and check with Plex/Jellyfin’s CPU requirements list to see if it supports hardware accelerated transcoding. For Intel chips, look for QuickSync support.
For storage, I’d recommend running a NAS with however many hard drives you can afford, and one that has extra ports for future expandability. Some NAS systems support Plex and/or Jellyfin directly, but the requirements for full support are tricky and you’ll almost always have better luck just running a dedicated PC for Plex. Then for playing, one of two things will happen. Either the device is capable of directly playing the file, or it will need to be transcoded. If it’s directly playing, the plex server basically just points the player to the NAS, and the player handles the rest. If it’s transcoding, the PC will access the NAS, then stream it to the player.
As for deciding on Plex vs Jellyfin, that’s really a matter of personal preference. If you’re using Plex, I’d highly suggest a PlexPass sub/lifetime purchase; Wait until Black Friday, because they historically do a (~25% off) discount on their lifetime pass. Plex is definitely easier to set up, especially if you plan on streaming outside of your LAN.
Jellyfin currently struggles from a lack of native app support; Lots of smart TVs don’t have a native Jellyfin app, for instance. But some people have issues and complaints (many of them justified!) with Plex, so if the FOSS sounds appealing, then consider Jellyfin instead. Jellyfin is also rapidly being developed, and many people expect it to have feature parity with Plex within a few years.
And if you’re having trouble deciding, you can actually set up both (they can run in tandem on the same machine) and then see which one you prefer.
And the nice part about using a mini PC is that you can also use it for more than just Plex/Jellyfin. I have the *arr suite running on mine, alongside a Factorio server, a Palworld server, and a few other things.
Also because several ballot drop boxes in liberal areas have been set on fire.