Home Assistant

Install Home Assistant on your own PC or server

Have you got an old PC, mini PC, or self-built server lying around? You can run Home Assistant on it just fine, often faster than on a Raspberry Pi. There are four common ways. Below we explain them, so you can choose what fits your hardware.

Which installation method is right for you?

  • Home Assistant OS on the entire machine: the easiest route with all add-ons. The machine is then exclusively for Home Assistant.
  • Home Assistant OS in a virtual machine (Proxmox, VirtualBox, VMware): ideal if your server needs to do more. You keep all add-ons.
  • Home Assistant Container (Docker): fits into an existing Docker environment, but has no add-ons. You then run those yourself as separate containers.
  • Older methods like Core and Supervised are discouraged or no longer supported by the project. Don’t choose them for a new installation.

Method 1: Home Assistant OS on a dedicated PC

Your machine must be 64-bit x86 with UEFI boot support, at least 2 GB RAM and 32 GB storage.

  1. Download the Generic x86-64 image (.img.xz) from the official installation page on home-assistant.io.
  2. Connect the target SSD (or disk) with a USB adapter to another computer and write the image to it with balenaEtcher. There is no installer: the image itself is the system.
  3. Put the disk in the PC, turn off Secure Boot in the BIOS and boot from that disk.
  4. After a few minutes, open http://homeassistant.local:8123 and complete the onboarding.

Method 2: Home Assistant OS in Proxmox

Create a VM with the following commands on the Proxmox host. First download the .qcow2.xz file (KVM/Proxmox) from home-assistant.io and extract it. Adjust the VM number, storage name and file name.

qm create 200 --name haos --ostype l26 --machine q35 --bios ovmf \
  --cores 2 --memory 4096 --net0 virtio,bridge=vmbr0 \
  --scsihw virtio-scsi-pci --agent enabled=1 \
  --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0
qm disk import 200 haos_ova-XX.X.qcow2 local-lvm
qm config 200   # find the line "unused0"
qm set 200 --scsi0 local-lvm:vm-200-disk-1 --boot order=scsi0
qm start 200

Important: UEFI (OVMF) with pre-enrolled-keys=0, otherwise the VM won’t boot due to Secure Boot. If you want to pass through USB dongles (Zigbee), add them as a USB device to the VM.

Method 3: Home Assistant Container with Docker

Handy if you already have a Docker server. Create a folder with a compose.yaml:

services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      - ./config:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

Start it with docker compose up -d and then open port 8123 on the IP address of your server. network_mode: host is necessary so Home Assistant can discover devices on your network.

Tips for a dedicated PC or server

  • A mini PC with an Intel N100 uses only a few watts and is much faster than a Pi.
  • Enable Wake-on-power or “restore after power failure” in the BIOS, so everything comes back automatically.
  • Use a static IP address or DHCP reservation.
  • Make a backup before every major update, and also a snapshot for a VM.
  • Don’t run Home Assistant on a disk with unknown health: check it first with SMART.
Can't do it yourself? Have an expert come to your home via hulpaanhuis.nl