2024 and moving forward...

Photo by Pixabay

The Road So Far...

Well, 2024 has been exciting, but most of it has nothing to do with tech or this blog. That said, some stuff did happen. A lot of proxy services have been deprecated. Nitter and ProxiTok were no longer functional. Invidious got my instance IP blocked by YouTube (I'm noodling on a solution for this...), and since there are YouTube-based services I run, Invidious has been temporarily disabled. Wikiless was running from a local repository due to a disagreement with another repository's maintainers, and since I'm not interested in maintaining it, I have resigned to just not running the service. There's talks within our tiny private community about building a D&D 5e(cosystem) starting with 5e Tools, Foundry, and Wiki.js... Okay, how about a list with a touch more focus...

Long Live Jellyfin!

Due to reasons outlined in the last blog post, the Plex service has been deprecated, and I've requested my account and data be deleted. it was fun while it lasted, and I'll never forget their role in bringing me to where I am today. That said, I also cannot in good conscious ever recommend them again.

Jellyfin has not been a drop-in replacement though. Plex offered a convenient way to handle authentication without storing passwords, and media scrubbing and playback just worked for the most part. Up until the last release just a couple of weeks ago, neither me nor any of my users were able to playback anything in a browser; all playback had to be done using the official Jellyfin app... not a deal-breaker, but a bit of a learning curve. Quick Connect eases the burden of authentication without a centralized service that Plex uses, but that also takes a bit of instruction time for users who don't already know the feature is there. Users report a handful of other missing features that are inconvenient but not deal-breaking. Tautulli only supports Plex, so statistics are a bit more difficult to collect.

Jellyfin, however, has excelled in a lot of places! The recent update seems to correct a lot of playback errors users were experiencing that we couldn't explain including the previously-mentioned browser issues. Jellyfin also allows SSO via a plugin, which means that, with the assistance of another app like Authentik, I can offload password management to any other provider I choose. The greatest benefit to Jellyfin over Plex is that it's open-source which means the features gated behind PlexPass, the paid part of Plex, are just there in Jellyfin if they exist, and most do! I can manage the server from the mobile app, utilize hardware transcoding, and even offer LiveTV, and all of this without giving up my data or requiring users to give up their data.

Focus

Jellyfin and a D&D ecosystem have a couple of goals in common. First, they are both solving problems with as much self-hosting no external reliance as possible. Second, they both are what our little community (and perhaps a greater community) want. A lot of what I've done up until now was just play around with whatever is possible. Now, there's more focus around solving our problems instead of running a solution that solves a problem for someone out there just because it might solve someone's problem here. Granted, sometimes you need to see what can be done to know what to do, but now we're reigning that back in. Services that are just for fun are slated for the chopping block. Services that people actually ask for and/or engage with are taking priority, starting with Jellyfin, Ombi, 5e Tools, Wiki.js, and Pelican (formerly Pterodactyl).

The Road Ahead...

Well, the short version of this is that there's nothing really planned for the remainder of 2024 outside of discussion and software updates. In the last post I said that we might do hardware upgrades this year, but homelab engineers are not immune to the effects of inflation, so hardware upgrades all-around will just have to wait unless something critical (like the Jellyfin host) breaks. That doesn't stop us from refining and better defining what we want when the time comes.

Self-Hosting != No Cloud

Though the ultimate goal is to reduce reliance on external resources, some reliance is necessary. For instance, self-hosting becomes a bit useless without relying on a service provider for internet. With that in mind, a VPS is handy for utilizing a provider's DDoS protection and IP space as to not expose my home. It's also handy for services that only act as a proxy since there's no reason to choke that stuff with my lousy Spectrum internet connection. VPS prices are competitive enough that a large chunk of proxy services may move to a VPS. Also, a Wireguard service may also move to a (separate) VPS as to provide similar services when my lousy Spectrum internet connection is down, which happens often enough to make this a serious consideration.

Semper Operatur

With more focus on what users want, users want services that require storage directly or indirectly. Adding more storage is relatively easy; just add more drives. What happens when a drive goes bad? Well, today, there's ZFS which sacrifices some space (whole disks) to have the ability to recover... but what happens if an entire system goes bad? Well, today, one or multiple services would be completely down until that system or a replacement can be brought back online. Knock on wood, this hasn't happened yet in a way that could not be recovered in a matter of hours with no other cost than my time, but that won't last forever.

Enter Ceph, a service that's typically seen as overkill for a homelab. Ceph runs multiple components on multiple storage servers and constantly balances based on available disks and even available hosts. This way, a server can be taken out of service for maintenance or repair, and the "cluster" keeps humming along, which is 100% not possible with today's storage solution. I have no idea what it will take to get this going, but the goal is to eventually have Ceph or something similar running so that the physical hardware can be serviced.

Physical Infrastructure

I've saved this part for last, because it's the actual bulk of it all, and it's the part that's still very much up for debate. The newest physical host is a Ryzen 3700X. Everything else is at least 3 generations older or more. Nothing on the backbone of the network is faster than gigabit which interdependent services can easily saturate. TP-Link has been a disappointing replacement for Ubiquiti, having limited feature sets and causing problems when just trying to keep it up to date. All the servers are in desktop cases which take up an immense amount of space, are difficult to maintain when closely stacked together, and just don't look nice.

What's needed is a rackmount solution, which isn't that bad by itself (but everything adds up). The idea here is to eventually have 2 racks between 22U and 30U each, because my floors probably can't handle much more than that. The chassis will probably be the Sliger 2U or one of their 3U cases. Notice that, if I did nothing else but move 5 PC's to 5 Sliger cases, I'm already around $1000 invested? Me too, and that didn't include the cabinet. Of the 5 current hosts, only the Ryzen build will remain in the final-ish solution. One will be my current desktop (it's also a bit long in the tooth) and probably my wife's desktop too. The storage machines will need to be as close to the same hardware as possible to push towards Ceph, and there will be additional drives needed to actually expand the storage and allow for larger fault tolerances. This will not all happen next year and probably won't happen in the next 3 years, but it's the goal I'm hoping to start on next year and document here. This will include OpnSense on dedicated hardware to replace TP-Link stuff, a 10Gbps backbone between servers, and better network segmentation to better separate public traffic from local user traffic (it's separated today to an extent, but it could totally be done better). There's also power and battery-backup considerations that we've not even thought about, and no thought of what to do if anything goes wrong today...

TL;DR: We'll see what happens.

Previous Post