Home Assistant, the hub of an open-source smart home stack

An XDA writer recently reported that three Docker containers cover their entire smart home. That claim landed because most self-hosted setups grow into twelve-service messes when the real work of running lights, sensors, cameras, and automations only calls for a handful. If a mini PC and a Zigbee stick sit under the TV, and the goal is to leave the cloud without babysitting a homelab, the best apps for an open-source smart home stack fit on one machine and stay out of the way. The seven picks below cover the roles that most self-hosted homes actually need: a hub, an MQTT broker, an automation editor, a Zigbee gateway, a firmware toolkit for ESP boards, a camera recorder that runs local object detection, and a monitor for the stack itself. Every one of them ships as a Docker image, runs on Windows, macOS, and Linux, and stays open-source.

What to look for in a smart home stack app

Before picking any of these, the criteria that actually matter for a self-hosted smart home:

Quick comparison

App Role Docker License Standout
Home Assistant Central hub and automation Yes Apache 2.0 3,000+ integrations, weekly releases
Mosquitto MQTT broker Yes EPL 2.0 Runs under 10 MB of RAM
Node-RED Visual flow automation Yes Apache 2.0 Drag-and-drop logic for complex flows
Zigbee2MQTT Zigbee gateway Yes MIT Replaces every brand-specific Zigbee hub
ESPHome ESP32/ESP8266 firmware Yes MIT / GPLv3 YAML-defined DIY sensors
Frigate Camera NVR with AI detection Yes MIT Local object detection, no cloud
Uptime Kuma Service monitoring Yes MIT Alerts to Telegram, Discord, email

The apps

1. Home Assistant: best for the central hub

Home Assistant is the reference implementation of an open-source smart home hub. It ships integrations for thousands of devices, a native dashboard, and an automation engine that reads YAML or a visual editor. Running the Container release under Docker keeps the install portable across machines, and a one-click restore from a snapshot moves the whole home onto a new box in under an hour.

Where it falls short: Some device integrations depend on custom components from HACS, the community add-on store. Setting up TLS externally is manual unless the Nabu Casa cloud subscription handles it.

Pricing:

Platforms: Windows, macOS, Linux via Docker. Native OS install on Raspberry Pi and generic x86 mini PCs.

Download: Home Assistant

Bottom line: The default pick for any self-hosted smart home. Every other app on this list plugs into it.


2. Mosquitto: best for the MQTT broker

Mosquitto is the Eclipse Foundation MQTT broker. Almost every smart home stack uses MQTT as the shared message bus, and Mosquitto is the smallest, fastest, and most-referenced implementation. The Docker image runs on tiny memory, needs a single config file, and speaks MQTT 3.1.1 and 5.0.

Where it falls short: Access control is text-file based. There is no web UI. Any dashboarding sits in Home Assistant or a separate client like MQTT Explorer.

Pricing:

Platforms: Windows, macOS, Linux via Docker. Native binaries for every major OS.

Download: Mosquitto

Bottom line: Set it up once, forget it exists.


3. Node-RED: best for visual automation

Node-RED is the flow-based editor built by IBM Emerging Technology. Drag nodes for MQTT topics, HTTP calls, timers, and function blocks onto the canvas, wire them together, and the automation runs. Home Assistant has its own automation engine, but Node-RED wins when a workflow spans devices, cloud APIs, and long-running state (for example, a motion sensor that triggers a light only when the doorbell has not rung in the last hour).

Where it falls short: Flows can grow tangled without discipline. Version control on JSON exports is workable but not elegant.

Pricing:

Platforms: Windows, macOS, Linux via Docker or npm.

Download: Node-RED

Bottom line: The right pick when Home Assistant’s built-in automations run out of expressive range.


4. Zigbee2MQTT: best for the Zigbee gateway

Zigbee2MQTT connects a USB Zigbee coordinator (Sonoff, ConBee II, Home Assistant Yellow, or SkyConnect) to the local MQTT broker. That single bridge unlocks around 3,000 Zigbee devices from every vendor without buying a hub for each brand. Adding a new bulb or sensor takes about 20 seconds of pairing.

Where it falls short: Coordinator firmware upgrades occasionally break device pairings. Some obscure devices need custom converters written in JavaScript.

Pricing:

Platforms: Windows, macOS, Linux via Docker. USB passthrough on Linux is the smoothest install.

Download: Zigbee2MQTT

Bottom line: The reason a Philips Hue bridge, an Aqara hub, and an IKEA gateway do not need to share the same shelf.


5. ESPHome: best for ESP32 and ESP8266 firmware

ESPHome turns a cheap ESP32 board into a smart home sensor with 20 lines of YAML. The framework compiles firmware from the config, flashes it over USB or OTA, and registers the device with Home Assistant automatically. Custom sensors (temperature, air quality, water leaks, energy monitors) become a weekend project instead of a hardware startup.

Where it falls short: Only supports ESP-family boards. The YAML DSL has a learning curve for anything beyond the built-in components.

Pricing:

Platforms: Windows, macOS, Linux via Docker. Also runs as a Home Assistant add-on for one-click install.

Download: ESPHome

Bottom line: The pick when off-the-shelf sensors do not cover a specific room or device.


6. Frigate: best for local camera NVR

Frigate is the network video recorder built around local object detection. It grabs RTSP streams from IP cameras, runs each frame through a Coral TPU or the CPU, and only records when a person, car, or animal is actually in view. That single design choice cuts storage by roughly 90% versus continuous recording and keeps every frame off the cloud.

Where it falls short: A Coral USB accelerator is close to mandatory for more than two cameras. Setup with high-resolution streams needs careful tuning of ffmpeg presets.

Pricing:

Platforms: Windows, macOS, Linux via Docker. Linux with hardware acceleration is the recommended path.

Download: Frigate

Bottom line: The best cloud-free camera stack on the market. Every alert lands in Home Assistant with a snapshot.


7. Uptime Kuma: best for monitoring the stack

Uptime Kuma is a self-hosted status page. It pings each service in the stack (Home Assistant on port 8123, Mosquitto on 1883, Frigate on 5000) and alerts on Telegram, Discord, or email when something drops. That means the first sign of a failed container is not a broken automation at 6:30 a.m.

Where it falls short: Not a metrics tool. For CPU or RAM graphs, pair it with Grafana or Home Assistant’s system integration.

Pricing:

Platforms: Windows, macOS, Linux via Docker. Runs happily on the same box as the rest of the stack.

Download: Uptime Kuma

Bottom line: The last container that turns a hobby smart home into something reliable enough to depend on.


How to pick the right one

A single self-hosted smart home does not need every app on this list from day one. The right starter kit depends on house size, device mix, and how far the setup runs from the cloud.

FAQ

Do I really need Home Assistant if I already have Alexa?

Yes, if the goal is local control, custom automation, and no cloud dependency. Alexa is a voice front end tied to Amazon’s servers. Home Assistant runs on the local network, keeps device state local, and continues to work when the internet drops. Many people run both, wiring Alexa voice commands to Home Assistant scripts through the Nabu Casa cloud add-on.

What is the minimum smart home stack?

Three containers cover most homes: Home Assistant, Mosquitto, and Zigbee2MQTT. That combination replaces a Hue bridge, an Aqara hub, and any brand-specific app for lights, sensors, and switches.

Can this stack run on a Raspberry Pi?

Yes. A Raspberry Pi 4 with 4 GB of RAM handles Home Assistant, Mosquitto, Zigbee2MQTT, Node-RED, and ESPHome without stress. Frigate needs a Coral TPU accelerator on the Pi, or a mini PC with an Intel iGPU for hardware transcoding.

Is Docker required or is a native install fine?

Native install works for every app on the list, but Docker keeps the stack portable. A single docker-compose.yml file moves the entire setup to a new machine in one command. Snapshots and rollbacks become trivial. For a stack that will run for years, Docker is the lower-friction path.

What is the difference between Home Assistant and OpenHAB?

Both are open-source smart home hubs. Home Assistant has the larger community, faster release cadence, and broader integration coverage in 2026. OpenHAB is stronger for users who prefer JVM-based extensibility and rule engines like Blockly and JSR-223. For a first self-hosted stack, Home Assistant is the safer default.