Налаштовуємо Nginx Proxy Manager в Home Assistant
Цю статтю я вирішив написати після виходу оновлення Home Assistant 2022.12.4. Насправді, з виходом версії з номером 2022.12.5, проблему не було вирішено. А моя проблема полягала в тому, що я не зміг отримати доступ до свого серверу з мережі Інтернет за його доменною адресою. При цьому, всередині домашньої локальної мережі HA працював абсолютно без проблем, при цьому навіть мав змогу отримати доступ “на зовні” і оновитися.
В чому ж була причина такої поведінки мережі. Зазвичай, після оновлення, Home Assistant отримує багатший функціонал, починає працювати з пристроями багатьох вендорів, виправляються деякі помилки в роботі. Але іноді буває, під час роботи над помилками можна наробити нових ;), і щось перестане працювати. Так сталося і в моєму випадку з аддоном “Caddy Proxy” – він почав працювати неправильно. Частково в цьому є і моя провина – аддон не є офіційним і вже досить тривалий час не оновлювався до актуальної версії. До речі, про нього я писав в ось цій статті – Отримуємо SSL сертифікат для Home Assistant. Отже, настав час видалити Caddy, а замість нього встановити і налаштувати Nginx Proxy Manager!
Нагадаю: і Caddy, і Nginx Proxy Manager – це, так звані, зворотні проксі-сервери. У випадку з Home Assistant, він дозволить вам не турбуватись про безпечне з’єднання, адже NPM буде тримати сертифікати Let’s Encrypt в актуальному стані, і, за необхідності, самостійно їх оновлювати.
Інсталяція MariaDB
Для своєї роботи Nginx Proxy Manager потребує наявності бази даних, саме тому необхідно встановити аддон MariaDB.
Перейдіть на сторінку “Settings > Add-ons”
Натисніть на кнопку Add-on Store” в правому нижньому куті сторінки.
В розділі “Official add-ons” натисніть на “MariaDB”. Потім натисніть “Install”
Дозвольте запуск аддона при завантаженні системи “Start on boot” та увімкніть “Watchdog”. Потім, не натискаючи “Start”, перейдіть до вкладки “Configuration”.
Встановіть пароль для бази даних. За замовчуванням там буде встановлено значення «null» і при запуску аддона він буде скаржиться, що ви не встановили пароль перед її запуском. Налаштуйте username і password, а потім натисніть “Save”.
Тепер ви можете повернутися до вкладки «Info» та натиснути «Start». Ви повинні побачити, що аддон працює, як показано на скріншоті.
Встановлюємо Nginx Proxy Manager
Щоб інсталювати Nginx Proxy Manager, потрібно перейти на сторінку «Settings> Add-ons».
Натисніть на кнопку “Add-on Store” в правому нижньому куті сторінки.
У розділі «Home Assistant Community Add-ons» натисніть «Nginx Proxy Manager». Далі натисніть “Install”, щоб встановити Nginx Proxy Manager.
Увімкніть параметри «Start on boot» та «Watchdog» і натисніть «Start». Ви повинні побачити, що аддон працює, як показано на скріншоті.
Налаштування вашого екземпляра Nginx Proxy Manager
Перейдіть на сторінку Nginx Proxy Manager. Це буде IP вашого Home Assistant на порту 81. Наприклад: http://192.168.10.245:81. Ви повинні побачити сторінку входу. Введіть облікові дані за умовчанням це адреси електронної пошти admin@example.com і пароль changeme.
Після входу, вам буде запропоновано змінити облікові дані користувача на власні, пароль також не забудьте змінити.
Натисніть розділ «Hosts», щоб додати ваш власний проксі-хост.
Введіть своє повне доменне ім’я Home Assistant. У моєму прикладі, я використовую hassio.myhome.com. Це доменне ім’я має бути справжнім доменним іменем, яке ви використовуватимете для доступу до Home Assistant. Це має бути справжнє доменне ім’я, оскільки для нього ви створюватимете сертифікат “Let’s Encrypt”. Також вкажіть IP або ім’я сервера в локальній мережі.
Тепер перейдіть на вкладку «SSL», щоб створити новий сертифікат. Виберіть опцію «Request a new SSL Certificate». Якщо ви ввімкнете опцію «Примусово SSL», порт 80 (HTTP) буде перенаправлено на 433 (HTTPS). Опція «HTTP/2» увімкне функції HTTP для підвищення продуктивності. Якщо вам потрібна додаткова безпека, ви можете ввімкнути «HSTS», але будьте обережні з цим параметром, якщо у вас є інші веб служби. Вам потрібно буде вказати справжній обліковий запис електронної пошти та натиснути кнопку «Я згоден» перед збереженням.
Система має бути підключена до Інтернету, щоб згенерувати стандартний сертифікат через HTTP.
Відредагуйте Configuration.yaml.
Навіть якщо зворотний проксі налаштовано належним чином, підключення до HTTPS не вдасться, доки configuration.yaml файл не буде налаштовано, щоб дозволити зворотний проксі. Оскільки Home Assistant і всі його доповнення працюють у Docker, контейнери використовуватимуть IP-адреси в діапазоні 172.16.0.0/12. Ви можете побачити поточну IP-адресу, яку використовує Nginx Proxy Manager, у системних журналах. Ви зіткнетеся з помилкою веб-браузера «Неправильний запит» із кодом статусу 400 .
Позаяк IP-адреси контейнерів Docker можуть змінюватися під час перезапуску контейнера або перезавантаження Home Assistant, ви можете просто вказати діапазон IP-адрес, який використовує Docker.
Виберіть файл configuration.yaml, щоб відредагувати його. Додайте таку конфігурацію в файлі, як показано на знімку екрана.
Збережіть налаштування і перезавантажте Home Assistant.
Безпечне з’єднання з Home Assistant
Якщо все було вірно налаштовано, єдине, що залишиться зробити – це набрати доменне ім’я в браузері, яке ви налаштували. Наприклад, https://hassio.myhome.com. Щоб отримати доступ до Home Assistant вам доведеться залогінитись знову, навіть якщо ви входили через незахищене HTTP зʼєднання.
Дякую за корисну статтю