How I Turned My Old Laptop into a Home Server
How I Turned My Old Laptop into a Home Server
Not long ago, I upgraded to a new laptop and had to decide what to do with my old HP EliteBook. Rather than let it collect dust on a shelf, I decided to give it a new life as a home server.
Getting Started
After backing up all my data to the new laptop, I installed Ubuntu Server on the EliteBook. I went with Ubuntu Server because it's lightweight and headless, making it well suited for a machine that would run quietly in the background without a monitor or keyboard attached.
I also spent some time in the BIOS tuning a few settings:
- Optimized power configuration for better battery health
- Enabled automatic power-on, so the server boots back up on its own after a power outage, without needing me to physically press the power button
For networking, the server connects directly to my home router via a LAN cable, giving it a stable, low-latency connection.
Secure Remote Access with Tailscale
To manage the server remotely, I installed Tailscale and added the machine to my personal Tailscale network. This gives me a few key benefits:
- Easy SSH access from any of my devices, wherever I am
- No need to open or expose any server ports directly to the internet
- Only devices already on my Tailscale network can reach the server via SSH, which keeps things secure by default
As a bonus, this setup also simplified my CI/CD workflow. GitHub Actions runners can now SSH into the home server and handle deployments directly, without any public-facing infrastructure in between.
Self-Hosting with Docker and Cloudflare Tunnel
All of this was driven by a desire to run a few self-hosted projects that don't require enterprise-grade high availability — things like my own personal spending tracker. For these, I run Docker containers on the server and expose select ones to the internet.
To do that safely, I use Cloudflare Tunnel to expose the relevant containers via a public URL. This approach comes with the added benefit of Cloudflare's Web Application Firewall (WAF), DDoS protection, and CDN, all without opening a single port on my router.
What's Running on the Server
Here's a quick rundown of the projects currently living on my home server in Docker containers:
| Project | Purpose |
|---|---|
| Pi-hole | Network-wide ad and tracker blocking |
| Spending Tracker | Three containers powering both the Android app and the web interface |
| MySQL | Separate Prod and UAT instances for running Spring Boot test cases |
| Windows | A VM for running native Windows applications |
| Dockge | A UI for managing and monitoring the other containers |
Final Thoughts
What started as an attempt to avoid throwing away a perfectly good laptop turned into a genuinely useful piece of home infrastructure. Between Tailscale for secure access and Cloudflare Tunnel for safely exposing services, I've been able to build a setup that's both convenient and reasonably secure, all without spending a cent on new hardware.