Last week, I mentioned that we at home use Jellyfin. Jellyfin is fantastic, open source, keeps your privacy, but nothing, not even Jellyfin, is perfect. I’ve heard bad things about it and we do have our complaints, such as its docker container using 4GB of RAM even when nothing is playing and while casting it ignores the chosen audio language, but it does strike a good balance between functionality and privacy.
The great thing about open source is that you can fix everything yourself, if you have the time.
Disuse
Jellyfin’s container runs on our home server, a Debian LTS machine that runs a few other things, like a Matrix server [with Signal and WhatsApp bridges](https://thefoggiest.dev/2025/11…
Last week, I mentioned that we at home use Jellyfin. Jellyfin is fantastic, open source, keeps your privacy, but nothing, not even Jellyfin, is perfect. I’ve heard bad things about it and we do have our complaints, such as its docker container using 4GB of RAM even when nothing is playing and while casting it ignores the chosen audio language, but it does strike a good balance between functionality and privacy.
The great thing about open source is that you can fix everything yourself, if you have the time.
Disuse
Jellyfin’s container runs on our home server, a Debian LTS machine that runs a few other things, like a Matrix server with Signal and WhatsApp bridges, WireGuard and MediaWiki. That last one is what I’ve been using since June 2013, among other things, to make notes about how I set up the server and the software running on it.
I dedicate a page with configuration and maintenance logs for each container or other piece of software, and when I stop using it, I don’t delete that page. It’s mostly text, so that’s not expensive, and to make sure it goes out of my way, I have a little procedure for those pages:
- At the top of the page, place a {{ Warning|Removed due to/Replaced by [[Application]] by date }}.
- Replace all categories with [[Category:Disuse]] so that the page no longer appears in category searches
- Remove all occurrences from Template:ToDo so that they no longer appear when enumerating the tasks and suggestions
I’ve been self-hosting since before I started this blog, but I kept my notes in a file hierarchy then, which I integrated into the wiki in 2013. But because the wiki goes back thirteen years now, the [[Application]] link in the first of the three points above gets me a complete history of what I’ve been using, when I stopped using it, why, and what replaced it. And it appears, we’ve been hopping media servers for years before we landed on Jellyfin.
Solutions
Plex is what we started with, around 2010, when we bought our first smart TV, from LG. It had a Plex app, so we looked up what Plex was and installed it. It worked brilliantly, and we used it for years, until we suddenly had to create an account to keep using the server software.
That didn’t sit well with us, so we looked around for open source solutions, and in December 2015 we landed on Mediatomb. Mediatomb implemented the UPnP MediaServer v1.0 so we could use the DLNA app on our TV and on other devices.
I know DLNA is a very simple protocol that is far from secure, but it’s very convenient.
Closing in
Mediatomb did not have the transcoding facilities that Plex had, so we landed on BubbleUPnP Server in May 2017. I have no collection of that, my notes are very brief, and they don’t mention why we moved to Serviio in September that same year, but according to their webpage, Serviio talks to LG TVs, which must have meant a lot for us.
Never judge software by its screenshots. Serviio appeared very good with video, not so with audio, so for the third time in the same year, we switched, this time to then free and open source Emby, which did both audio and video well, had many plug-ins and did DLNA. In 2018, Emby decided to publish all their future releases as close source, but, according to my notes, it took me until August 2021, when its DLNA just stopped functioning, to switch to Jellyfin, an Emby fork that is fully open source and has functioning DLNA.
The great thing about closed source is that if something inexplicably stops working, you can rant and complain as much you want without feeling any responsibility.
Jellyfin can transcode but not over DLNA, so when I rip a disc I use MPEG4 and MP3. Our current TV is growing a bit old, but given a high enough bitrate, MPEG4 is fine, and Jellyfin will cast 1080p without problem. From a docker container on my home server that is. The framerates appeared a bit much for that poor Raspberry Pi 4 that I ran it on before.