Self-host Home Assistant
The open-source hub for home automation — local control of thousands of smart devices, with automations that run entirely on your own hardware.
Key facts
Pick Home Assistant Container when you already run a Linux box with Docker Engine 23+ and want local control of your devices without a dedicated appliance: it is Apache-2.0 Python, one `ghcr.io/home-assistant/home-assistant:stable` container on host networking with a `/config` volume, and every integration, dashboard and automation the project ships. What you give up versus Home Assistant OS is the Supervisor layer — no apps (add-ons), no one-click updates and no built-in backups. Upstream's hardware guidance for its own OS is a Raspberry Pi 4/5 "with at least 2 GB of RAM", which our 2 GB floor mirrors. There is no alternative hub in this catalog; the choice is which install method, not which product.
Follow the Home Assistant deploy guide →What you need
- Any VPS with at least 2048 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- About an afternoon — budget time for troubleshooting
Paid link — we earn a commission if you shop through it.
Install with Docker Compose
Save this as compose.yml and run docker compose up -d:
# Home Assistant Container — the official compose.yaml (docs → Installation → Linux)
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro # Bluetooth
restart: unless-stopped
stop_grace_period: 60s # lets the recorder close its SQLite DB cleanly on stop
privileged: true # device access (USB Zigbee/Z-Wave sticks); host networking for discovery
network_mode: host
environment:
TZ: Europe/Amsterdam # your timezone
# docker compose up -d → http://SERVER_IP:8123 (open 8123/tcp in the firewall if it does not load)What you take on
Home Assistant Container is upstream's advanced path, and its docs are candid about what you take on: