Guide

How to set up a homelab: hardware, software and remote access

A homelab is a computer (or a few) at home where you run your own servers: to learn, to host things for your household, or to try work tools without breaking anything at work. The usual setup is one always-on machine with a hypervisor, a handful of VMs and containers on it, backups to a second disk, and a safe way to reach it all when you're away.

Here's how to set one up without overbuying, in the order that saves you rework.

  • Start with one machine
  • A hypervisor or Docker
  • Reach it without open ports

Updated · Works with Proxmox VE, ESXi, Hyper-V, Docker and Raspberry Pi

1. Decide what it's for

Write down two or three things you want it to do first. It decides everything else: a media server and file share needs disks; a lab for certifications needs memory for VMs; home automation and network-wide ad blocking run on almost anything. Start there and grow it; most homelabs that start big end up half switched off.

2. Pick the hardware

  • What you already have. An old desktop or laptop is a fine first homelab. A laptop even has its own battery for short power cuts.
  • A small mini PC. Quiet, small and usually frugal with power, which matters for something that runs all day.
  • A Raspberry Pi. Good for light services that run all the time. See Raspberry Pi remote access.
  • A used workstation or server. More memory slots and disk bays, and often a management controller for out-of-band access (see what IPMI is), but louder and hungrier. Rack servers are rarely the right first step.

Whatever you choose: memory is what VMs run out of first, an SSD makes everything feel faster, and a network cable to the router beats Wi-Fi for a server. Measure what it draws with a plug-in power meter before you leave it on for a year.

3. Choose the software layer

  • A hypervisor runs several VMs and containers on one machine, each its own little server, with snapshots before you try something risky. Proxmox VE is a common free choice; ESXi and Hyper-V match what many workplaces use. Compare them in Proxmox, VMware and KVM hosts, and see the ESXi command line cheat sheet if you pick ESXi.
  • Docker on a plain Linux install is lighter when you mostly run apps that come as containers. See managing Docker hosts.
  • A NAS system if storage is the main job, with apps on the side. See NAS remote access.

Not sure? A hypervisor keeps your options open: you can run Docker, a NAS system and a Windows VM on it later.

4. Set it up on your network

  1. Step 1: Give it an address that doesn't change

    In your router, reserve an address for the machine (often called a DHCP reservation), so its web page and SSH are always at the same place.

  2. Step 2: Install the hypervisor or OS, then update it

    Install, apply the updates, and set the time zone. Note the admin password somewhere safe.

  3. Step 3: Turn on SSH with keys

    You'll use SSH constantly. Set up key sign-in early: enable SSH and passwordless SSH with keys. For a file share, see how to set up an SFTP server.

  4. Step 4: Add your first services

    One VM or container per job, so you can rebuild one without touching the others. Snapshot before every big change.

Don't put admin pages on the internet

A hypervisor's web page, a NAS's settings or a router's admin page should never be reachable from the internet. Read why not to expose them, and use the next section instead.

5. Back it up before you need to

  • Back up VMs and containers on a schedule, to a different disk from the one they run on.
  • Keep one copy somewhere else: another machine, a disk you take out of the house, or cloud storage.
  • Restore one backup now, while nothing's wrong, so you know it works.

6. Reach it from anywhere, without opening ports

Install RemoteAccessApp on one always-on Windows or Linux PC at home. Then, from the RemoteAccessApp Console on your laptop:

  • Save the homelab's SSH, SFTP, RDP and VNC hosts, and its web pages in the Windows Console, as hosts that connect through that PC. Nothing is forwarded on your router.
  • On a Proxmox server you reach over SSH, see every VM and container, start or stop them and open their consoles.
  • On a Linux server, open a disk usage map to see what's filling a disk.
  • Run a saved script, such as updates, on several servers at once and see each one's output.
  • Remote desktop into that PC itself, and wake machines that sleep: see turn on a PC remotely.

It's free for up to 5 PCs and 5 saved hosts, on Windows and Linux. The homelab page shows how it fits together, and the maintenance night checklist keeps it healthy.

Questions, answered

More homelab and virtualization guides