My first-ever laptop ended up in a drawer for years, collecting dust. That was until I realized I could repurpose it and give it a new life.
I began exploring all the practical ways to utilize an old laptop. I initially planned to turn mine into a retro gaming machine or a Chromebook. However, issues like a faulty display cable—requiring the lid to be open at a specific angle—and multiple non-functional keys on the keyboard meant it wasn’t well-suited to either role. Additionally, I couldn’t get the laptop completely fixed either, as it’s hard to find compatible parts on the market, let alone at an affordable price.
Then I set upon the only way I could put my old, broken laptop to good use: as a home server.
What is a home server? And what do I use my home server for?
A home server is essentially a centralized hub on your home network that offers access to various services, both locally and remotely (with proper configuration).
For instance, a home server is capable of functioning as a media server, where you can store all your media files (photos, videos, music, and documents) and serve them to other devices. Similarly, you can use it to take backups, run Pi-hole to block ads and enhance your network, self-host programs, or test and host personal projects or websites, among other things.
It’s been a couple of months since I turned my laptop into a home server, and I’ve discovered several interesting ways to use it during this time.
Back up photos and videos
I’ve accumulated a huge library of photos and videos I’ve shot over the years, dating back to 2010. While using cloud services, such as Google Photos and iCloud, is one way to store them and maintain access across all devices, I prefer having ownership, especially for personal photos and videos. Hence, I stick to a self-hosted service. I simply don’t trust cloud photo storage apps.
My choice for this is Immich. It’s an easy-to-use solution for backing up, organizing, and managing photos and videos on your own hardware. The best part? There’s no storage limit. You’re only limited by the storage on your HDD or SSD, while your media is backed up in its original, uncompressed format. You can also host Immich on a Raspberry Pi.
Host media and other useful files
Alongside storing year-old memories, I also like hoarding media (TV shows, movies, and hi-res music) I purchased or downloaded years ago. Jellyfin is a free media streaming tool that allows me to turn my home server into a media streaming service accessible to anyone in my home, enabling them to watch TV shows and movies, or stream music. You can also create a media server with Plex.
I’ve also set up Samba and Nextcloud on my home server. This enables me to put all the important files and documents my family and I need on the server and access them easily when needed. Things like ISO files, software archives, digital books, and invoices and warranties are some of the things I keep on Nextcloud for cross-platform access.
Block ads and trackers with Pi-hole
Pi-hole is a network-wide ad-blocker. It’s commonly thought of as a DNS sinkhole that filters requests for domains that serve ads or track activity from all devices on the network. Since it runs at the network level, it can block ads not only in web browsers but also in apps on your smart TV or mobile phone.
I’ve set up Pi-hole on my home server to block trackers and pesky ads from specific websites. Not only does this help me browse such websites in peace, but it also improves page-loading times, since now there are (almost) no ads or trackers to load.
With Pi-hole, you get a web-based admin dashboard to monitor your network. From here, you can customize blocklists and whitelists, monitor DNS queries, view real-time statistics, and look at other network activity with detailed logs.
Self-host programs
I’ve recently delved into the world of self-hosting, and my home server acts as a hub for all the fun apps I want to try out. Immich, Nextcloud, Jellyfin, and Pi-hole are four apps I’ve already talked about so far.
But that’s just the start: I also have Home Assistant to control and automate smart devices at home, Proxmox to create virtual machines for testing different operating systems, Homebox to manage home inventory, and Glance to aggregate my feeds from various sources on the internet. I’m also experimenting with running AI chatbots on my home server for a more private AI experience.
Build, test, and host personal projects
After a long break, I’m getting back to coding and building personal projects I’ve long wanted to. My home server acts as a central hub, where I can set up dedicated environments for different projects I’m working on to avoid conflicts between software versions. Similarly, it’s also great for local testing, allowing me to test my web projects in a real-world environment, which saves the cost of paying for cloud hosting services.
You can turn your old or unused laptop into a home server, too
If you’re looking for a way to use your old laptop, you can turn it into a home server, too.
Pick an operating system for your home server
Choosing the right operating system is a critical step in turning your laptop into a home server. It directly affects the performance you can churn out of your device, especially if it’s an older one. You want an operating system that offers broad application support, is easy to use, has good community support, and gets regular updates.
If you’re unsure which operating system to pick, Ubuntu Server is a solid option. It’s a popular choice for most people planning to set up a general-purpose server, as it can handle a wide range of home server roles. I use Ubuntu Server on my old laptop, and it serves me pretty well.
Install the operating system on your laptop
Once you’ve picked an operating system, create a bootable USB using balenaEtcher.
Plug the bootable drive into your laptop, and it should automatically boot into it. If it doesn’t, power on the laptop and quickly press F2, F10, F12, Esc, Delete, or the key shown on the screen to bring up the boot menu. Then, set the USB drive as the primary boot source. Your laptop will now restart and boot from the USB drive.
After that, follow the on-screen instructions to install the operating system on your laptop. You can consider a minimal installation if you want to save resources. If you’re installing Ubuntu Server, the setup will prompt you to install OpenSSH along with a few other optional features. Be sure to install it for SSH access to your home server right from the start.
Make sure to update all the repositories and packages on your system by opening the terminal and running sudo apt update && sudo apt upgrade -y.
Set up SSH for headless access
With the operating system installed, the next important step is to set up SSH (Secure Shell) on the home server. You’d only need to do this if you weren’t prompted to install SSH during the setup, or if you skipped it accidentally.
SSH enables headless access to the server, meaning you don’t need a physical keyboard or mouse attached to it to use it. Instead, you can access the server via command line or terminal on any device and access and manage files, install programs, monitor system resources and status, and execute a range of commands on it, as if you’re working on the server itself. All your interactions happen over an encrypted channel.
Install essential utilities
Similar to SSH, there are a few essential programs you must install on your home server. If you’re running Ubuntu Server, you can install htop to view and manage system processes, Glances to monitor system resources (CPU, memory, disk, and sensors), and lm-sensors to check system temperature.
Since you’ll be running your home server 24/7, regularly checking these metrics will give you a good idea about the system. That way, you can, for instance, stop the processes that are consuming excessive resources to prevent throttling or move the laptop to a place with better ventilation (if it’s overheating) to improve airflow and keep it cool.
Set up a charging limit to avoid overcharging the battery
Ideally, you’d want your home server running 24/7. However, this isn’t suitable for laptops, as this means you’d need to keep the laptop plugged in to power all the time. Since the laptop has a battery inside, this isn’t ideal for it, as overcharging the battery can lead to overheating and performance throttling over time.
One way to avoid this is to remove the battery from your laptop and use it directly plugged in to power. Alternatively, an easier approach is to set up a charging limit. Doing this varies from model to model. For instance, some laptop manufacturers allow you to set a charging limit via the BIOS. On the other hand, in the case of other laptops, such as mine, you need to instruct the firmware to stop charging once the battery reaches a certain percentage. In some cases, you can even set a limit to start charging in addition to the stop threshold.
A quick Google search using your laptop’s make and model can help you find instructions on how to set a charging limit.
Set up your laptop to run even with the lid closed
Alongside setting up a charging limit, you also need to configure your laptop to function properly with the lid closed. This is important because you don’t want the laptop’s display on all the time, as it can draw noticeable power. If you don’t configure this and close the lid, your laptop will suspend or hibernate and, in turn, disrupt running services.
Again, just like setting up a charging limit, the process for configuring the lid-close behavior varies from one manufacturer and model to another. On most devices, you can do this by editing the longind.conf file. In the terminal, type sudo nano /etc/systemd/logind.conf and find and uncomment the following line: HandleLidSwitch=ignore.
Alternatively, if it isn’t possible on your device because of hardware limitations, you can temporarily turn off the display and turn it back on when needed. In Ubuntu Server, you can do this using vbetool, with commands like sudo vbetool dpms off and sudo vbetool dpms on, respectively.
It takes effort, but the benefits make it worthwhile
Turning an old, unused laptop into a home server is a great way to put it to good use. Not only does this give the laptop a purpose, but it’s also an easy and cost-effective way to explore the world of centralized home automation, self-hosting, data centralization, media streaming, or learning networking and server management skills.
Sure, setting up a home server may seem challenging, but it’s fairly rewarding once it becomes part of your network. I’ve barely scratched the surface here with what you can do with a home server, and there are several useful applications that you can explore once you get it running on your laptop.