How to Set Up a Home-Lab: Upgrade Your Old Laptop to a Cloud Server


Ever wanted to get hands-on DevOps experience without spending a fortune? I turned my old laptop into a fully functional home server that I can access from anywhere — and you can too! Here's how I did it, step by step.
Why Build a Home-lab?
Learn Linux system administration and networking
Gain practical DevOps skills (beyond theory!)
Host and experiment with personal projects
Control your environment, privately and securely
What I Used
Item | Description |
💻 Hardware | eME730 laptop (Intel i3 M 350, 4GB RAM) |
🧊 Cooling | Custom plastic enclosure for ventilation |
🐧 OS | Ubuntu Server 24.04.2 LTS (lightweight, stable) |
🌐 Connectivity | Wired Ethernet + SSH |
🔐 Remote Access | Tailscale VPN |
Step-by-Step Setup
1. Clean the Old Laptop
Removed unnecessary parts like the broken display
Replaced thermal paste and ensured good airflow
Built a custom enclosure for better cooling (Here I used old plastic box)
2. Install Ubuntu Server
Download Ubuntu Server 24.04.2 : https://ubuntu.com/download/server
Create a bootable USB with Balena Etcher or Rufus
Rufus download Link: https://rufus.ie/en/
Balena Etcher download Link: https://etcher.balena.io/
Install using minimal setup (no GUI) to save resources
%[https://www.youtube.com/watch?v=K2m52F0S2w8]
3. Network Configuration & SSH Setup
Connect the laptop to your router via Ethernet for a stable connection.
Install basic networking tools:
sudo apt install net-tools
Use
ifconfig
to check your local IP address:ifconfig
✅ Verify SSH Access
Try accessing your server from another device:
ssh username@your-local-ip
Replace
username
andyour-local-ip
with your actual credentials (you can find the IP fromifconfig
underinet
).If it is successful, show like below.
❗ Troubleshooting SSH
If SSH is not working, follow these steps:
Check if SSH is installed:
dpkg -l | grep openssh-server
If not installed, install it:
sudo apt install openssh-server
Start and enable the SSH service:
sudo systemctl start ssh sudo systemctl enable ssh
Check SSH status:
sudo systemctl status ssh
🔒 Tip: Allow SSH in your firewall (if UFW is enabled):
sudo ufw allow ssh
Absolutely! Here's the updated Point 4 and 5 in markdown format, with the additional notes on remote access, account authentication, and accessing from other devices:
4. Set Up Remote Access with Tailscale
Install Tailscale on the server machine (a simple, secure VPN for remote access):
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up
Sign in using your Tailscale account to register the server : https://tailscale.com/
Important:
When setting up, use the same Tailscale account across:Your server (homelab laptop)
Any other device (e.g., personal laptop, phone) you use to access it
✅ Tailscale Tip:
If the setup is correct, you will see a “Connected” status with a green dot next to your device in the Tailscale dashboard when it’s online.
After setup, access your homelab from anywhere:
ssh username@your-tailscale-ip
Find the Tailscale IP by running:
tailscale ip -4
5. Basic Server Configuration & Security
Update the system:
sudo apt update && sudo apt upgrade
Install essential tools:
sudo apt install htop git ufw fail2ban
Set up firewall with UFW:
sudo ufw allow OpenSSH sudo ufw enable
Optional but recommended: Enable fail2ban to protect against brute-force attacks:
sudo systemctl enable fail2ban sudo systemctl start fail2ban
💬 Got a Better Way?
If you’ve set up your own home-lab differently or have suggestions to improve this setup, I’d love to hear from you!
💡 Share your thoughts:
Did you use another remote access method like OpenVPN, or WireGuard?
Have tips to optimize performance on low-spec hardware?
Got questions or need help with a similar setup?
👇 Drop a comment below - let’s learn from each other!
Subscribe to my newsletter
Read articles from Sachindu Malshan directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
