MoneySnakeFind the margin.

BUILD PROJECT · HOME LAB

How to Build a Cheap Home Lab

Turn a supported used mini PC or laptop into a small, useful place to learn Linux and host services on your local network.

What you’ll build A local Linux host for small servicesDifficulty Beginner

What a home lab is

A home lab is a computer and network you control for learning, testing and self-hosting. It can run a web server, Docker, Pi-hole, Home Assistant or a disposable virtual machine without putting experiments on your everyday laptop.

Start with one base machine. MoneySnake’s Build something path recommends supported computers; the budget is for the machine itself, not RAM, storage, backup media or electricity.

What you need—and do not need

  • A supported mini PC, small desktop or laptop with a known CPU family, working power supply, storage and network connection.
  • 8GB RAM is a sensible lightweight starting point; more helps when services share the host. Confirm the listing rather than inferring it.
  • An SSD makes updates and small databases more pleasant. Keep important data on a separate backup.
  • You do not need a server rack, RAID, 10Gb networking or a dedicated GPU for the projects in this guide.

Mini PC, laptop or desktop?

A mini PC is compact and usually easy to leave running. A laptop includes a screen, battery and charger, which can help with recovery but adds battery and thermal checks. A small desktop may offer more space, but do not assume upgradeability or extra drive bays from the case name. Check each listing.

Install Ubuntu or Debian

Assume a supported 64-bit Ubuntu LTS or Debian installation. Back up anything on the target disk first; installation can erase it. Download the installer from the project’s official site, write it to a USB drive, install with a planned hostname, then update:

sudo apt update
sudo apt full-upgrade
sudo reboot

Create a normal user during installation. Prefer SSH keys for administration and keep the first experiments on the trusted LAN.

Networking and first projects

Reserve the host’s address in your router so local services have a predictable destination. SSH from another machine:

ssh your-user@192.0.2.20

Replace the example address with the reservation you actually made. Begin with one service, write down its port and configuration location, and try Docker, Pi-hole or Home Assistant. Proxmox is a useful second path when you specifically want virtual machines or containers.

Security and backups

  • Do not expose SSH, Proxmox, Docker or service admin panels directly to the public internet.
  • Use unique passwords, updates and a firewall that permits only the local network where possible.
  • Back up configuration, secrets and irreplaceable data to another device. A second disk inside the same machine is not enough on its own.
  • For Pi-hole, keep a recovery DNS path. For every service, practise restoring a small sample before trusting it.

Common mistakes and troubleshooting

If a service is unreachable, check the host is powered on, its address has not changed, the service is listening on the expected port and the firewall permits the local network. Check logs before changing several things at once. If the machine will not boot, use the installer USB and a known-good power supply only after checking the listing’s hardware and cables.

Simple roadmap

  1. Install Linux and learn SSH.
  2. Run one Docker service or Pi-hole locally.
  3. Add Home Assistant or a small file share.
  4. Document ports, users and backups.
  5. Only then consider Proxmox and more complex networking.

Make the host dependable

Prefer wired Ethernet for an always-on service when practical. In the router, create a DHCP reservation for the host’s MAC address; this gives it a stable local address without manually guessing a static configuration. Check the address with ip address and the route with ip route. Keep the router’s DNS and gateway notes somewhere you can reach if the host is down.

Ubuntu/Debian first boot checklist

hostnamectl
ip address
ip route
sudo systemctl status ssh

If SSH is not installed, install the distribution’s OpenSSH server package, allow it only from the trusted LAN, and use a normal account. Test from a second machine before closing the local console. Do not expose the admin port directly to the internet.

Choose one service at a time

Pi-hole is a useful first always-on service; Docker is a good next lesson because it makes ports, volumes and updates visible. Home Assistant adds device integrations, while Proxmox adds a virtualisation layer and therefore more recovery work. Monitoring can start with checking disk space, service status and backup failures. Local DNS names are convenient, but document them instead of relying on memory.

Backups and remote access

Back up service configuration and irreplaceable data to another device. A second disk in the same small computer is not enough if the machine is stolen or fails. For access away from home, use a maintained private-network or relay approach; do not publish SSH, Docker, Proxmox or service dashboards directly. Before changing networking, keep a local console/recovery route.

What next?

On day one, install Linux and SSH. Next, run Pi-hole; then learn Docker. Later, try Home Assistant, monitoring or Proxmox. Keep the backup guide beside every experiment.

Build a home-lab machine Next: Docker at home · Plan backups