Why Home Assistant
I do not have that many IoT / Smart Home devices in order to really require a powerful solution like Home Assistant. On the other hand I am not too happy with the fact that my Hue light bulbs do not come with a web accessible solution to control them and I find the Hue app as well as Homekit alone not convenient enough. This is where Home Assistant comes in, it provides a nice and simple dashboard that allows to efficiently control all the devices I have. Further the Netatmo cloud and OpenWeatherMap integration are nice add-ons.
Proxmox / LXC
Since I use Proxmox for virtualization and I wanted to run Home Assistant on it. Debian is my go-to base OS for VM hosts.
Proxmox has a nice and easy LXC (Linux Container) integration. The overhead of LXC is just negligible compared to a fully blown VM. I therefore decided to run Home Assistant inside an LXC container.
Unfortunately Debian Buster still ships with Python 3.7 which is not ideal for Home Assistant. Debian Bullseye which is close to being finally released on the other side, ships with Python 3.9 which is perfect. (The only thing holding back the release of bullseye is an issue with the installer which won't impact us here at all).
1 - Launch a Debian Bullseye LXC container
How to obtain the official Debian Bullseye LXC Template is fortunately documented here: https://forum.proxmox.com/threads/debian-bullseye-als-lxc-container-gesucht.63560/ download the image and launch a new LXC container.
2 - Install Home Assistant Core
After downloading and launching the Debian Bullseye LXC container, follow the instructions to install Home Assistant Core on Linux.
It's pretty straight forward, just use
instead of the python3.8 command as suggested in the documentation (as we are not using python 3.8).
3 - Systemd Service for Home Assistant Core
After having installed Home Assistant Core it is unfortunately not launched with every startup automatically. I'm not sure for what benefit that is. However a quick search brought up the page below which is a tutorial for a raspi based installation:
Use the service template with some minor changes:
Replace "%i" with "homeassistant" in the service file and used the correct command to load the new service file.
sudo systemctl --system daemon-reload
Then enable and launch the service.
4 - What next
Voilà we have Home Assistant running on Proxmox in an LXC container with Debian Bullseye.
The next step is obviously to complete the Home Assistant onboarding
and configure your smart home and IoT devices.
As usual don't forget to harden your installation, setup OS updates, etc.