Installing Home Assistant using Proxmox

Tags: #<Tag:0x00007f739a62a8d0>

Installing Home Assistant using Proxmox

This guide will help you to install Home Assistant, on almost any x86/64 machine type you choose using Proxmox as the operating system. This guide has been tested on machines including a Dell Optiplex SFF 990 and Dell Optiplex USFF 780.

This installation uses an offical image provided by the Home Assistant team and is considered a supported installation method. This method of installation is considered medium difficulty and some knowledge of how to use and interact with Linux is required.

What is Home Assistant?

Home Assistant is a full UI managed home automation ecosystem that runs Home Assistant Core, the Home Assistant Supervisor and add-ons. It comes pre-installed on Home Assistant OS, but can be installed on any Linux system. It leverages Docker, which is managed by the Home Assistant Supervisor plus the added benefit of dozens of add-ons (think app store) that work natively inside the Home Assistant environment.

If you are new to Home Assistant, you can now proceed to Step 1. If you have an existing Home Assistant installation and need to know how to back up your current configuration, please see the document Backing up and Restoring your configuration located HERE

Section 1 – Install Proxmox

1.1) Download Proxmox VE 6.2 ISO Installer from HERE

1.2) You will now need to make a bootable USB drive using balenaEtcher, available HERE. Use a USB drive of at least 8gb. Insert the blank USB drive into your PC, open Etcher, select the Proxmox image you have just downloaded, select your USB drive, then click Flash.

1.3) Insert the USB you have just made into the new machine, connect a monitor, Ethernet cable, keyboard, mouse, and power on the machine. If you have any extra hardware, like a Zigbee or Z-Wave stick, now is also a good time to plug them in to the machine. You will need to select the USB drive as the boot device, to do this, you will need to press something like F12 or DEL on your keyboard immediately when the machine is powered on.

1.4) When you see the first screen, select Install Proxmox VE, press Enter. The installer will perform some automated tasks for 1-2 mins.

1.5) Next on the EULA screen, select, I Agree.

1.6) Next on the Proxmox Virtualization Environment (PVE) screen, select the drive you wish to use from the box at the bottom of the screen, then click Next.

1.7) Next on the Location and Time Zone selection, Type your country, then select your time zone and change the keyboard layout if needed, then click Next

1.8) Next on the Administration password and E-mail address screen, choose a password, confirm your password and enter a valid email address.

1.9) Next on the Management network configuration screen.

  • Management interface should already be populated with the Ethernet controller of your machine, if not, select the Ethernet controller
  • Hostname (FQDN) - Type a hostname in this box, you could use something like, proxmox.ddns, hass.info, or homeassistant.ddns.
  • IP Address - you can choose an IP for your machine, if you have a specific IP you wish to use on your network, enter this now
  • Netmask - should auto populate and be something like 255.255.255.0 depending on your network configuration.
  • Gateway - this is (normally) the IP of your router, this should auto populate with the correct info, if it does not, enter the IP of your router
  • DNS server - you can leave this at the default on your network (normally the same IP as your router), or input one of your choosing like a Google DNS server 8.8.8.8 or a Cloudfare DNS server like 1.1.1.1.

1.10) Next on the Summary screen, confirm all the details are correct, then click Install. This process can take anywhere from 2 -20min depending on your machine.

Once the installation is complete, take note of the IP information on screen, remove the USB drive, and click Reboot. While the reboot is taking place, you can now unplug the monitor, keyboard and mouse from your machine as they are no longer needed.

After 1-2 minutes, you should be able to access Proxmox at https://MACHINE_IP:8006. If you see a message like Warning: Potential Security Risk Ahead, you can safely ignore this, accept the risk and continue.

Section 2 - Configure and Update Proxmox

2.1) Before configuring anything in the Proxmox interface, you will start by updating the Proxmox OS to make sure all the latest updates and security patches are installed. To do this you will use Putty available HERE to connect via SSH and copy and paste some commands. To connect to Proxmox via Putty, you will need the IP of the machine from Step 1.10, the username root and password you created from Step 1.8.

Open Putty and in the HOST NAME (OR IP ADDRESS) box, enter the IP of the Proxmox machine, then select OPEN. You will now be prompted to enter the username root (login as:) and your password.

2.2) The first thing you should do is add a user to the sudo group so you don’t need to login with root. To do this, copy and paste this command into the Putty window to install sudo.

apt update
apt install sudo

Once this has completed, create a new user

adduser YOUR_USER_NAME

Choose and confirm a password, then complete the following.

Changing the user information for username
Enter the new value, or press ENTER for the default
    Full Name []: YOUR NAME
    Room Number []: LEAVE BLANK
    Work Phone []: LEAVE BLANK
    Home Phone []: LEAVE BLANK
    Other []: LEAVE BLANK

You can now add the user the sudo group with this command.

usermod -aG sudo YOUR_USER_NAME

To test this has worked, log out of Putty by typing exit and press enter. Start a new Putty connection and use the new username and password you have just created.

Now that you have logged in with the new user, you can update Proxmox with the following command.

sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove -y

You may get an error when running updates, if you see “401 unauthorized IP” you can solve it by following Step 2.3. If you don’t get this error, move onto Section 3 - Installing Home Assistant.

2.3) Copy and paste this command into Putty and press enter

sudo nano /etc/apt/sources.list

Press and hold Control button and K button together on your keyboard to remove all the text you can see (Control+K)

When the screen is blank, copy and paste in the following information.

#
deb http://ftp.debian.org/debian buster main contrib
deb http://ftp.debian.org/debian buster-updates main contrib

# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve buster pve-no-subscription

# security updates
deb http://security.debian.org/debian-security buster/updates main contrib
#

Then press Control+X, then Y for Yes, then press Enter.

Copy and paste this command into Putty and press enter.

sudo nano /etc/apt/sources.list.d/pve-enterprise.list

Press and hold Control+K to remove all the text you can see, once all text is removed, press Control+X, then Y for Yes, then press Enter.

You can now run the following update command and should not get any errors. The update could take 1-20mins, when finished, you can move on.

sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove --purge -y

Now that the OS is up to date, you can move onto to installing Home Assistant using Proxmox.

Section 3 - Installing Home Assistant

Installing Home Assistant in Proxmox has been made very simple with an excellent script created by Whiskerz007. Information about the script can be found HERE. Credit to Whiskerz007 for making this process so simple.

3.1) To run the install script, copy and paste the following command into the Putty window you have open. This will download an official image from the Home Assistant website and configure it in Proxmox for you. This will take 2-20mins depending on your internet connection and machine.

sudo bash -c "$(wget -qLO - https://github.com/whiskerz007/proxmox_hassos_install/raw/master/install.sh)"

Once this has finished, you will see [INFO] Completed Successfully! New VM ID is 100. When you can see this message in Putty, you can move over the Proxmox page to configure the VM.

3.2) In your web browser, head to the Proxmox web interface at https://MACHINE_IP:8006 and login using the username root and the password you created during Step 1.8. You will get a message saying “You do not have a valid subscription for this server.”, you can safely ignore this and click OK.

On the left hand side, you should see a new entry under Datacentre — Your_Machine_Name called 100 (hassosova-4.8) or similar. This is the Home Assistant VM created by the script. It is currently not running and you should now make some changes to how the VM will operate.

3.3) Click on the VM named 100 (hassosova-4.8). You should now see a menu listing Summary, Console, Hardware, Cloud-init etc. Click on Hardware. The key things you will want to change are Memory, Processors and Hard Disk.

3.4) Click on Memory, then click on Edit in the bar just above. The default value will be 512. Depending on how much Memory you have in your machine, you can increase this value to 2048 (2gb) or 4096 (4gb), and then click OK. Home Assistant happily runs with 2gb of memory.

3.5) Click on Processors, then click on Edit in the bar just above. The default values will be Sockets 1 and Cores 1. Leave Sockets at 1. Depending on your CPU type (dual core, quad core, etc) change the value of Cores to 2, or 4, then click OK. You can also leave this value at 1 which will only use 1 CPU Core.

3.6) Click on Hard Disk, then click on Resize Disk in the bar just above. The drive is already 6gb, so you can add a value to increase the size of the disk. A good value to use is 26 as this will make the drive size 32gb which is more than enough for Home Assistant. Enter a value, then click Resize Disk.

3.7) If you have a Zigbee or Z-wave stick connected to the machine that you wish to use with Home Assistant, you can configure these now by clicking on USB Device then click on Edit in the bar just above. You can now choose the USB Zigbee or Z-wave device from the dropdown list, then click OK.

3.8) You can now start the Home Assistant VM for the first time so it can run the install. To do this, click Start on the top right corner of the screen.

3.9) The Home Assistant VM will be assigned a different IP to Proxmox. To find the IP of the Home Assistant install, click on Summary from the menu list, and you should now see a box that shows information such as Status, HA State, CPU and Memory info. The IP listed here is the one needed to access Home Assistant.

You can now enter this IP and port 8123 (eg. http://192.168.1.150:8123) in your web browser and check the status of the Home Assistant installation.

Once you can see the login screen, the setup has been completed and you can set up an account name and password. If you are new to Home Assistant you can now configure any smart devices that Home Assistant has automatically discovered on your network. If you have an existing Home Assistant install and you have a snapshot or YAML files you wish to restore, refer to the document Backing up and Restoring your configuration.

That’s it, you have now installed Home Assistant on your machine using Proxmox and have SSH access to your machine using Putty to keep it up to date. It is recommended that you log into the Proxmox machine using Putty at least once a month and use the following command to download security patches and keep the OS up to date.

sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove –y

Along with this guide, there is also associated documents available. These are essentially guides I use myself.

I welcome feedback on this guide, please feel free to tag me or PM if you have suggestions on how to make improvements.

30 Likes

With the renaming recently, shouldn’t the title read “Installing Home Assistant Supervised on Proxmox”?

No, this installation uses the full Home Assistant image. First option in this list.

1 Like

Sorry! Last time I played with that script I think he had both options…

I should have looked. :slight_smile:

1 Like

This guide could not have come at a better time :slight_smile:

I literally just finished putting together an old PC with Proxmox in it trying to transfer my legacy raspberry pi home assistant over to a VM. Mostly due to instability of microSD card and my lack of backups. I recently had a crash and lost a lot of work. Looking to hopefully automate some backups and ability to easily go back if an update breaks my HA.

Having said that, HA has changed quite a bit the past 3 years… I am using Hassbian 0.76.2, anyone have an idea how easily I can transfer to a version that is more stable or easily managed by Proxmox? Is Hassbian = HA Core?

The only thing I could suggest is to start with the default config files of the latest version of HA, take a backup of all of them, and slowly copy your files over 1 at a time, like automation.yaml, script.yaml etc, reboot, and correct any breaking changes. It will be a slow process.

Check your configuration.yaml file against the latest and make the necessary changes you can see.

Someone else may have a better solution.

Basically, yes. Hassbian was just a version of Debian/Raspbian with HA configured to run in a venv, more or less.

Thanks Kanga_who

So your recommendation based on your post is going full Home Assistant install with HassOS correct? It looks like it has full roll back and all. I don’t have a powerful PC running Proxmox so I was planning on using Ubuntu running containers to maximize my VMs :stuck_out_tongue:

I was planning on Ubuntu server with HA docker prior to seeing your post. Need to save some cores and ram for plex.

I would recommend going full Home Assitant and run it as an “appliance” within a VM. You can always run up other VM’s on ProxMox if you want to do other things. Home Assistant will run very happily with one CPU core and 1GB RAM if you are resource limited. Home Assistant will use as much RAM as you through at it, up until about 4GB though, but it doesn’t really make a huge difference in speed above 2GB.
Giving HA more than one core doesnt make any difference unless you are running add-ons that are CPU intensive like [email protected] or Plex and doing a lot of decoding.
I understand people have their preferences, this is just my opinion :slight_smile: .
I’ve used Whiskerz007 script a few times and it is really simple once you have ProxMox running. It makes it a lot easier than running OpenBox, and you don’t have the Windows host chewing resources.

I’ve recently switched from a Supervised install on my main machine (Dell Optiplex 990), to Proxmox running 3 VM’s - 1x Home Assistant and 2x Ubuntu 18.04 VM’s, one running Plex, MQTT, OVPN, Portainer, etc and the other running only Shinobi for CCTV recording.

The machine has an old i5 2400, and 16gb RAM (recently updated and ran well on 8gb). I give each VM 2 cores and 4gb RAM. Runs very well, so you don’t need an amazing machine to do lots of work. HA runs without issue on 2gb of RAM, and I’ve found that Plex rarely uses over 2gb as well.

I’ve also got my test machine a Dell USFF 780 with a dual core and 4gb RAM set up using Proxmox with 1x HA VM and 1x Ubuntu VM, also runs perfectly well.

The current state of where the Supervised install is going to end up seems to me that it won’t be worth using (and I think that is kinda the plan), so I think the Proxmox route is a good one.

Even if you have limited resources, you can allocate cores to more than one machine.

Example: If you have a 4th Gen Corei5 (like I currently do) you can allocate cores to machines, as long as the CPU load isnt high even up to 3:1 is acceptable. My Machine does have 24GB RAM in it.
I currently have the following:
HA 1 Core and 2GB RAM
OMV 2 cores and 8GB RAM
Motion Eye: 4 Cores 12GB RAM (Runs 6x5MP Cameras, 24/7 recording at low res, Motion Detection at high res).
Plex: 2 cores 2GB RAM (Doesnt do a lot of decoding, mianly direct streaming)

The Core i5 4th gen processor is a 4 core processor with no hyperthreading, so 4 vCPU’s, but as you see I actually have it split into 9 allocated vCPU’s. I can do this as, apart from MotionEye, the other VM’s all have low CPU usage with only the odd spike.
ProxMox will allocate resources according to load, with time sharing if the host is completely 100% utilised. Unless you run all VM’s at 100% resource utilisation, you wont have issues with a setup like I have.

1 Like

Awesome, sounds like Proxmox can really load balance very well. I’m going to give it a go maybe tomorrow night as see how it goes. Worst case I can always delete and start over again :slight_smile:

Nice, I’ve heard great things about Proxmox, hence I wanted to give it a try. Thanks for breaking it down for me. First time I’m setting up my own virtual environments. I’ve dabbed into VirtualBox a bit and managed servers but never set one up from the ground up.

I have a NAS running Plex and lately it’s had some issues with decoding. It’s not running a powerful processor and I watched it hit peak 99% numerous times during the 1 stream of H.265 to my TV and it was choppy. So I figured maybe through it in a PC and see if it’s better.

I have an old Core i7 3rd gen with 16GB of ram laying around that I was going to use for video editing for my drone videos… Since my HA broke down, I decided to put Proxmox in it to see if I can get more out of it. I may eventually switch to a NUC core i5 later on if I can save some money for it. I like how small the NUC is and how much power you get out of it.

That is ample for anything HA related, plus Plex and an NVR/CCTV. This is mine currently with everything running as noted above. (My wife is currently watching Columbo on Plex a well :man_facepalming:)

haha nice :joy:

Question, I just ran the whizkers script, took like 2 mins. Can I configure the Z-Wave USB stick later? Just run the install and let it go? 1. It’s late here and I’m heading to bed. 2. I need to power down the pi and well then my lights don’t work. 3. I need to run to the basement lol

Yep. Just shutdown the system, plug in the Z-wave stick, then start up. It should show in the list after the reboot.

The great thing about i7 over an i5 is hyperthreading. That means ProxMox will see it as 8vCPUs so plenty of power for what it seems like you want to do.

ProxMox has USB passthrough. Just set that up in your VM. I use a Conbee II and a ZwaveMe USB stick and I pass both through with zero issues. You can either passthrough the device or actually pass through the entire USB port. I do port passthrough as those two devices are only used by HA, but both methods work flawlessly. If you do it later, you just stop the VM (shutdown the OS in Home Assistant) and passthrough the USB to the VM when needed.
As a note, I started on a Raspberry Pi 3 and migrated to the VM using a HA snapshot and it needed nothing to be reconfigured to detect the passed through USB devices. It just worked. DeConz using the HA add-on and Zwave setup via integration not yaml.

Oops. That was meant to be for @swiftvic

Thanks for the guide, I got it running!

A thing to mention: I needed to run apt update before apt-get install sudo

2 Likes

Is it possible to install MQTT following your other guides on the same VM as HA, or do I need to create a separate one for that?

Script works great… I need to copy my backup over but the base OS seems really stripped down. No apt for installing sshd. Am I missing something?

I would install a Debian or Ubuntu VM to run any software, not on the Proxmox OS.

1 Like