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.
110% agree on microsoft's straight fucking of the minecraft experience. Being the designated household minecraft sysadmin is an intensely miserable experience. Just for example, we decided to pay for their bedrock edition realms hosting thing. Getting that account nonsense sorted was a saga on all its own, but at least they reliably ding our checking account. Oh but wait, every now and then it just loses license auth or something and throws prompts at my kids about "buy this now!" when we've already bought the fucking thing, leading to confused whining that I can do nothing about. Whoever wrote this fucking system should be slapped.
I'd just assumed they've decided to make the experience of using and/or buying the Java edition suck on purpose to drive people toward their subscription-based hosting solutions with the Bedrock version, but if that also sucks more than it should, maybe whoever's in charge of it just doesn't know WTF they're doing in general. Seems weird that they'd so badly screw up something that was a cash cow and practically on auto-pilot when they got it.
Everything in Minecraft Java and Bedrock worked fine until we logged into Microsoft's account thing. Now everything is always screwed up. MS cloud stuff is just awful on every level.
Buying the game now requires navigating a couple sites, back and forth, in the correct order, and getting past MS attempts to block seemingly any new account for non-existent "suspicious activity". If you're buying for a kid and make the mistake of not lying about their age, you'll also experience the hell of MS' family account management interface, including having to track down an obscure and not-obviously-related setting to let the new copy connect to any multiplayer server, including local ones. There are, of course, multiple game-related settings screens, because why would it make sense? And only one of them has what you need. Plus you need to visit it in the correct fashion to have it apply to the child account, or else it won't work.
And you'll need to juggle logins to both accounts—the parent account, and the child account—and bounce between them a couple times to get it all working. There's no way normal users are managing to do it successfully.
As for the account transitions, it took me a couple tries to get mine working, and my wife's tried several times and they keep telling her on her MS account(s) that she doesn't own Minecraft and needs to buy it. I haven't looked into it, but I imagine she's missing some non-obvious step. Her experience is likely pretty common.
[EDIT] Oh, another thing I haven't looked into yet: as of a few days ago its started telling my kid they don't own it, and we need to buy it. They fucking definitely do own a copy. No idea what's up with that, and I'm dreading having to figure it out.
@MSFT employees: how do you feel about the rest of the company sabotaging every effort you do to try to get rid of your old reputation and build a new one as a reliable, sane alternative to Google?
Seriously! Between hamfistedly pushing Edge to us Firefox users, raising Office 365 cost a double digit percentage the other year (yes, we moved to GSuite a couple of months later) and all the other stuff, how do you find motivation?
I should probably just stand up a Minetest server alongside Minecraft and try it out. I've been on Minecraft since the really early days, so I hate to move away from it, but it's becoming such a damn chore, entirely due to how they've handled the account transition and how purchasing works.
Minetest might be that thing for you -- the whole game is a collection of mods, meaning that it's essentially designed to be as easily extensible as possible through its Lua interface.
Just make sure your host workstation has automatic security updates turned on, but otherwise yeah letting docker manage all the services is totally fine.
Yeah, I'd probably do something else "in production" but since it hasn't caused a problem in ~3 years of use, and the cost of it breaking is effectively zero because it's only for our own use, I'm just letting Docker figure it out. If it ever breaks I'll write some Systemd unit files or whatever they call them, but until then, one less thing to worry about, to back up and reconfigure on restoration, et c.
My main operation pain is ZFS. Every time I have to touch it, I'm terrified I'll destroy all my data. It's like Git. "I want to do [extremely common thing], how can I do that?" "Great, just do [list of arcane commands, zero of which obviously relate to the thing you want to do] but don't mess up the order or typo anything or your system is hosed". Yeah, super cool. Love the features, hate the UI (again, much like git)
Using container features to limit access of a program to the broader machine (disk, network, other processes) seems like it would tend to be more secure than... not doing that. Right? It's not as if I'm exposing any docker remote-control-related stuff to the network.
I'd try jellyfin first to see if it fits your needs.
I went with plex years ago, because they had good app support on the various devices in my house. (Mostly roku now)
The problem with Plex is:
1. during a recent half day internet outage (during prime-time) I was unable to use plex because the app didn't have access to the internet. The network was all up and running, devices could see each other, but plex decided that even though the media was on the local network it wasn't good enough and refused to finish playing the video we were watching. (The internet went out 20 minutes in)
2. Plex the company has gone fully into adding all kinds of streaming services in order to make a buck. While you can remove these things from your menu, it is just annoying.
3. Plex doesn't always fix known issues. Over the years I've run across several issues in plex that after trying to troubleshoot find that it is a known issue Plex refuses to address. For example, I've recently had some issues with some videos dropping half or more of the frames while the audio is fine. Turns out, plex doesn't like something in the files metadata and this is the result. Plex is the only one that has the issue with the file. It plays fine locally with VLC and streams fine with other programs.
I was reluctant to switch from Emby to Plex for this same reason but it turns out you can run plex self-hosted without any account. I have Plex running on a server and streaming from the Plex app on an LG TV without requiring an account.
I'll warn you that Plex will do everything possible to get you to add an account. One update (several years back) locked me out of making any changes to my server until I created an account.
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.
I have primarily used Plex and pretty much everything you said is accurate for Plex as well. Limited transcoding based on the machine it is running on. As disc has become cheaper, I have pretty much stopped doing batch transcodes, which is great for the most part. But there are definitely negatives when you want to watch something offline, or remotely. Biggest pain point is subtitles though. Since they aren't ripped as text and then sent to a client, they have to be burned in to the video itself and transcoded on the fly. Which means losing out on 'forced' ones if it can't transcode fast enough.
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
I currently use and host both, plex while non free is more friendly to less advanced users and has native iOS and apple tv apps (which jellyfin does not (the jellyfin ios app is a webview and dosen't always behave well for me))
There are 3rd party apps for jellyfin on apple tv, but it's just not as smooth of an experience as plex.
I'm hoping that jellyfin will push plex to get better, as some of the most requested features for plex have gone unanswered for years, which is quite frustrating for software that is paid.
Have a look at Infuse, it works with Plex, Emby/Jellyfin, and possibly SMB. It’s one of the best and high quality apps I’ve encountered on the Apple TV, and one of the best video players period. For me it completely eliminates the need for transcoding, it plays everything.
There’s also a bare bones native Jellyfin app for tv/iOS called SwiftFin, but it’s currently only (publicly) available in TestFlight.
I had the same issue. Just bought a HDMI thumb drive Roku (powered by USB port) and install the Jellyfin app. Another benefit is Roku supports more apps like the NBA app.
Previously tried rooting my LG TV which worked but too many random issues like full restart of your TV puts the root in a bad state.
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.