# Installation avec docker compose et raspberry pi # Docker
Voici comment installer docker et docker-compose sur un raspberry Pi Pour plus d'informations et de documentation, n'hésitez pas à visiter leur site web : [https://docs.docker.com/](https://docs.docker.com/) ### 1. Install Docker `sudo curl -sSL https://get.docker.com | sh` ### [](https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl#2-add-permission-to-pi-user-to-run-docker-commands)2. Add permission to Pi User to run Docker Commands `sudo usermod -aG docker pi` ### [](https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl#3-test-docker-installation)3. Test Docker installation `sudo docker run hello-world` ### [](https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl#4-important-install-proper-dependencies)4. IMPORTANT! Install proper dependencies `sudo apt install -y libffi-dev libssl-dev` `sudo apt install -y python3 python3-pip` `sudo apt remove python-configparser` ### [](https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl#5-install-docker-compose)5. Install Docker Compose `sudo pip3 -v install docker-compose` # Home Assistant Home assistant est un système de domotique puissant qui permet d'avoir une maison connectée. Vous pourrez trouver toutes les informations de projet open-source à cette adresse : [https://www.home-assistant.io/](https://www.home-assistant.io/) L'installation sur rapsberry pi peut se faire de plusieurs manières comme indiquée sur le site mais nous le verrons sous docker-compose ici à condition d'avoir installé docker et docker-compose comme vu sur ce [tutoriel ](https://kb.numericare.fr/books/raspberry/page/docker) ##### Paramétrage, pré-requis Il faut créer un dossier docker :
sudo mkdir -p /opt/docker
Ensuite il faut créer un fichier pour déployer le tout de manière automatique. Ce fichier permet d'installer Home Assistant et permettra également l'installation automatique d'autres conteneurs (Node-Red, Mosquitto, ...) qui seront utiles pour notre box domotique
sudo nano /opt/docker/docker-compose.yml
Copié et collé le contenu ci-dessous en modifiant les paramètres selon votre réseau :
version: '3'
services:
homeassistant:
image: homeassistant/raspberrypi4-homeassistant:0.116.3 \#version de Home Assistant
container\_name: homeassistant
logging:
driver: "json-file"
options:
max-size: "50M"
max-file: "5"
volumes:
- /opt/docker/homeassistant/config:/config
- /etc/localtime:/etc/localtime:ro
devices:
- /dev/Z-Wave:/dev/Z-Wave \#clé USB domotique (Z-Wave)
network\_mode: host
restart: always
ports:
- 8123:8123
mosquitto:
build:
context: ./mosquitto/build/
dockerfile: dockerfile
container\_name: mosquitto
ports:
- 1883:1883
- 9883:9883
- 10883:10883
- 11883:11883
volumes:
- /opt/docker/mosquitto/data:/mosquitto/data
- /opt/docker/mosquitto/logs:/mosquitto/logs
- /opt/docker/mosquitto/config:/mosquitto/config
- /opt/docker/mosquitto/ca_certificates:/mosquitto/ca_certificates
- /opt/docker/mosquitto/certs:/mosquitto/certs
- /opt/docker/mosquitto/config/conf.d:/mosquitto/config/conf.d
- /opt/docker/mosquitto/build:/mosquitto/build
restart: always
node-red:
image: nodered/node-red:1.2.1-12 \#version de node-red
container\_name: node-red
environment:
- TZ=Europe/Paris
devices:
- /dev/Enocean:/dev/Enocean \#clé domotique Enocean
ports:
- 1880:1880
volumes:
- /opt/docker/node-red:/data
restart: always

Vous pourrez trouver les versions des images de home assistant, node-red, ... à ces adresses selon votre configuration matérielle : - Home Assistant : [https://hub.docker.com/r/homeassistant/home-assistant/tags](https://hub.docker.com/r/homeassistant/home-assistant/tags) - Node-Red ; [https://hub.docker.com/r/nodered/node-red/tags](https://hub.docker.com/r/nodered/node-red/tags)

Si vous décidez de mettre à jour les versions de Home Assistant et/ou Node-Red, allez chercher sur le site ci-dessus le tag de la version souhaitée. Placez-vous à l'endroit où se trouve le fichier docker-compose.yml et faites un :
sudo docker-compose up -d homeassistant
\#ou nodered si vous voulez le mettre à jour
##### Persistent USB Devices Pour les devices USB que vous pourrez intégrer à Home Assistant, je vous recommande fortement d'utiliser les règles udev afin que leur nom ne changent pas après un reboot ! Pour ce faire, trouver le nom du constructeur de la clé et son ID. J'ai une clé Z-Wave et une Enocean.
lsusb
Voilà le résultat :
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 004: ID 0658:0200 Sigma Designs, Inc. Aeotec Z-Stick Gen5 (ZW090) - UZB
Bus 001 Device 003: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Après l'ID on voit des séries de 4 chiffres/lettres 0403:6001. La première série correspond au Vendor et la deuxième au périphérique Pour créer une clé USB en mode persistent, il suffit de créer ce fichier :
sudo nano /etc/udev/rules.d/99-usb-serial.rules
Et copier coller le contenu ci-dessous en remplaçant les séries de chiffres par les vôtres :
\#Z-Wave
SUBSYSTEM=="tty", ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", SYMLINK+="Z-Wave", GROUP="dialout", MODE="0777"
\#Enocean
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="Enocean", GROUP="dialout", MODE="0777"
Après un reboot de la machine, on peut voir les SYMLINK USB crées en tapant lsub ##### Installation de Home Assistant Maintenant que le paramétrage est terminé, il va falloir installer home-assistant. Tout d'abord il faut se placer à l'endroit où se trouve le fichier docker-compose.yml Ensuite, entrer la ligne de commande suivante :
sudo docker-compose up homeassistant
La première installation peut prendre jusqu'à 20 minutes. Une fois l'installation terminée, vous pouvez fermer et quitter le conteneur en faisant un crtl+c si tout s'est bien déroulé. Ensuiste relancer la même commande en ajouter la tag -d pour permettre au démon de lancer le conteneur en tâche de fond :
sudo docker-compose up -d homeassistant

Et vous avez accès à l'interface graphique de Home Assistant via cette URL : http://adresseipduraspberry:8123/