В этом руководстве я покажу вам, как установить контроллер UniFi на Docker с обратным прокси-сервером Traefik. Устройства UniFi требуют программного обеспечения контроллера, которое является еще одной вещью, которую нужно перемещать и восстанавливать при переключении серверов / систем. В Docker все, что вам нужно сделать, это настроить систему хоста и запустить Docker, чтобы создать все ваши приложения с их настройками, которые могут быть запущены за несколько минут. Это руководство по Docker контроллера UniFi показывает, как легко это сделать с помощью Docker. Мало того, мы также разместим программное обеспечение контроллера за обратным прокси-сервером Traefik с автоматическими SSL-сертификатами LetsEncrypt.
Основы UniFi
Я не эксперт по UniFi или сетям, но вот некоторые основы для новичков. Типичный домашний интернет-маршрутизатор включает в себя 3 разных устройства: интернет-шлюз, коммутатор и беспроводную точку доступа. Большинство устройств корпоративного класса не работают таким образом. Они разделили их на отдельные единицы. Это позволяет улучшить контроль и масштабируемость. Например, вы можете продолжать добавлять точки беспроводного доступа вместо нового маршрутизатора, чтобы расширить сеть Wifi в новых областях. Есть еще несколько преимуществ, но их рассмотрение выходит за рамки этого поста.
Многие сетевые устройства UniFi настоятельно рекомендуются многими «Prosumers» даже для домашнего использования. Вот пример схемы, которая показывает типичный сценарий установки с UniFi. Обратите внимание, что вы можете добавить столько проводных точек доступа, сколько необходимо.
Пример настройки UniFi
Вы также можете добавить точки доступа по беспроводной сети (если вы не можете использовать кабели Ethernet), которые создают сеть «Mesh». Проводные точки доступа всегда предпочтительнее «ячеистых» сетей из-за надежности и скорости. Поэтому я предпочитаю настройку UniFi над продуктами Mesh, такими как Google Wifi, Eero, Orbi и т.д. Я настоятельно рекомендую это вводное видео, описывающее продукты UniFi.
Некоторые могут считать настройку UniFi излишним для домашнего использования. Я был одним из них. С развитием умной домашней электроники я осознал необходимость большего контроля моей домашней сети с точки зрения конфиденциальности и безопасности. Например, размещение устройств «умный дом», которые звонят домой, в отдельную VLAN изолирует его от других устройств в сети, обеспечивая уровень безопасности. Кроме того, они не смогут прослушивать присутствие других устройств в вашей сети. Моя текущая настройка UniFi включает в себя:
Точки доступа UniFi могут получать питание через Ethernet (PoE). Это означает, что если у вас есть кабель CAT 6, соединяющий вашу точку доступа с коммутатором с поддержкой PoE, то вам не нужен дополнительный источник питания, где расположена точка доступа. Теперь давайте посмотрим, как установить программное обеспечение Unifi Controller на Docker и управлять своей сетью UniFi.
Программное обеспечение UniFi Controller
Устройства UniFi требуют программного обеспечения UniFi Controller для управления ими и сетью. Существует несколько способов запуска этого программного обеспечения: Windows, Mac, Ubuntu / Linux. Кроме того, вы можете приобрести облачный ключ UniFi, в который встроено программное обеспечение контроллера и который подключается непосредственно к коммутатору UniFi.
Я впервые начал с запуска программного обеспечения контроллера UniFi в Windows. Это был кошмар, и он начал чувствовать угрызения совести какого-то покупателя. Затем я установил программное обеспечение контроллера на свой домашний сервер Ubuntu. Вуаля! Это было намного более стабильно и прекрасно работало. Вот как я использовал это некоторое время. Когда вышла Ubuntu 18.04, я перешел на Home Media Server на базе Docker. Я даже добавил обратный прокси-сервер Traefik впереди для обеспечения конфиденциальности, удобства, безопасности и поддержки SSL. Я решил расширить эту настройку и решил запустить образ LinuxServer UniFi Controller на моем Docker. Это была борьба, чтобы выяснить часть обратного прокси Traefik. Но сейчас все работает отлично.
Панель управления контроллера UniFi
Я знаю, что многие из вас ищут руководство по внедрению хорошего решения обратного прокси для программного обеспечения UniFi Controller. Надеемся, что это руководство по обратному прокси UniFi Docker с использованием Traefik будет полезным. Итак, начнем.
Рекомендуемые руководства:
Установите контроллер UniFi на Docker
Шаг 1: Предпосылки
Во-первых, убедитесь, что у вас есть настройки Ubuntu Server с Docker. Затем убедитесь, что обратный прокси-сервер Traefik реализован правильно, а веб-интерфейс мониторинга Traefik активен. Далее, эти два руководства абсолютно необходимы перед тем, как приступить к использованию этого руководства по док-станции контроллера UniFi.
В этом руководстве мы собираемся поместить контроллер UniFi в отдельный поддомен: unifi.example.com. Порты 3478, 10001, 8080, 8081, 8443, 8880 и 6789 должны быть свободны на сервере Ubuntu хоста. Вам также понадобится доменное имя или имя DDNS, как описано в моем руководстве по Traefik. Теперь давайте продолжим и установим UniFi Controller на Docker с поддержкой обратного прокси-сервера от Traefik.
Все это очень легко выполняется с помощью Docker Compose, на котором построен мой медиасервер Docker. Я предполагаю, что вы уже создали внешнюю сеть под названием traefik_proxy
. Если нет, пожалуйста, следуйте моему учебнику Traefik и возвращайтесь сюда. Кроме того, я предполагаю, что у вас уже есть файл создания докера, и что он имеет сети, определенные следующим образом:
networks:
traefik_proxy:
external:
name: traefik_proxy
default:
driver: bridge
Это должно быть у вас, если вы выполнили все требования, перечисленные ранее.
Шаг 2: Настройте контроллер UniFi с помощью Docker Compose
Чтобы прокси-контроллер UniFi стоял за Traefik, вот код, который нужно добавить (copy-paste) в файл docker-compose (обратите внимание на пробелы в начале каждой строки):
unifi:
hostname: unifi
image: linuxserver/unifi:latest
restart: always
container_name: "unifi"
volumes:
- ${USERDIR}/docker/unifi:/config
- ${USERDIR}/docker/shared:/shared
ports:
- target: 3478
published: 3478
protocol: udp
mode: host
- target: 10001
published: 10001
protocol: udp
mode: host
- target: 8080
published: 8080
protocol: tcp
mode: host
- target: 8081
published: 8081
protocol: tcp
mode: host
- target: 8443
published: XXXX
protocol: tcp
mode: host
- target: 8880
published: 8880
protocol: tcp
mode: host
- target: 6789
published: 6789
protocol: tcp
mode: host
networks:
- traefik_proxy
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.tags=frontend"
- "traefik.frontend.passHostHeader=true"
- "traefik.admin.backend=unifi"
- "traefik.admin.frontend.rule=Host: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"
Заменить / Настроить:
XXXX
– Это порт, по которому ваш контроллер UniFi будет доступен при использовании веб-браузера. Это может быть тот же порт, что и контейнер: 8443 (должен быть свободен). Этот параметр не является обязательным. Просмотрите другие ключевые моменты, перечисленные здесь.- Если вы не хотите использовать обратный прокси-сервер Traefik, вы можете удалить блок «сети» и блок «метки» или просто установить для
traefik.enable
метки значение false. USERDIR
,DOMAINNAME
,PUID
,PGID
, ИTZ
экологические переменные, которые установлены, как описано в моем Traefik руководстве${USERDIR}/docker/unifi
расположение данных программного обеспечения контроллера UniFi{USERDIR}/docker/shared
необязательно. Здесь я храню некоторые файлы, общие для нескольких контейнеров.
Сохраните docker-compose.yml
и выйдите.
Шаг 3: Дополнительные шаги по настройке Traefik
Для работы обратного прокси-сервера Unifi Docker пришлось внести еще одно изменение. Мне пришлось добавить следующую строку в мой traefik.toml
:
InsecureSkipVerify = true
Это объясняется в моем уроке Traefik, связанном ранее.
Шаг 4: Запустите Docker, создайте и проверьте
Затем запустите ваш файл docker compose и проверьте журналы на наличие ошибок:
docker-compose -f ${USERDIR}/docker/docker-compose.yml up -d ; docker-compose logs -tf --tail="50" unifi
Если вы не видите сообщений об ошибках, нажмите Ctrl C для выхода. UniFi WebUI должен быть доступен по адресу https://unifi.example.com.
Рекомендуемые руководства:
Импорт предыдущих настроек и устранение неполадок
Мне удалось успешно импортировать мои предыдущие настройки. Тем не менее, мои точки доступа вошли в «цикл принятия». Другими словами, они никогда не заканчивали принятие. Вот что я должен был сделать, чтобы исправить цикл усыновления.
Мне нужно было в настройках UniFI -> Controller, включить Override информировать хост с помощью имени хоста / IP контроллера и предоставить IP-адрес локальной сети хост-системы, на которой запущен контроллер UniFi в Docker, как показано на скриншоте ниже.
Переопределить Inform Hostname / IP
Я воссоздал док-контейнер UniFi и вернулся в бизнес. Мой полный файл композиции Docker для UniFi Controller доступен на моей странице GitHub.
Руководство по докеру контроллера UniFi – Заключительные замечания
Установка и запуск Unifi Controller с помощью Docker значительно упрощает процесс настройки программного обеспечения контроллера UniFi. Чтобы повысить безопасность, вы можете добавить дополнительный уровень аутентификации HTTP, используя traefik.frontend.auth.basic
метку Traefik. Моя установка работает без проблем в течение 3 месяцев. А процесс обновления Docker контроллера UniFi происходит автоматически, если вы настраиваете Сторожевую башню, как описано в моем руководстве по обратному прокси-серверу Traefik для Docker. Я постепенно становлюсь большим поклонником продуктов UniFi. Получить и запустить программное обеспечение контроллера UniFi было непросто, но с Docker это стало легкой прогулкой. Итак, продолжайте, установите контроллер UniFi на Docker и проверьте его.
Источник записи: https://www.smarthomebeginner.com