There is no support for BananaPi M5 from Home Assistant OS, which leaves me either the container or the core version. Originally I was going to use the container image, however, it needs too much disk space (7GB was not enough as it maxed out my onboard storage). I went for Home Assistant Core instead, and this post records my journey setting it up.
- Install
uv
(a Python environment manager) - Install latest Python (3.13 at the time of writing), because Home Assistant Core has deprecated the support for older versions of Python
- Install Home Assistant Core (official documentation as a reference). I’m using
uv
to manage the virtual environment (note that I’ll enable ISAL for better performance).
cd /srv/homeassistant/
uv venv pyenv --python 3.13
source pyenv/bin/activate
uv pip install homeassistant==2024.12.3
uv pip install isal # ISAL for faster gzip and zlib
- Install and configure Cloudflare Zero Trust Tunnel (official documentation for remote tunnel). To expose my Home Assistant access to the public Internet, so that I can access it everywhere. Besides, some cloud-based services require that access because they use callbacks (the alternative is to pay for Nabu Casa which is a subscription-based service). Configure the access control in Cloudflare Zero Trust so that only verified emails from a restricted list have access (additional policies can be set for a new application that bypasses any control for cloud services callbacks)
- Worth noting that the
cloudflared
add-on cannot be used because Home Assistant Core doesn’t support add-ons.
- Worth noting that the
- Setup a new service in
systemd
for Home Assistant’shass
so that it starts on boot and restarts on failures. I created this file/etc/systemd/system/ha@homeassistant.service
(systemctl enable
andsystemctl start
afterwards):
[Unit]
Description=Home Assistant
After=network-online.target
After=network.target
[Service]
Type=simple
User=homeassistant
ExecStart=/srv/homeassistant/pyenv/bin/hass
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target