As often as not, the PC or laptop that is headed for the recycling center can easily be repurposed to do something in your homelab, especially if you’re careful about the job you give it.
I decided to turn an old laptop I found around into a free, self-hosted media server using Jellyfin that will be capable of hosting movies, TV, gaming clips, music, and more—all without a subscription or license fee.
No subscription needed, and you can run it on almost anything
Jellyfin is open-source software that organizes your local media library and streams it to almost any device, be that a PC with a browser window, a smart TV, or your phone. Your media stays on your own hardware, and no one can monetize your viewing habits.
The main hardware consideration for a Jellyfin server is transcoding. Transcoding allows you to convert one video format to another on the fly. It is helpful when you’re streaming media—like a 4K UHD video—to a client that doesn’t support it. Rather than return an error and streaming nothing, your Jellyfin server changes the video into something the client can play. Unfortunately, transcoding can be resource-intensive and is often a problem for older or low-power CPUs.
Why Hardware Transcoding Is Important on a NAS
Should you buy a NAS with hardware transcoding? Here’s why—and when—it’s important.
You should plan to use direct play whenever possible, which is what happens when the Jellyfin server just sends the stream to the playback client (like your TV) without changing it in any way.
Besides the transcoding considerations, a laptop has a few distinct advantages. The battery acts as an uninterruptible power supply, it is small and portable, and it has a built-in keyboard and screen, which makes troubleshooting easier if something goes wrong. Why Jellyfin over the alternatives?
Unlike Plex or Emby, Jellyfin is completely free. You don’t have to worry about a premium tier that restricts what should be core features behind a paywall.
It also has a very large community, which has been helpful on the few occasions where I ran into a problem and needed to dig for a solution.
Prepping the laptop is key
Start from a clean slate
Before I installed anything, I needed to prep the machine, which always begins with a complete wipe of all the storage. Next, I had to settle on my hardware arrangement. After double-checking the laptop’s specs, I settled on replacing the internal hard drive with a small SSD to store the operating system and Jellyfin. The mechanical drive—which is perfectly fine—will be attached to the outside using a small enclosure eventually. For now, it is just attached using a basic USB to SATA adapter.
- Storage Capacity
-
8TB
- Cache
-
Up to 256MB
A great CMR hard drive for extra storage or backup.
I had to choose an operating system. Jellyfin has servers for most operating systems, but it is hard to beat the long-term stability of Linux, so I opted for Ubuntu server. Debian server would also be a good choice if you need something that is smaller than Ubuntu.
Additionally, I configured the laptop to stay on while the screen is closed. You might have a BIOS (or UEFI) setting for that. If you don’t, you’ll probably be able to change it by tweaking the following file on Linux:
/etc/systemd/logind.conf
Finally, make sure the laptop’s vents aren’t blocked, and it is placed somewhere with good airflow. If you do wind up transcoding multiple video streams, your laptop will need to be able to cool itself.
Installing and configuring Jellyfin
Getting the server running and your library organized
You can install Jellyfin via the official package for your OS or run it in a Docker container if you prefer a more isolated setup. I usually stay clear of Docker unless it is absolutely necessary.
Once the server is running, the first-run setup will walk you through creating an admin account and guide you through the process of selecting your media folders.
Whatever your media collection looks like, I’d strongly recommend keeping things tidy. Jellyfin leans on your folders to help organize itself, which means that dumping a random mix of MP4s into a single folder is going to turn into a mess. Try to keep movies, shows, music, or whatever else you’re storing neatly sorted into their old folders.
Once the library is set, you can add accounts for other members, adjust their permissions. Make sure to take a glance at the plugins, too.
Streaming your library
Once the server is live, the only other thing to do is install Jellyfin on the playback devices. Google TV has a Jellyfin app that works quite well, and the Android application hasn’t given me any trouble either.
I strongly recommend keeping everything on the local area network (LAN) first. You can configure remote access if you want, but opening your home network to the internet inherently creates security risks that probably aren’t worth it. If you absolutely must access your media away from home, I’d recommend setting up a WireGuard server on your network rather than messing with a reverse proxy. It is simpler, less error-prone, and extremely secure.
Older hardware makes for a great homelab
By repurposing hardware that was headed for the trash, you can build a private streaming service that costs nothing to maintain. While there are limits to how many people can watch at once or what formats the CPU can handle, those trade-offs are small compared to the benefit of owning your media. Next time you’re about to chuck an old device (or see one abandoned), consider how it could be repurposed into something cool. Any old unwanted laptop can be a streaming server, but it can also be a Spotify replacement, a firewall, a network-wide adblocker, a game server, and countless other things.
It can easily become one of the most useful devices that you own.


