Credit: Jordan Gloor / How-To Geek
Published 1 minute ago
Jordan started writing technology guides in 2020, but his technology and writing experience extends far and wide. As a kid, he learned object scripting through the MS-DOS game engine ZZT, and he later taught himself the basics of Python programming. He’s repaired his own smartphones, hosted home cloud servers, and revived old computers with Linux.
Prior to getting started at How-To Geek, Jordan published articles for MakeUseOf about Linux commands, free and open-source software, and online privacy. Beyond technology, he’s also professionally written on agriculture business for Ozarks Farm & Neighbor, edited proposals for non-profits…
Credit: Jordan Gloor / How-To Geek
Published 1 minute ago
Jordan started writing technology guides in 2020, but his technology and writing experience extends far and wide. As a kid, he learned object scripting through the MS-DOS game engine ZZT, and he later taught himself the basics of Python programming. He’s repaired his own smartphones, hosted home cloud servers, and revived old computers with Linux.
Prior to getting started at How-To Geek, Jordan published articles for MakeUseOf about Linux commands, free and open-source software, and online privacy. Beyond technology, he’s also professionally written on agriculture business for Ozarks Farm & Neighbor, edited proposals for non-profits, and presented at a writer’s conference on superheroes and culture.
Jordan earned a bachelor of arts in English in 2016, and he’s coached college students on writing effectively and utilizing education technology. He also wrote and edited product descriptions for an e-commerce store for four years.
These days you’ll find Jordan hosting movie streaming simulcasts with his friends over Discord, building VR-ready gaming PCs, or reviewing the latest Wi-Fi routers. You can follow him on Mastodon.
My homelab is probably my favorite hobby to spend time on, but a year ago, I made a mistake in my media server setup. Recently, I fixed the problem by putting a tiny computer to use.
HTG Wrapped 2025: 24 days of tech
24 days of our favorite hardware, gadgets, and tech
I was giving my NAS too much responsibility
When I bought my first NAS a couple of years ago, I decided I wanted to use it to store and watch digital copies of my physical media collection. This was and still is a good idea, but I made a common mistake in my setup that ended up costing me: running my media server (in this case, Jellyfin) directly on the NAS.
Technically, there may be nothing wrong with a setup like that. If there’s only going to be one or maybe two people streaming your media at a time, the average NAS can usually handle that just fine.
The problems started though when multiple devices would be streaming at the same time. Sometimes the media being streamed required transcoding, which can be a resource-intensive task, and can result in server hangs.
Simply put, most pre-built NASes, like the ones I own, are not designed to handle heavy operational tasks like transcoding video, especially 4K, to multiple devices at once. The good news is that if you’re willing to migrate to a new server, you can simply offload the work from your NAS to a better device.
A mini PC boosted my server’s performance
Credit: Jordan Gloor / How-To Geek
To make my media server more reliable, I dedicated a mini PC to running the server. I’d earlier bought a Geekom mini PC and turned it into a Steam Machine-like gaming console for my living room. I didn’t end up actually gaming on it much, though, so I decided to repurpose the tiny computer to give my NAS an assist.
My first move was overwriting the Bazzite operating system with a new, server-ready Linux distribution. There are many you can choose from out there, and I tried a few, including TrueNAS and Fedora Server, before landing on Debian Linux.
I chose it because of Debian’s flexibility and reputation for stability, plus the fact that the Jellyfin manual has dedicated instructions and repositories for starting a server on Debian and Ubuntu. I’m also just a lot more familiar with it than the other options.
Related
With Debian installed, setting up Jellyfin was as simple as SSHing into the device and running a few commands per the aforementioned instructions. I even found a script on GitHub for migrating user data from my old Jellyfin server. That not only made setting up user accounts on the new server easier but also preserved much of their watch history.
I had to change these settings on my NAS
Credit: Jordan Gloor / How-To Geek
To make sure my new Jellyfin server had access to my media files, I had to start a file sharing service that allowed remote access to the media folder on my NAS. With file sharing enabled, I could allow devices—namely my mini PC—to stream media from it.
You may worry, like I did at first, that a remote connection will result in poor media playback. In reality, that’s not a concern so long as you choose the right file sharing protocol and have a reliable network connection between the NAS and the server location. Ideally, the connection is wired into the local network with a quality Ethernet cable.
Now, most NAS devices give you several protocols for sharing files, including SMB, NFS, FTP, and more. Which one is best for you can vary, but the one I chose for my setup was NFS. Standing for Network File Share, I chose NFS in particular because it’s natively accessible to Linux devices and is fast while being good at handling large files, such as my media collection.
NFS does take a bit of configuration. For one thing, you don’t want to allow just anyone to access your files through NFS. So, after enabling NFS, I allowed just one IP address to access it, that of my new Jellyfin server’s lcoation. On that mini PC, I used terminal commands to mount the NFS, then gave my Jellyfin server access to it.
I also made sure in the NFS settings that Jellyfin’s address had the ability to both read and write on the NFS. That way, when I add metadata to the media, the server can save that metadata to the media folder.
One more important bit of housekeeping: I often reboot the mini PC running my Jellyfin server, and I didn’t want to have to manually mount the NFS share at every startup. So, I edited Debian’s fstab file so that it would automatically mount the NFS share at boot time.
192.168.1.121:/volume1/Media /mnt/my-media nfs _netdev 0 0
The IP address at the start is the location of the NFS share, and the path that follows it is the path on the NAS to the media folder. The rest of the info indicates where and how I want the NFS share mounted. Notablly, the _netdev option tells my Linux system that it should wait until a network connection has been established, preventing mount failures.
Make sure you get the right hardware
I have one more piece of advice if you’re going to follow in my footsteps: make sure you get a PC with good hardware for handling media streaming. A decent Nvidia or Intel GPU is ideal for transcoding. I didn’t have a free discrete GPU laying around, though, but my mini PC has the next best thing: an Intel processor with Quick Sync capabilities.
You can learn more by reading our guide to choosing a mini PC for Plex (which applies similarly to Jellyfin), but the important thing to understand is that not all CPUs are created equal, especially when it comes to transcoding. While I appreciate certain aspects of AMD, its processors just doesn’t compare to Intel’s ability to transcode media. Do yourself a favor and confirm the chip in your potential server is one of Intel’s Quick Sync-enabled chips.
Beelink S13 PRO
Storage 500GB
CPU Celeron FCBGA1264 3.6GHz
The Beelink Mini S13 Pro desktop PC is a ultra-compact computer powered by the Intel N150 processor. Shipping with 16GB of DDR4 RAM and a 500GB SSD, this micro desktop is perfect for a variety of workloads. From running simple server programs to replacing your old PC, the Beelink S13 Pro is up to the task.
Memory 16 GB DDR4
Operating System Windows 11 Home
Graphics Integrated Intel Graphics 24EUs 1000MHz
Dimension 4.52 x 4 x 1.54 inches
USB Ports 4