Installing Proxmox on my Home Server

My new smart home runs Proxmox, on a rack mounted self built server. Check out this video to see how I researched what to buy, how I built it, how I installed Proxmox, and how I eventually installed Home Assistant on a Virtual Machine using Prox Mox.

This article documents, step by step, how I installed Proxmox on my home server, and then installed Home Assistant.

Installing Proxmox

Start off by going over to the Proxmox website and downloading the latest version of the Proxmox VE software ISO installer.

Next, flash the ISO image to a USB thumbdrive using Balena Etcher.

Once it's flashed, plug the USB drive into your computer and boot from it.

Follow the setup wizard to install Proxmox VE onto your server's internal hard disk. I installed mine onto a 1TB solid state NVME m.2 drive. If possible, you should try and install your operating system onto a solid state disk as well, but any old hard drive will do if you've got it.

Once the setup is done, you can unplug the USB drive and it should boot up the Proxmox VE operating system!

Configuring Proxmox

Once Proxmox is running on your server you need to go to another computer, open up a web browser and go to the IP address of your Proxmox server and the port 8006.

https://<IP ADDRESS OF PROXMOX>:8006/

This will bring up the Proxmox web interface. You can log into it using the username root and the password you entered during the installation wizard.

I would now recommend running the proxmox post install script which cleans a bunch of things up and enables some other things (Don't ask me what exactly, but they seemed sensible)

I found this script as part of a handy collection of Proxmox tools in this github library.

To run the script, SSH into your Proxmox server and run this script in your terminal

bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"

This will make the changes, update Proxmox and then reboot.

My next task was to configure my storage. I have 4 hard disks in my Proxmox server and I am going to set them up like this

1TB Solid State m.2 NVMEProxmox Operating System and HypervisorThis drive is reserved for the operating system and Proxmox application. I chose a fast Solid State disk for this.
1TB Solid State m.2 NVMEVirtual MachinesThis is another fast solid state disk that will store my virtual machines. You could always store these on the same hard disk as your operating system, but I’ve heard horror stories on the internet from people who have done this, where a virtual machine has eaten up all the storage space, leaving Proxmox with no disk space and then it no longer boots up.
8TB 3.5″ SATA DrivePart of my Data MirrorThis is where I will store my Proxmox templates, backups, ISO Images as well as my media and NAS data.
8TB 3.5″ SATA DrivePart of my Data MirrorThis is where I will store my Proxmox templates, backups, ISO Images as well as my media and NAS data.

The installer took care of setting up my Proxmox disk, so there was nothing to do there.

The next thing I needed to do was mirror my two 8TB disks. Mirroring the disks means that it acts like one disk, but the files and data are stored across both disks. Unfortunately you lose the capacity of one of the drives (So two 8TB disks still only gives you 8TB of total storage) but the benefit is that you don't lose any data if one of them breaks.

I couldn't figure out how to mirror these in Proxmox in a way that still let me use them for things other than Proxmox, so I did it in the terminal using SSH.

I started by running the lsblk command to see how Proxmox and the underlying Linux operating sytsem saw the disks.

You can see it saw my two 8TB disks as sda and sdb. The other two 1TB disks were listed as nvme0n1 and nvme1n1.

I created a mirror, called data, from the two 8TB disks using the zpool command like this

zpool create -f -o ashift=12 data mirror sda sdb

You'll need to replace data with whatever you want to call your storage volume, and substitute your own disk IDs in for sda and sdb.

If you now run the zfs list command you'll see your new mirror listed, and the mountpoint you gave it which in my case is /data

You can now cd to /data and I created a bunch of directories in here to store the Proxmox stuff, as well as my media and shared files.

Next I set up my last disk, the second 1TB SSD, in the Proxmox user interface.

I went to the Proxmox node, then to Disks, then to ZFS. In here I saw the data volume I just created via the command line and clicked Create: ZFS in the top menu bar.

I now created a Single Disk storage pool called vm_data out of the remaining disk that was left.

If you check the Add Storage box, it will assign this disk to house your VM and container image files.

Finally, I had to tell Proxmox where to store the other bits and pieces, using the directories I created in the command line earlier.

Go to the Datacenter node in the Proxmox web interface, and then to Storage.

Click Add in the top menu bar, and then choose Directory.

I created a directory called templates, specified it to store data in the /data/templates directory I created earlier and then told it to store Container Template content in there.

I repeated this process for my backups and iso images as well.

To make sure I didn't accidentally create any VMs, containers or store any data on my OS Drive I deleted the local-lvm storage option and disabled the default local option as well.

I'm a total newbie when it comes to Proxmox, so this may not be the most ideal way to set this up, but it's been working for me so far!

Installing Home Assistant on Proxmox

To install Home Assistant on Proxmox once again used the helper script library.

It was just a matter of SSHing into Proxmox again, and then running the script in the command line.

Previous
Previous

My Smart Light Switch comparison

Next
Next

Installing Home Assistant OS onto an Intel NUC or other PC