Pihole. DNS-level ad-blocking for my network.
Jellyfin. Movies/TV/Music server with a variety of clients, including a built-in web client, but also AndroidTV/Shield, Roku, Kodi, and more. It's like having a personal Netflix.
Minecraft. The old Java kind. May be leaving for something open-source soon because MS has fucked up the account transitions so badly, and also make buying new copies bizarrely painful, error-prone, and time-consuming—like, I don't know how someone who's not a computer nerd can actually manage to buy and use it, now. It's really bad.
All in Docker on a used workstation, running... IDK, Debian, I think? It hardly matters, because Docker. I don't even mess with Systemd or whatever, I just let Docker figure out what should be started when based on what I set each container to do (restart-unless-stopped, I think? It seems to start them at boot and if they crash, which is all I need).
I hosted PHPNuke and PHPBB on Apache2 out of my basement for years so they'd be contenders for some kind of lifetime total-hours-running-the-service, but that was a long time ago.
I’ve been considering setting up plex so my mom and brother could access media. Would jellyfin be better for this?
I've not used Plex, so I'm not sure. You'd need to find a way to expose it to the Internet (mine's only on my local network) but that shouldn't be too hard. Just forward the correct ports on your router.
It does have an account system, including the ability to restrict which "libraries" an account can access, which is great if you have kids. For adults, it lets you track your viewing progress/status separately, just like having multiple Netflix profiles.
One thing to account for is that it has to transcode and/or remux videos for clients that can't handle a file's native codecs, audio or video, which can put a pretty heavy load on the server. A Raspberry Pi or weaker x86 machine won't be able to do this without frequent pauses and frame-dropping, for any but very low-resolution media. Solutions to this include: 1) ensuring that your clients can all handle a huge range of codecs, so it never has to transcode (IME audio is, these days, trickier than video, especially ensuring things like Dolby Atmos are supported), 2) getting a really powerful server, in particular with a video card that Jellyfin can use for transcoding, and 3) falling back on just downloading the file and throwing it in VLC (the web interface makes it really easy to download the raw video files in a pinch, though if you have big high-quality 4K rips they'll come down at full size, which can be inconvenient on devices with limited storage, like, say, iPads).
However, I think Plex or anything else will have similar limitations, since they all have to do something like that to accommodate players & devices with limited codec support.
Jellyfin's been very stable for me, which is part of why I'm still on it. I also find the UI in most of their clients much, much more to my liking than something like Kodi. But IDK about Plex.
[EDIT] Oh, I guess you could also batch-job transcode all the files to something very widely-supported, outside of JellyFin, though likely at some cost in quality and maybe also file size. Plus it'd probably take at least an hour or two to hack together a script to do it, for a wide range of input codecs.
Plex has definitely started to try and commercialize itself more and offer other stuff, when all I want is access to my own media. So I may look into Jellyfin more soon.
As for batch transcode jobs, I had a system that I was able to set up as essentially a black box. Drop a rip into a folder and out the other side comes a smaller one at a reasonable quality. With forced subs burned right into the actual video. Mostly based on https://github.com/donmelton/video_transcoding