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

ItemDescription
💻 HardwareeME730 laptop (Intel i3 M 350, 4GB RAM)
🧊 CoolingCustom plastic enclosure for ventilation
🐧 OSUbuntu Server 24.04.2 LTS (lightweight, stable)
🌐 ConnectivityWired Ethernet + SSH
🔐 Remote AccessTailscale 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

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 and your-local-ip with your actual credentials (you can find the IP from ifconfig under inet).

  • If it is successful, show like below.

❗ Troubleshooting SSH

If SSH is not working, follow these steps:

  1. Check if SSH is installed:

     dpkg -l | grep openssh-server
    
  2. If not installed, install it:

     sudo apt install openssh-server
    
  3. Start and enable the SSH service:

     sudo systemctl start ssh
     sudo systemctl enable ssh
    
  4. 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!

4
Subscribe to my newsletter

Read articles from Sachindu Malshan directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sachindu Malshan
Sachindu Malshan