I recently came across a video showing how to turn an old laptop into a home server. I had an old laptop lying around gathering dust, so I decided to give it a shot.
The video (check it out here), showed me how to set up Ubuntu Server and CasaOS on my laptop. If you're curious, here are my laptop's specs:
| Component | Name |
|---|---|
| CPU | Intel i3-7020U |
| iGPU | Intel HD Graphics 620 |
| RAM | 8GB DDR4 |
| Storage | 140GB 5400RPM SATA HDD (salvaged from an even older laptop) |
| Networking | Ethernet |
As you can see, this laptop isn't very good, but it can run a simple server environment well enough for it to be usable.
Accessing remotely
Unlike popular belief, it's pretty easy to access a machine running on you home WiFi from halfway across the world. There are many paid and free methods to do so, and I settled on Tailscale because of its sheer versatility. Tailscale is available on literally every single device I own: Apple TV, iOS, Android, Mac, Windows, Linux, you name it.
Tailscale requires the host device (in this case my home server) and the client (iPhone, iPad, etc) to be connected to the same Tailscale network. All this means is you need to set up Tailscale on your server and just download the app on your client device and log into your account to connect to your Tailscale network. After that, it's smooth sailing.
A Minecraft Server
After getting Docker (CasaOS) up and running, I decided to experiment with running a full-time Minecraft server. Using Crafty, I set up a simple 1.21.11 Paper server and made it accessible through the internet via playit.gg. After outreach and invitations, my server was consistently hitting 2-3 players online at any given moment.
I thought my machine wouldn't be able to handle it, but to my surprise, it ran flawlessly. Sure, loading new chunks would get a little slow when multiple players were online, but other than that the game logic did not slow down much. My CPU usage would hit a maximum of 80% when multiple users were generating chunks, but it usually stayed within the 20-50% threshold. The RAM usage was a different story. After the server had grown in size, even when the server had no players, the RAM usage stayed at a concerning 70% (around 5GB). When more players joined, it would hit 6-7GB of usage. I had disabled swap because it would not be feasible with a decade-old hard drive, so I had to make do with whatever physical memory I had. It was still fine, but I would've preferred if the RAM usage stayed a little lower, as the memory left didn't allow me to do much with the server while the Minecraft server was online.
In the end, the server was a success and was my first venture into hosting a Minecraft server for others (complete strangers infact). I was surprised with the performance I got with my not-so-good hardware.
An AI machine
Yes, you read that right. I tried to run a few LLMs on this bad boy, and it went better than I expected. The RAM was a major limitting factor and of course, running the models on the CPU did not give the best performance, but I was able to run Gemma 3 1B and some smaller Qwen models on it (one at a time). These models aren't the best, but I got usable generation speeds and it was kinda cool seeing models run on something this low-spec.
After experimenting for a few days, I decided not to torture my machine further because I already had an M4 Mac mini which could run these (and better) models much better.
Jellyfin server (where I'm at now)
Last week, I stumbled across Jellyfin and Plex and decided to set up Jellyfin on my server. I added a lot of movies (sourced legally) and TV Shows (again, sourced legally) and Jellyfin fetched all the metadata itself. It was super easy to set up and configure, and now I have a working media server from which I could stream content from anywhere in the world (using Tailscale).
Infuse — an iOS, iPadOS, macOS, and tvOS media client
Infuse is an app that lets you add your Jellyfin server as a library and use its own interface to watch content. The app's design is gorgeous and pure eye-candy. I find it's much better than the "native" Jellyfin client for Apple devices and is honestly a no-brainer if you're serious about streaming your own content from your Jellyfin server on an Apple device.
The only caveat is that most of its very cool features are locked behind a paywall, but I still find the free experience usable.
[not sponsored btw, I really love this app a lot]
While I admit I haven't done full justice to the "home lab" name with my server setup (mostly due to the sad nature of its specs), I hope this blog-post introduced you to the immense possibilities of using an old laptop or PC as a home server, and the fact that it really isn't as difficult as it sounds to set up. The things you can do with a good enough server setup are nearly endless, and I haven't even scratched the top of the possibilities yet.