Вступление
Сложно подобрать емкий заголовок, отражающий смысл, поэтому сразу опишу задачу, которую перед собой поставил.
Есть «умный дом». В моем случае это безвентиляторный домашний сервер с ioBroker, хотя это не принципиально. Помимо домашних штучек хочется к нему цеплять датчики извне (например, на ESP32 из удаленной теплицы). Это решил делать через mqtt. Доступ к интерфейсу из Интернета.
Обычное дело. Но есть нюансы:
- У провайдера нет возможности дать мне публичный IP адрес. И других провайдеров нет.
- Не люблю привязку к конкретным облачным сервисам. Внешний сервис и закрыться может (как недавно gbridge уведомление прислал). И просто в случае отказа не понятно, что делать. Предпочитаю свое, что можно в случае чего перенести, переделать малой кровью.
- Безопасность важна. Не паранойя, но выставить ioBroker в Интернет, особенно с учетом, что там выставляется несколько сервисов (flot…). Нет уж.
Дальше хочу показать не сразу результат, а процесс. Как шел, как трансформировались хотелки, менялись решения. Вполне возможно, что некоторые моменты можно решить более правильно/эффективно (я не сисадмин, не разработчик). А может кто-то не пойдет так далеко, и воспользуется промежуточным решением, которое я, к примеру, счел недостаточно для себя безопасным или удобным. Собственно, описанное в этой части — вполне рабочий вариант, но для меня «промежуточный».