uptime · 1416 days · 41 posts published · last deploy 1 hour, 38 minutes ago build:passing rss
~ / home-automation / installing-home-assistant-ha-os-container-core.md
Home Automation · 16. June 2026 · ~6min · 8fa7054

Installing Home Assistant: HA OS, Container or Core?

The four installation variants honestly compared – and which one fits your setup

>
devmaker.net
author · 8fa7054 · 2026-06-16
When you start with Home Assistant, you often stumble at the very first question: HA OS, Supervised, Container or Core? The docs throw four variants at you without clearly saying which one suits whom – and the wrong choice costs you nerves later (missing add-ons, update chaos, no supervisor). This article compares the four variants honestly, gives you a clear decision path and shows the quick start for the two sensible routes – HA OS on a Raspberry Pi and HA as a Docker container. Based on my own setup, where Home Assistant runs as HA OS in a KVM VM. You need no prior knowledge; by the end you'll know exactly which variant to install and why.
Part of a guide

This article is part of the Home Assistant Guide – the curated learning path for your smart home.

Home Assistant is the control center for a local, privacy-friendly smart home – but getting started begins with a decision that catches many beginners off guard: in what form do I even install it? There are four official variants, and the choice determines whether you later have the convenient add-on store or wrestle with every extra service by hand.

The four variants – briefly explained

  • Home Assistant OS (HA OS): A complete, lean operating system that does nothing but Home Assistant. Includes the Supervisor and the add-on store (Mosquitto, Zigbee2MQTT, Node-RED & co. with one click). Updates run cleanly through the UI. The recommended variant.
  • Supervised: Like HA OS, but on your own Debian system. You get add-ons but take responsibility for the host OS yourself – and only a very narrow configuration counts as supported. A niche for people who know exactly what they're doing.
  • Container: Home Assistant as a single Docker container. Lean and tidy in a homelab – but no supervisor, no add-on store. Services like MQTT or Zigbee2MQTT you run yourself as separate containers.
  • Core: Home Assistant directly in a Python environment (venv). Maximum control, maximum maintenance. Practically only relevant for developers.

Which variant for whom?

Quick recommendation

Beginners & most users: Home Assistant OS – on a Raspberry Pi or in a VM. Homelab with an existing Docker stack: Container, if you run add-ons as containers anyway. Supervised/Core: only with a clear reason.

The honest rule of thumb: if you're not sure, pick HA OS. The add-on store saves you an enormous amount of fiddling early on – MQTT broker, Zigbee bridge, backups, each one click. The container variant is temptingly clean, but it costs you exactly that convenience: every extra service becomes its own container that you wire up yourself.

My setup: HA OS in a KVM VM

I run Home Assistant as HA OS in a KVM/QEMU VM on my Debian homelab server. That gives me the full add-on convenience of HA OS without dedicated hardware – I share the server with other VMs. How that is set up in detail is here: Home Assistant OS in KVM/QEMU.

For the classic entry, though, a Raspberry Pi is the easiest route – cheap, power-efficient, and HA OS is built for it.

One thing on the Pi: don't rely on a MicroSD card, which dies early under Home Assistant's constant database writes. A Pi 5 with an NVMe kit is the durable base – it's what I use in the homelab too:

Quick start: HA OS on the Raspberry Pi

The easiest route goes through the Raspberry Pi Imager:

  1. Install and start the Imager.
  2. Under Choose OS → Other specific-purpose OS → Home Assistant and home automation → Home Assistant OS, pick the image for your Pi.
  3. Write it to an NVMe SSD (or an SD card if you must), plug it in, connect the network by cable, power on.
  4. After a few minutes the UI is reachable:
http://homeassistant.local:8123

If homeassistant.local doesn't resolve (mDNS issues on your network), use the Pi's IP address from your router. The rest – creating a user, location, first devices – the onboarding wizard walks you through.

Quick start: HA as a Docker container

If you already run a Docker host, a small compose.yaml is enough:

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

network_mode: host isn't a blemish here but necessary, so Home Assistant can discover devices on the local network via auto-discovery. Remember: in this variant there is no add-on store – you start an MQTT broker or Zigbee2MQTT as separate containers alongside.

What I left out

  • Supervised on your own Debian: sounds like the best of both worlds, but it's maintenance-heavy and only officially supported in a narrow configuration. The wrong path for beginners.
  • Core in a venv: skipped – too much manual maintenance for too little benefit outside development.
  • HAOS in Proxmox/LXC: popular, but LXC is officially unsupported; I prefer the clean VM.

Conclusion & outlook

For almost everyone, Home Assistant OS is the right choice – easiest on a Raspberry Pi, most flexible in a VM. The container variant is the clean homelab option when you don't need the add-on convenience. Once the installation stands, the real understanding begins: what are entities, devices and integrations – and how do they fit together? That's exactly what I'll tackle in the next beginner article.

// responses (0)
> echo "your thoughts" >> installing-home-assistant-ha-os-container-core.responses

Post your comment

Required for comment verification