freedzhost.cloud

Homelab 1: Proxmox, the base under every service

Level BeginnerEstimated time 1–2 hRead first Before you start: hardware, honestlyA word you don't know? Glossary

This series replaces, one by one, the services you rent: storage, photos, office, search, passwords. They all need somewhere to live. That place is Proxmox VE: a free, open-source hypervisor that turns one machine into many isolated servers, each one easy to snapshot, back up and throw away.

One machine · Proxmox VEproxyVMofficeVMphotosVMforgeVMautomationVMsearchVMtasksCTSSD · guests2nd disk · backupsnightly backupYour laptopTailscale / WireGuardinternetport 8006 closed
One machine runs every service in its own guest. Backups go to a second disk every night; administration goes through a private network, never the internet.

A bit of history

Proxmox VE was first released in 2008 by a small Austrian company, on top of Debian. It joins two Linux technologies under one web interface: KVM for full virtual machines, and LXC for lightweight containers. Free and open source, with optional paid support, it became the default hypervisor of homelabs as other free options disappeared or turned paid.

What one machine can carry

An example layout for a node like ours (Proxmox VE 9.2, 16 threads, 30 GB of RAM, an NVMe SSD for the guests, a large disk for backups):

GuestRoleRAM
VMreverse proxy with HTTPS2–4 GB
VMoffice suite, search, tasks, photos8–10 GB
VMcode forge and its CI4–6 GB
VMautomation and home assistant4 GB
containerone small service each0.5–2 GB

An old desktop or a mini PC is enough to start. What matters: RAM (16 GB minimum, 32 GB comfortable), an SSD for the guests, and a second disk for backups.

1. Install

  1. Download the Proxmox VE ISO from proxmox.com/downloads.
  2. Write it to a USB stick. On Linux: sudo dd if=proxmox-ve.iso of=/dev/sdX bs=4M status=progress, where /dev/sdX is the stick (check twice with lsblk: dd erases what you point it at).
  3. Boot the machine on the stick and follow the installer: target disk, country, a root password, an email, and a fixed IP address on your network.
  4. From another computer, open https://<that-address>:8006 and log in as root. The browser warns about the certificate: it is self-signed, that is expected on your own network.

2. The free update channel

Out of the box, Proxmox points to its enterprise repository, which needs a paid subscription: updates fail with an error. For a homelab, switch to the free pve-no-subscription channel, as documented by Proxmox.

Disable the enterprise repository: in /etc/apt/sources.list.d/pve-enterprise.sources, add the line

Enabled: no

Then create /etc/apt/sources.list.d/proxmox.sources:

Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

And update:

apt update && apt full-upgrade

Proxmox does not recommend this channel for production servers: its packages are tested less than the enterprise ones. For a home, it is the right choice; if Proxmox runs your business, buy the subscription, it also funds the project.

3. Your first container

Containers (LXC) are lighter than virtual machines: perfect for one service each. Download a template, then create the container:

pveam update
pveam available --section system | grep debian
pveam download local <the template name shown above>

Then in the web interface: Create CT, pick the template, give it 1 CPU, 512 MB of RAM and 8 GB of disk to start. You can grow all three later.

4. Your first virtual machine

For a service that needs its own kernel (Docker with many containers, another operating system): upload an ISO in local → ISO Images, then Create VM. Same rule: start small, grow later.

5. Backups, before anything else

In Datacenter → Backup, schedule a nightly backup of every guest to a second disk. Then restore one, once, to check it works.

A backup on the same disk as the guests is not a backup: it dies with that disk. A backup you have never restored is a hope, not a backup.

A trap we avoid

Never open port 8006 to the internet. To manage Proxmox from outside, use a private network such as Tailscale or WireGuard: the administration page stays invisible from the internet.

Sources

Found this useful? Tell us what to measure next.