Reverse Proxy pour HomeAssistant sur Synology
Après avoir mis en place HomeAssistant dans Docker, vous pouvez maintenant y accéder.
Cependant, ce n’est pas très facile d’accéder à sa domotique avec une adresse du type http://192.168.1.5:8123, et ce n’est pas non plus pratique à retenir.
Rassurez-vous, il existe un moyen assez simple pour remédier à cela : le reverse proxy !
Et ça tombe bien, vous avez déjà le nécessaire : un NAS Synology !
Ce petit guide est le fruit de mon utilisation personnelle. Il est également basé sur le dernier DSM disponible à la date de la rédaction de ce guide (6.2).
Prérequis
Avant de pouvoir configurer notre reverse proxy, vous devez disposer :
- d’une adresse IP fixe sur votre synology
- d’une adresse IP fixe sur HomeAssistant
- d’un nom de domaine (de quelque type que ce soit)
- d’un certificat SSL valide
Configuration du reverse proxy
La configuration est relativement simple, comme vous allez pouvoir le voir au travers de ce petit guide.
Tout d’abord, connectez-vous sur votre Synology, puis rendez-vous dans le Panneau de configuration
Si ce n’est pas déjà fait, activez le Mode avancé du Panneau de configuration, afin d’afficher l’intégralité des paramètres du NAS
Cliquez ensuite sur Portail des applications dans la rubrique Applications
Cliquez à présent sur l’onglet Proxy inversé. C’est ici que vous trouverez la liste des configurations reverse que vous avez ou configurerez
Maintenant, cliquez sur Créer, afin d’ouvrir la fenêtre permettant de configurer le Reverse Proxy
Cette fenêtre est l’endroit où vous allez pouvoir définir tous les paramètres liés à votre besoin.
Au tout début, je vous ai parlé dans les prérequis, d’un nom de domaine, et d’une IP fixe pour votre HomeAssistant. C’est ici qu’ils vont servir.
La première ligne, c’est la description. Vous pouvez mettre ce qu’il vous plaira. Ça n’a que peu d’importance.
Exemple : HomeAssistant
Partie Source
La deuxième chose à configurer, c’est le protocole attendu. Ici, nous voulons gérer les connexion sécurisée, en HTTPS. Logiquement, c’est cette valeur qu’il faudra sélectionner.
La troisième ligne, c’est le nom de domaine que vous avez qu’il vous faut renseigner. Attention à ne pas vous tromper ! Il n’est pas sensible à la casse, mais une erreur de saisie empêchera le bon fonctionnement.
Exemple : mondomaine.com
Le quatrième champ à configurer, c’est le port sur lequel on attend ces connexions. Ce peut être à peu près n’importe quel port. Ce qui nous intéresse ici, c’est le port par défaut pour le HTTPS, le port 443.
Vous avez ensuite la possibilité de cocher deux cases, HSTS et HTTP/2. On va les cocher. Je vous invite à cliquer sur les liens si vous voulez en savoir plus.
Partie Destination
Après avoir configuré la partie réception de la connexion, il faut maintenant l’envoyer quelque part. C’est là que l’adresse IP fixe de votre installation HomeAssistant intervient.
Cette partie est un peu similaire à celle de la source, et se compose de trois champs.
Le premier champ, est le type de connexion. Cette fois encore, cela peut être HTTP ou HTTPS.
Cette fois, nous allons utiliser le protocole HTTP, car nous n’avons pas besoin de chiffrer la connexion entre le NAS et HomeAssistant.
Le deuxième champ, c’est celui de l’adresse IP (fixe) de HomeAssistant.
Exemple : 192.168.1.5
Le troisième et dernier champ, c’est le port de HomeAssistant. Par défaut, c’est le port 8123. Si vous ne l’avez pas modifié, utilisez celui-ci. Dans le cas contraire, renseignez le port que vous avez configuré.
Pour vous donner un aperçu, voici ce que donne la configuration sur mon NAS Synology
Et voilà ! C’est fini !
Uniquement pour la partie des paramétrages généraux.
Paramétrages avancés
Pour fonctionner correctement avec le reverse proxy, il est nécessaire de configurer des Headers spécifiques dans le reverse proxy.
Pour cela, cliquez sur l’onglet En-tête personnalisé
Il vous faut ensuite ajouter des éléments en particulier. Pour vous faciliter les choses, je vous fait une liste que vous pouvez copier/coller :
Nom de l’en-tête
Upgrade
Connection
X-Forwarded-For
X-Forwarded-Host
X-Real-IP
Host
Valeur
$http_upgrade
$connection_upgrade
$proxy_add_x_forwarded_for
$server_name
$remote_addr
$host
Cette configuration permettra, notamment aux WebSockets de HomeAssistant de fonctionner correctement.
Voilà à quoi cela doit correspondre une fois terminé
Et voilà !
Cette fois, c’est bel et bien terminé !