Comment installer le contrôleur UniFi sur Docker avec proxy inverse (Traefik)?

Dans ce guide, je vais vous montrer comment installer le contrôleur UniFi sur Docker avec le proxy inverse Traefik. Les périphériques UniFi nécessitent un logiciel de contrôleur, ce qui est une chose de plus à déplacer et à restaurer lors du changement de serveur / système. Avec docker, tout ce que vous avez à faire est de configurer le système hôte et d'exécuter le docker. Toutes vos applications avec leurs paramètres peuvent être opérationnelles en quelques minutes. Ce guide Docker sur les contrôleurs UniFi montre à quel point il est facile de réaliser cela avec Docker. De plus, nous allons également placer le logiciel de contrôleur derrière le proxy inverse Traefik avec des certificats SSL automatiques LetsEncrypt.

Principes UniFi

Je ne suis pas un expert en UniFi ou en réseau, mais voici quelques bases pour les débutants. Un routeur Internet domestique typique regroupe 3 unités différentes: une passerelle Internet, un commutateur et un point d'accès sans fil. La plupart des périphériques d'entreprise ne fonctionnent pas de cette manière. Ils les ont divisés en unités individuelles. Cela permet un meilleur contrôle et une plus grande évolutivité. Par exemple, vous pouvez continuer à ajouter des points d'accès sans fil, au lieu d'un nouveau routeur, pour étendre votre réseau Wifi dans de nouvelles zones. Il y a plusieurs autres avantages, mais aller au-delà de ceux-ci n'est pas de la portée de cet article.

La gamme de matériel de mise en réseau UniFi est vivement recommandée par de nombreux «prosommateurs», même pour un usage domestique. Voici un exemple de schéma montrant un scénario d'installation typique avec UniFi. Notez que vous pouvez ajouter autant de points d'accès câblés que nécessaire.

Exemple de configuration UniFi

Vous pouvez également ajouter des points d'accès sans fil (si vous ne pouvez pas utiliser de câbles Ethernet), ce qui crée un réseau «Mesh». Les points d'accès câblés sont toujours préférés aux réseaux «maillés» en raison de leur fiabilité et de leur rapidité. Par conséquent, je préfère ma configuration UniFi aux produits Mesh tels que Google Wifi, Eero, Orbi, etc. Je recommande vivement cette vidéo d'introduction qui décrit les produits UniFi.

Certains peuvent considérer la configuration UniFi comme une surpopulation pour un usage domestique. J'étais l'un des leurs. Avec la croissance de l'électronique domestique intelligente, j'ai réalisé la nécessité d'un contrôle accru de mon réseau domestique du point de vue de la confidentialité et de la sécurité. Par exemple, le fait de placer vos périphériques domestiques intelligents qui appellent un réseau domestique sur un VLAN distinct l'isole des autres périphériques de votre réseau, offrant ainsi une couche de sécurité. En outre, ils ne pourront pas détecter la présence d’autres périphériques sur votre réseau. Ma configuration actuelle UniFi comprend:

  1. Passerelle de sécurité UniFi (USG)
  2. UniFi US-16-150W Commutateur
  3. UniFi AP AC Pro – 2 d'entre eux

Les points d'accès UniFi peuvent être alimentés via Ethernet (PoE). Cela signifie que si vous avez un câble CAT 6 connectant votre point d'accès à un commutateur compatible PoE, vous n'avez pas besoin d'une source d'alimentation supplémentaire à l'emplacement du point d'accès. Voyons maintenant comment installer le logiciel Unifi Controller sur Docker et gérer votre réseau UniFi.

Logiciel de contrôleur UniFi

Les appareils UniFi nécessitent un logiciel UniFi Controller pour les gérer et gérer le réseau. Ce logiciel peut être exécuté de différentes manières: Windows, Mac, Ubuntu / Linux. De plus, vous pouvez acheter une clé de nuage UniFi dans laquelle le logiciel du contrôleur est intégré et qui se branche directement sur le commutateur UniFi.

J'ai commencé par utiliser le logiciel de contrôleur UniFi sous Windows. C’était un cauchemar et commençait à ressentir les remords de certains acheteurs. Ensuite, je mets le logiciel du contrôleur sur mon serveur Ubuntu Home. Voila! C'était tellement plus stable et a très bien fonctionné. C'est comme ça que je l'utilisais depuis un moment. Lorsque Ubuntu 18.04 est sorti, j'ai migré vers le serveur multimédia domestique basé sur Docker. J'ai même ajouté un proxy inverse Traefik à l'avant pour la confidentialité, la commodité, la sécurité et la prise en charge de SSL. J'ai décidé d'étendre cette configuration et d'exécuter l'image de LinuxServer UniFi Controller sur mon Docker. Il a été difficile de comprendre la partie sur le proxy inverse de Traefik. Mais tout fonctionne bien maintenant.

Proxy inversé UniFi Docker - Tableau de bord du contrôleur UniFi

Tableau de bord du contrôleur UniFi

Je sais que beaucoup d'entre vous recherchent un guide sur la mise en œuvre d'une bonne solution de proxy inverse pour le logiciel UniFi Controller. Espérons que ce guide de proxy inverse UniFi Docker utilisant Traefik est utile. Alors, commençons.

Guides recommandés:

Installer le contrôleur UniFi sur Docker

Étape 1: Prérequis

Tout d’abord, assurez-vous que vous avez configuré votre serveur Ubuntu avec Docker. Ensuite, assurez-vous que le proxy inverse Traefik est correctement implémenté et que l'interface Web de surveillance Traefik est active. Suivre ces deux guides est une nécessité absolue avant de procéder avec ce guide de docker de contrôleur UniFi.

Dans ce guide, nous allons placer le contrôleur UniFi dans un sous-domaine distinct: unifi.example.com. Les ports 3478, 10001, 8080, 8081, 8443, 8880 et 6789 doivent être libres sur le serveur hôte Ubuntu. Vous aurez également besoin d’un nom de domaine ou d’un nom DDNS, comme décrit dans mon guide Traefik. Maintenant, allons de l'avant et installons UniFi Controller sur Docker avec le support du proxy inverse de Traefik.

Tout cela est accompli très facilement avec Docker Compose, sur lequel est construit mon serveur multimédia Docker. Je suppose que vous avez déjà créé un réseau externe appelé traefik_proxy. Sinon, suivez mon tutoriel Traefik et revenez ici. De plus, je suppose que vous avez déjà un fichier de composition de docker et que celui-ci possède les réseaux définis comme suit:

réseaux:
  traefik_proxy:
    externe:
      nom: traefik_proxy
  défaut:
    conducteur: pont

Vous devriez l'avoir si vous remplissez toutes les conditions énumérées précédemment.

Étape 2: Configuration du contrôleur UniFi à l'aide de Docker Compose

Pour le proxy UniFI Controller derrière Traefik, voici le code à ajouter (copier / coller) au fichier docker-compose (faites attention aux espaces vides au début de chaque ligne):

    unifi:
    nom d'hôte: unifi
    image: linuxserver / unifi: dernier
    redémarrer: toujours
    conteneur_nom: "unifi"
    volumes:
      - $ {USERDIR} / docker / unifi: / config
      - $ {USERDIR} / docker / shared: / shared
    ports:
      - cible: 3478
        publié: 3478
        protocole: udp
        mode: hôte
      - cible: 10001
        publié: 10001
        protocole: udp
        mode: hôte
      - cible: 8080
        publié: 8080
        protocole: tcp
        mode: hôte
      - cible: 8081
        publié: 8081
        protocole: tcp
        mode: hôte
      - cible: 8443
        publié: XXXX
        protocole: tcp
        mode: hôte
      - cible: 8880
        publié: 8880
        protocole: tcp
        mode: hôte
      - cible: 6789
        publié: 6789
        protocole: tcp
        mode: hôte
    réseaux:
      - traefik_proxy
    environnement:
      - PUID = $ {PUID}
      - PGID = $ {PGID}
      - TZ = $ {TZ}
    Étiquettes:
      - "traefik.enable = true"
      - "traefik.tags = frontend"
      - "traefik.frontend.passHostHeader = true"
      - "traefik.admin.backend = unifi"
      - "traefik.admin.frontend.rule = Hôte: unifi. $ {DOMAINNAME}"
      - "traefik.admin.port = 8443"
      - "traefik.admin.protocol = https"
      - "traefik.frontend.headers.SSLRedirect = true"
      - "traefik.frontend.headers.STSSeconds = 315360000"
      - "traefik.frontend.headers.browserXSSFilter = true"
      - "traefik.frontend.headers.contentTypeNosniff = true"
      - "traefik.frontend.headers.forceSTSHeader = true"
      - "traefik.frontend.headers.SSLHost = example.com"
      - "traefik.frontend.headers.STSIncludeSubdomains = true"
      - "traefik.frontend.headers.STSPreload = true"
      - "traefik.frontend.headers.frameDeny = true"

Remplacer / Configurer:

  1. XXXX – Il s’agit du port sur lequel votre contrôleur UniFi sera disponible à l’aide du navigateur Web. Il pourrait s'agir du même port que le conteneur: 8443 (doit être libre). Ce paramètre est facultatif. Passez en revue les autres points clés énumérés ici.
  2. Si vous ne souhaitez pas utiliser le proxy inverse Traefik, vous pouvez supprimer le bloc "réseaux" et le bloc "libellés" ou simplement définir traefik.enable étiquette à faux.
  3. USERDIR, NOM DE DOMAINE, PUID, PGID, et TZ sont des variables d'environnement définies comme décrit dans mon tutoriel Traefik
  4. $ {USERDIR} / docker / unifi est l'emplacement des données logicielles du contrôleur UniFi
  5. {USERDIR} / docker / shared est facultatif. C'est ici que je stocke certains des fichiers communs à plusieurs conteneurs.

Sauvez votre docker-compose.yml et sortir.

Étape 3: Étapes de configuration supplémentaires pour Traefik

Il fallait encore un changement pour que le proxy inverse Unifi Docker fonctionne. Je devais ajouter la ligne suivante à mon traefik.toml:

InsecureSkipVerify = true 

Ceci est expliqué dans mon tutoriel Traefik lié précédemment.

Étape 4: Exécutez Docker Compose et vérifiez

Ensuite, lancez le fichier de composition de votre menu fixe et vérifiez si les erreurs ne se trouvent pas dans les journaux:

docker-compose -f $ {USERDIR} /docker/docker-compose.yml up -d; docker-compose logs -tf --tail = "50" unifi

Si vous ne voyez aucun message d'erreur, appuyez sur Ctrl C pour quitter. UniFi WebUI devrait être disponible à https://unifi.example.com.

Guides recommandés:

Importation des paramètres précédents et dépannage

J'ai réussi à importer mes paramètres précédents. Cependant, mes points d’accès sont entrés dans une «boucle d’adoption». En d'autres termes, ils n'ont jamais fini d'adopter. Voici ce que je devais faire pour réparer la boucle d’adoption.

Je devais le faire Paramètres UniFI->Manette, activer Remplacer l'hôte en informant avec le nom d'hôte / IP du contrôleur, et indiquez l’adresse IP LAN du système hôte exécutant le contrôleur UniFi dans Docker, comme indiqué dans la capture d’écran ci-dessous.

Remplacer Inform Hostname / IP - Installer le contrôleur Unifi sur Docker

Remplacer Informer le nom d'hôte / IP

J'ai recréé le conteneur de docker UniFi et je suis revenu dans les affaires. Mon fichier de composition Docker complet pour UniFi Controller est disponible sur ma page GitHub.

UniFi Controller Docker Guide – Remarques de clôture

L'installation et l'exécution du contrôleur Unifi à l'aide de Docker simplifie considérablement le processus de configuration du logiciel du contrôleur UniFi. Pour augmenter la sécurité, vous pouvez ajouter une couche supplémentaire de HTTP Authentical à l'aide du traefik.frontend.auth.basic Étiquette Traefik. Ma configuration fonctionne sans problème depuis 3 mois maintenant. Et le processus de mise à niveau du contrôleur Docker UniFi est automatique si vous configurez Watchtower comme décrit dans mon guide de proxy inverse Traefik pour Docker. Je deviens lentement un grand fan des produits UniFi. Il était difficile de mettre en marche le logiciel de contrôle UniFi, mais avec Docker, c’était une simple promenade. Alors allez-y, installez le contrôleur UniFi sur Docker et vérifiez-le.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.