It finally happened: there was a Raspberry Pi 4 with 8GB RAM in stock that wasn't outrageously priced.
Hot tip: make sure you know where you've put your Micro SD card from your last bricked Pi so you don't have to wait for the delivery of a new card.
I'll assume you have basic knowledge around Linux (you should for example know how to connect to another computer with SSH), so forgive me if I don't explain everthing to the last detail. Feel free to message me on Twitter if you have any questions 🙂.
These are the steps we'll have to go through to get a working installation of Home Assistant running on your local network.
Normally I'm not a big fan of installers. I like to understand what I'm doing and what's happening if I click something in a GUI. Most of the time you have a lot more control using the manual way.
In this case though I highly recommend using the Imager tool to install Raspberry Pi OS on your SD card. It saves you a lot of time and headaches with the first time configuration.
Go ahead and download Raspberry Pi Imager for your operating system.
Screenshot of the home screen of Raspberry Pi Imager
Screenshot of the advanced options of Raspberry Pi Imager
I customized the following things:
rpi
because it's shorterNow, don't forget to press Save. You are now ready to write everything to your SD card. Depending on the speed of your card this may take a few minutes.
After this process finished insert the card in your Raspberry Pi and move on.
After inserting the SD card turn on your Pi by attaching the power supply to it and give it 1 or 2 minutes to fully boot.
Now you can connect to it using your favorite terminal:
ssh pi@rpi.local
Change the username (pi
) and the hostname (rpi
) to what you have chosen in the options dialog. You can also use the IP address of the Pi. Take a look in the device list of your router to find out what IP was assigned to it.
To update the packages and your Pi to the latest version run the following command:
sudo apt update && sudo apt full-upgrade
Important: make sure to reboot before advancing to the next step. Unlike some experiences you've made a few years ago when installing device drivers, this isn't optional. If you skip it the installation of Docker will most likely fail.
sudo reboot
This will reboot your Pi and you are ready for the next step.
Before installing docker-compose
we'll use the simple install script from Docker itself to install Docker on our system. The following command is all that is needed to correctly install Docker on your Pi:
curl -sSL https://get.docker.com | sh
Because non-root user by default have no rights to run containers we'll add our current user (pi
) to the docker
user group so we don't need to use sudo every time we want to run a container.
sudo usermod -aG docker ${USER}
Run groups ${USER}
to check if this has worked as expected. At the end of the line you should see the user group you just added.
docker-compose
The official docs explain how you can manually download the binary to get docker-compose
installed on your linux machine.
But: docker-compose
is also availabe as a Python package. I've found the installation with pip3
much easier, but feel free to follow the official guide.
The first command installs the required dependencies for python3
and pip3
, the second installs python3
and pip3
itself.
sudo apt install libffi-dev libssl-dev python3-devsudo apt install python3 python3-pip
Your system is now ready to install docker-compose
with pip3
:
sudo pip3 install docker-compose
I highly recommend to enable the Docker system service. This makes sure Docker is automatically started whenever you reboot your system.
It will also start up containers that have a restart-policy of always
or unless-stopped.
We'll configure our Home Assistant container like this.
Run the following command to enable the Docker system service:
sudo systemctl enable docker
Now to the final part, running Home Assistant in a Docker container which you can than access from your local network.
Let's create a file called docker-compose.yml
in a folder called docker/homeAssistant
placed in your home folder, so our structure will look like this:
pi@rpi:~ $ tree -L 3.└── docker └── homeAssistant └── docker-compose.yml 2 directories, 1 file
Put the following contents in the docker-compose.yml
file. You'll probably need to change the timezone to match yours. If you've used another directory structure make sure to also change your volumes configuration, too.
---version: '2.1'services: homeassistant: image: lscr.io/linuxserver/homeassistant container_name: homeassistant network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin volumes: - /home/pi/docker/homeAssistant/data:/config restart: unless-stopped
The last option restart: unless-stopped
makes sure to boot our container back up after rebooting your Pi unless you have manuallly stopped the container.
Now, in theory, you should be ready to start up your container and begin configuring Home Assistant.
From the directory /home/pi/docker/homeAssistant
run:
sudo docker-compose up -d
The -d
flag runs the container in detached
mode in the background.
If you see no errors, congratulations! You can now access the Home Assistant management backend by navigation to http://rpi.local:8123
(if you have used another hostname adjust the URL accordingly). You can now start the onboarding process, for this I highly recommend the official documentation.
I hope this post helped you! If you have any questions, hit me up on Twitter 😊.