Article de la série « Mon ordinateur Ubuntu »
Actions et articles créés avec l’aide de Claude.ai et 100% testé et ajusté par moi.
Home Assistant est une plateforme domotique open source puissante. Il en existe plusieurs variantes d’installation. Cet article explique comment installer la variante « Container » sur un ordinateur Ubuntu qui fait déjà tourner d’autres services Docker, avec un accès sécurisé depuis l’extérieur via Nginx Proxy Manager.
Quelle variante de Home Assistant choisir ?
Il existe trois grandes variantes :
- HA OS – remplace complètement l’OS de la machine. À réserver à un appareil dédié (Raspberry Pi par exemple).
- HA Supervised – donne accès au magasin d’add-ons officiel, mais officiellement supporté sur Debian uniquement. Risques de friction sur Ubuntu.
- HA Container – s’installe comme n’importe quel container Docker. Pas d’accès au magasin d’add-ons natif, mais les add-ons les plus courants ont un équivalent en container Docker séparé. C’est la solution la plus cohérente si tu as déjà un PC Ubuntu avec Docker et Portainer.
Ce dont tu as besoin avant de commencer
- Un PC Ubuntu avec Docker et Portainer installés – voir Docker et Portainer sur Ubuntu
- Nginx Proxy Manager opérationnel – voir accès sécurisé à mon PC de l’extérieur
- Un nom de domaine avec un enregistrement A pointant vers ton IP publique
- Rclone configuré pour les sauvegardes – voir Sauvegarder ses containers Docker automatiquement avec Rclone
Étape 1 – Créer les répertoires
Sur le PC Linux, ouvre un terminal et crée les répertoires qui accueilleront les données de Home Assistant :
sudo mkdir /home/USER/docker/home-assistant/
sudo mkdir /home/USER/docker/home-assistant/config/
C’est cohérent avec l’organisation décrite dans Docker et Portainer : regrouper les données. Toutes les données de HA seront dans ce dossier, et donc automatiquement couvertes par ta sauvegarde rclone.
Étape 2 – Déployer la stack dans Portainer
Connecte-toi à Portainer (https://TON-IP:9443), clique sur ton environnement « local », puis « Stacks » dans le menu gauche. Clique sur « + Add stack » et donne-lui le nom home-assistant.
Dans la zone « Web editor », colle ce YAML :
services:
home-assistant:
container_name: home-assistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- /home/USER/docker/home-assistant/config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host
environment:
TZ: Europe/Paris
Quelques points importants sur ce YAML :
network_mode: host– HA utilise directement le réseau du PC, sans isolation. C’est recommandé par le projet HA pour la découverte automatique des appareils sur le réseau local.privileged: true– nécessaire pour accéder au matériel (Bluetooth, USB, etc.)./run/dbus:/run/dbus:ro– permet à HA de communiquer avec les services système, utile pour Bluetooth notamment.- Le volume
letsencryptn’est pas nécessaire ici – c’est Nginx Proxy Manager qui gère les certificats SSL.
Clique sur « Deploy the stack ». Au bout de quelques secondes, HA est accessible sur ton réseau local via http://TON-IP:8123.
Étape 3 – Accès externe via Nginx Proxy Manager
Ouvrir le port 8123
Dans l’interface de gestion de ton routeur, ajoute une règle de redirection de port :
- Port externe : 8123
- IP locale de destination : l’IP fixe de ton PC Linux
- Port interne : 8123
- Protocole : TCP
Créer le proxy host dans NPM
Connecte-toi à NPM (http://TON-IP:81), va dans « Proxy Hosts » et clique sur « Add Proxy Host ».
Onglet « Details » :
- Domain Names :
ha.TON-DOMAINE.com - Scheme :
http - Forward Name/IP :
127.0.0.1 - Forward Port :
8123 - Coche « Block Common Exploits » et « Websockets Support »
Onglet « SSL » :
- SSL Certificate : « Request a new SSL Certificate »
- Coche « Force SSL », « HTTP/2 Support » et « HSTS Enabled »
Clique sur « Save ».
Le point spécifique à Home Assistant – configuration.yaml
Contrairement aux autres containers, HA intègre une protection contre les accès via proxy non déclarés. Sans configuration supplémentaire, tu obtiendras une erreur 400 (Bad Request) en accédant via https://ha.TON-DOMAINE.com.
Il faut déclarer NPM comme proxy de confiance. Ouvre le fichier de configuration :
sudo nano /home/USER/docker/home-assistant/config/configuration.yaml
Et ajoute ces lignes à la fin :
http:
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1
- 172.16.0.0/12
Attention à l’indentation : 2 espaces par niveau, pas de tabulations. YAML est strict là-dessus.
Redémarre le container HA dans Portainer. HA est maintenant accessible depuis l’extérieur via https://ha.TON-DOMAINE.com.
Étape 4 – Premier démarrage et assistant de configuration
Au premier accès, HA t’ouvre automatiquement l’assistant de démarrage. Tu y crées ton compte administrateur, choisis la langue, le fuseau horaire et la localisation.
Bonne surprise : HA scanne ton réseau local et détecte automatiquement les appareils compatibles. Sur mon réseau il a trouvé Bluetooth, Google Cast, Frontier Silicon, Matter, Tado, Thread et UPnP – sans aucune configuration de ma part. La connexion effective de ces appareils est une étape ultérieure, mais la détection automatique donne un bon aperçu du potentiel.
Étape 5 – Sauvegardes
Si tu as déjà mis en place la sauvegarde automatique avec rclone décrite dans Sauvegarder ses containers Docker automatiquement avec Rclone, il n’y a rien à faire de plus. Le dossier /home/USER/docker/home-assistant/ est automatiquement inclus dans la sauvegarde quotidienne.
Pour tester la restauration, la procédure est identique à celle décrite dans Restauration de containers Docker avec Rclone.
Et ensuite ?
Home Assistant est installé et opérationnel. Les prochaines étapes possibles :
Ajouter des containers Docker complémentaires (MQTT, Zigbee2MQTT, etc.) selon les besoins
Connecter les appareils détectés (Tado, Google Cast, etc.)
Migrer des appareils depuis une box domotique existante
ajouter un dongle Zigbee et ajouter des nouveaux appareils (j’ai trois ampoules et quelques capteurs d’ouverture de porte).
Commentaires récents