Over the years, I’ve managed to build a reliable self-hosted arsenal that includes everything from productivity services and network tools to smart-home-centric utilities and wacky containerized apps.

But if I had to trace my home lab obsession back to anything, it’d probably be the Plex server I deployed more than eight years ago. What began as a convenience project has now evolved (or devolved, depending on how you see it) into my Jellyfin setup – one that’s not only armed with a bunch of cool plugins, but it also integrates with several other tools in my application stack.

👁 The Plex app on tvOS
6 important things I've learned after using Plex for years

Plex can't fix a messy media library on its own — proper organization is key.

I initially built a media server to manage my ever-growing library

My disorganized media collection was starting to drive me insane

Let’s backtrack a bit. My motivations for deploying a media server were pretty straightforward – I needed a centralized management interface for all the CDs, DVDs, and Blu-rays my family had collected for years. Before deploying Plex, I’d rip the media files from physical disks and keep them inside a labyrinth of folders. Navigating through this maze was a real pain, as I’d have to manually go through multiple folders just to find a specific video. I was a Windows user back then, so good old fzf was something I’d never even heard of.

Speaking of Linux, I also didn’t have a server back then, so I’d just keep everything on HDDs in my gaming PC. Needless to say, with all my Windows files, games, and ripped media, I was running out of space. And if I ever left my soon-to-be goblin cave for extended periods, I’d have to transfer a handful of shows and movies to a flash drive/SD card, or risk getting marooned at a relative’s place without anything to keep myself occupied. That’s when I ran into Plex, a service that ended all my media management woes.

Plex was my first self-hosted media server

I may not use it anymore, but it served me well as a beginner

Back in the day, Plex was the most common tool for organizing media files among tinkerers, and it was simple enough for me to use as a newcomer. Rather than randomly tossing ripped media files into folders and scrambling frantically while trying to find them later, all I had to do was add them to the right directory within Plex’s library. Once Plex had scanned the new files, it’d automatically add them to the collection. Since Plex can read metadata from videos, it’d pull the right thumbnail, ratings, summaries, and other parameters without forcing me to maintain a central spreadsheet for everything. Throw in the search filters, and I didn’t have to spend a few minutes tracking down a movie.

Since I’d set up Plex on a separate machine, I could finally use it to stream movies on any client device in my barebones home lab. Remote management was also pretty easy on Plex, though I was starting to grow tired of the platform, as I’d started to become aware of its enshittified services. I never needed GPU-aided transcoding in my early days, but the more I learned about it, the more useful it seemed. The Plex UI, too, had started to feel more pushy about streaming media from Plex’s servers. For a tool designed to help me organize and stream my own TV shows and movies, Plex’s premium plans and cloud-based services were starting to irk me, especially since I’d already begun my transition to FOSS utilities.

But I ended up switching to Jellyfin a while ago

I've also paired it with useful plugins

After scouring the web and running different media management tools, I finally decided to migrate my digital library to Jellyfin. Now, I won’t say that it’s better than Plex in every way. Jellyfin’s UI has had major improvements over the years, but Plex is more approachable for beginners. Plus, it doesn’t have native applications for a couple of platforms. But between its lack of paywalled services and extensive plugin support, Jellyfin is more than enough for organizing and streaming my ripped digital library. And that’s before you include all the plugins I’ve set up on my Jellyfin LXC.

The intro skipper plugin, for example, lets me skip lengthy opening and closing credits, and Jellystat keeps track of my movie-binging sessions. There’s also Meilisearch, which lets Jellyfin surface my queries with fuzzy searches, while Jellyfin Enhancements adds shortcuts, quick timestamps, and a neat pause menu design, though the plugin's lack of support for Android TV is a bit of a bummer.

Since I’m already knee-deep in the self-hosting ecosystem, I’ve combined Jellyfin with other FOSS services in my arsenal. The Jellyfin integration for Home Assistant not only lets me connect my media server to my smart home hub, but it also helps me design wacky contextual automations that rely on Jellyfin playback actions as triggers for the rest of my IoT gadgets. Unlike Plex, Jellyfin doesn’t natively support remote streams for devices outside my local network, but by combining it with my Tailscale subnet router, I can access my library from every device on my Tailnet.

Jellyfin
iOS compatible
Yes
Android compatible
Yes
Desktop compatible
Yes

Jellyfin is just one aspect of my media stack

So far, I’ve only talked about tools for organizing ripped videos. But if you stretch the definition of the word media to include ebooks, ROMs, images, and documents, I’ve got a bunch of other services I couldn’t live without. I can technically use Jellyfin for my music collection, but I rely on Navidrome to stream all the albums I’ve ripped over the years, especially since Navidrome finally added plugin support a few weeks ago.

An Immich instance is responsible for my photos, and it even pulls everything I capture on my smartphone into a centralized server running on my NAS. My ROM files, on the other hand, remain tucked away in a dataset that’s managed by RomM, while the Calibre-Web and Kavita duo cater to my reading needs. Finally, Paperless-ngx is the sole reason I haven’t gone insane while managing all the tax filings, product invoices, bills, and financial receipts I’ve accumulated over the years.