Contrôlez votre domotique à distance avec Raspberry Pi et Traefik Hub


  • Français


  • Au fil des ans, plusieurs amis m’ont demandé des conseils sur la gestion de leurs réseaux domestiques. Dans la plupart des cas, ils mettent en place de la domotique et souhaitent accéder à leurs services depuis l’extérieur.

    A chaque fois que je les aidais, chacun faisait la même remarque : « Vous plaisantez ? Ça ne doit pas être si compliqué de publier une simple application !

    La publication d’applications qui ne mettent pas votre réseau ou votre cluster en danger peut en effet être assez compliquée. Lorsque nous avons commencé à travailler sur Hub Traefik—le dernier produit de Laboratoires Traefik—Je savais que cela changerait la donne pour la publication d’applications.

    Cet article démontre la complexité des services de publication et comment Traefik Hub vous facilite la vie. J’utilise l’exemple de la mise en place d’un serveur pour contrôler votre domotique à distance avec Traefik Hub fonctionnant sur un Raspberry Pi.

    Le défi

    Mettre en place un serveur pour gérer sa domotique c’est bien, mais pouvoir le contrôler à distance depuis n’importe où dans le monde en utilisant uniquement son téléphone portable, c’est encore mieux !

    Cependant, un grand pouvoir s’accompagne d’une grande responsabilité. Si vous souhaitez accéder à votre réseau local depuis l’extérieur, vous feriez mieux de vous assurer qu’il est résilient et que vous êtes le seul à y avoir accès.

    Tout d’abord, je vais examiner les étapes que vous prendriez normalement pour y parvenir.

    Joignez votre Home Assistant à distance à tout moment

    Assistante à domicile est une solution bien connue pour gérer les appareils domotiques. C’est un projet open source écrit en Python. Il vous permet d’avoir la domotique avec une installation locale : Aucune donnée sur le cloud et tout est gardé privé. Je recommande cet excellent article pour vous aider à installer Home Assistant sur votre Raspberry Pi en utilisant Docker.

    Pour atteindre votre Home Assistant de l’extérieur, vous devez exposer votre Raspberry Pi à Internet. Pour ce faire, vous devez :

    Noter: La plupart des fournisseurs d’accès Internet attribuent des adresses IP publiques dynamiques. À chaque redémarrage de votre routeur, votre adresse IP changera probablement. Pour construire un système résilient, vous auriez également besoin d’un domaine dynamique.

    Le chiffrement compte

    Lorsque vous communiquez avec votre serveur, vous envoyez des données sensibles, telles que votre nom d’utilisateur et votre mot de passe. Vous devez vérifier et crypter la communication à l’aide d’un Certificat TLS pour éviter que ces données ne soient volées.

    Cela nécessite:

    TL; DR

    Pour résumer, après avoir installé Home Assistant sur votre Raspberry Pi, vous devez :

    • Obtenez l’IP publique de votre routeur.
    • Créez un transfert de port vers votre Raspberry Pi.
    • Achetez un nom de domaine.
    • Créez un domaine dynamique.
    • Installez un proxy inverse et configurez-le pour un accès chiffré à l’aide d’un certificat TLS.

    Maintenant, imaginez si vous pouviez ignorer toutes les étapes ci-dessus et publier vos services en quelques clics !

    Traefik Hub à la rescousse

    Hub Traefik est une plate-forme SaaS de mise en réseau cloud native qui permet aux utilisateurs de publier rapidement leurs services en périphérie. Grâce à Traefik Hub, vous pouvez publier votre application Home Assistant en quelques clics.

    Vous souvenez-vous des défis que j’ai mentionnés plus tôt ? Grattez ça. Une fois que vous avez installé Home Assistant sur votre Raspberry Pi, tout ce que vous avez à faire est de connecter votre Raspberry Pi à Traefik Hub. Traefik Hub gère tout pour vous, y compris :

    • Rendre votre service accessible depuis Internet.
    • Fournir un domaine dynamique (gratuitement).
    • Crypter la communication avec un certificat TLS et une politique de contrôle d’accès.

    Et maintenant que j’ai présenté Traefik Hub, je vais m’attaquer à sa configuration.

    Étape 1 : Connectez votre Raspberry Pi à Traefik Hub

    Tout d’abord, dirigez-vous vers Traefik Hub et S’inscrire pour un compte gratuit. Vous pouvez vous inscrire via Google ou GitHub.

    Vous devez ajouter un nouvel agent pour connecter votre Raspberry Pi à Traefik Hub.

    (Nicolas Mengin, CC BY-SA 4.0)

    Traefik Hub fournit plusieurs extraits qui vous permettent de repartir de zéro.

    Étant donné que la configuration de Home Assistant est un peu complexe, vous pouvez obtenir votre jeton à partir de l’interface utilisateur du Hub et utiliser le script ci-dessous pour cet exemple. Le jeton vous permet de connecter votre agent à Traefik Hub. Traefik Hub attache ensuite cet agent à votre compte, et vous pouvez commencer à publier vos services.

    Voici le scénario :

    version: '3'

    networks:
      traefik: {}

    services:
      homeassistant:
        container_name: homeassistant
        image: "ghcr.io/home-assistant/home-assistant:stable"
        volumes:
                      # /!\\ Mount the custom configuration file described below /!\\
          - ./configuration.yaml:/config/configuration.yaml
          - /etc/localtime:/etc/localtime:ro
        restart: unless-stopped
        privileged: true
                    networks:
          - traefik
                    ports:
                            - 8123
     
            # Start the agent with the latest version
      hub-agent:
        image: ghcr.io/traefik/hub-agent-traefik:v0.7.2
        restart: "on-failure"
        container_name: hub-agent
        networks:
          - traefik
                    command:
          - run
          - --hub.token=<YOUR_TOKEN> # Set your token here
          - --auth-server.advertise-url=http://hub-agent
          - --traefik.host=traefik
          - --traefik.tls.insecure=true
          - --hub.url=https://platform.hub.traefik.io/agent
          - --hub.ui.url=https://hub.traefik.io
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
        depends_on:
          - traefik

      # Start Traefik with the latest version
      traefik:
        image: traefik:v2.8
        container_name: traefik
        networks:
          - traefik
        command:
          # Enable Hub communication (open the port 9900 and 9901 by default)
          - --experimental.hub=true
          - --hub.tls.insecure=true
          - --metrics.prometheus.addrouterslabels=true

    # ./configuration.yaml to mount on your home assistant container
    # in /config/configuration.yaml

    # These modifications are required by home assistant to be exposed using
    # a third party software such as the Traefik Hub agent

    # Loads default set of integrations. Do not remove.
    default_config:

    http:
      ip_ban_enabled: true
      login_attempts_threshold: 5
      use_x_forwarded_for: true
      trusted_proxies:
        - 192.168.1.0/24
        - 172.18.0.0/24
        - 127.0.0.1
        - ::1
        - fe80::/64
        - fe00::/64
        - fd00::/64

    # Text to speech
    tts:
      - platform: google_translate

    Étape 2 : Publiez votre service

    Une fois que vous avez installé l’agent sur votre Raspberry Pi, Traefik Hub découvre tous les services exécutés sur votre cluster afin que vous puissiez les publier sans fouiller dans vos fichiers de configuration.

    (Nicolas Mengin, CC BY-SA 4.0)

    Sélectionnez votre service Home Assistant, puis cliquez sur le Enregistrer et publier bouton pour le publier.

    (Nicolas Mengin, CC BY-SA 4.0)

    Et maintenant, laissez la magie opérer !

    (Nicolas Mengin, CC BY-SA 4.0)

    Une fois que Hub vous a informé que votre service a été publié, vous pouvez y accéder depuis Internet en utilisant le domaine que Traefik Hub a généré. La connexion est vérifiable et cryptée, et votre Home Assistant reste joignable même si votre adresse IP publique change.

    (Nicolas Mengin, CC BY-SA 4.0)

    Dans les coulisses

    Votre candidature est publiée. Ensuite, je discuterai de quelques éléments dont Traefik Hub s’occupe dans les coulisses pour offrir une expérience transparente et des options de configuration pratiques.

    Instance Traefik

    Lorsque vous avez installé l’agent Traefik Hub, vous avez certainement remarqué qu’il est livré avec une instance Traefik Proxy.

    Traefik Hub crée un tunnel entre sa plateforme et l’agent que vous avez installé sur votre Raspberry Pi pour publier votre service sur internet. L’agent transmet les requêtes à l’open source Proxy Traefikqui est utilisé comme Contrôleur d’entrée. Traefik Hub gère à la fois le domaine et le certificat TLS, et il partage le certificat avec votre instance Traefik pour lui permettre d’effectuer la terminaison TLS.

    (Nicolas Mengin, CC BY-SA 4.0)

    Politique de contrôle d’accès

    Un autre point à retenir est qu’une application Home Assistant déployée est livrée avec son propre système de connexion. Cependant, lorsque vous publiez un service à l’aide de Traefik Hub, vous pouvez restreindre davantage l’accès en utilisant un Politique de contrôle d’accès tels que JWT et Basic Auth.

    (Nicolas Mengin, CC BY-SA 4.0)

    Kubernetes

    Si vous êtes un utilisateur Kubernetes, vous pouvez également publier vos services Kubernetes. Traefik Hub peut gérer les services Kubernetes via l’interface utilisateur ou un CRD dédié.

    Gérer et surveiller

    Traefik Hub fournit également une interface utilisateur Web qui vous permet de gérer et de surveiller l’exposition des services.

    (Nicolas Mengin, CC BY-SA 4.0)

    Emballer

    Cet article a commencé par parcourir une liste longue et compliquée de tâches qui accompagnent la publication d’une application via une connexion cryptée et vérifiable. La mise en place de la domotique est un excellent exemple de ce niveau de complexité. Mais quand les choses semblent incroyablement difficiles, il y a toujours une alternative plus simple ! Traefik Hub vous simplifie la vie en prenant en charge la plupart des tâches d’exploitation banales, en gagnant du temps et en permettant aux développeurs de se concentrer sur la création d’applications.

    Vous pouvez désormais allumer les lumières de votre maison, même si vous êtes à l’autre bout du monde !

    Si vous souhaitez en savoir plus sur Traefik Hub, consultez ceci article de démarrage. Traefik Hub est actuellement en version bêta, alors n’hésitez pas à l’essayer et à nous faire part de vos commentaires. Vous pouvez le faire directement dans l’interface utilisateur.

    J’espère que cet article vous a été utile et merci de l’avoir lu !

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code