Install Node-RED in CT on Proxmox / Установка Node-RED внутри контейнера на Proxmox

Давно я открыл для себя сей чудный инструмент, но ранее более относил его к теме Интернета вещей (IoT), но позднее понял, что его очень удобно использовать для создания различного рода мелких обработчиков, мини помощников в рутинных задачах в виде Telegram-каналов и прочее. Не очень прозрачно на мой взгляд для новичка как запустить Node-RED внутри контейнера, если у вас есть Proxmox. Соответственно ниже инструкция.

Подготовка шаблона для контейнера.

Для основы нужно будет выбрать стандартный контейнер из набора Proxmox.

Заходим в Хранилище local и далее нажимаем CT Templates, в поле поиска набираем nodejs.

Вы должны будете найти turnkey-nodejs. Выделяем его и нажимаем снизу кнопку Download.

Настройка и запуск контейнера.

Как только будет завершена задача скачивания шаблона, можем приступать к настройке и запуску контейнера. Для этого достаточно нажать справа вверху кнопку Create CT и пройти по шагам мастера создания контейнера, при этом на второй вкладке надо выбрать ранее скачанный образ nodejs:

После того, как все параметры в мастере будут введены и контейнер будет создан, запускаем его, если не отмечали опцию по завершению мастера создания контейнера (Запустить после создания), и отвечаем на пару вопросов в консоли контейнера. После завершения мастера в консоли, вам должна стать доступной обычная консоль linux внутри контейнера.

Установка Node-RED.

Тут все по классике, так как у вас уже есть NodeJS, можно его сразу обновить либо просто у набрать команду для установки Node-RED:

# npm install -g --unsafe-perm node-red

Дальше вы уже можете запускать Node-RED и он будет доступен по IP-адресу, что был присвоен контейнеру на этапе создания либо через DHCP.

Авто-запуск Node-RED.

Обычно, по классике мы используем systemd и создаем файл-юнит для сервиса, в котором описываем параметры запуска нужной программы, и далее запускаем ее как службу. Да, можно и так. А можно еще проще — использовать pm2, так как у нас уже есть NodeJS:

# npm install -g pm2

После этого нам нужно выяснить где расположен бинарный файл Node-RED:

# whereis node-red
node-red: /usr/local/bin/node-red

Теперь все, что осталось сделать для авто-запуска Node-RED, это выполнить:

pm2 start /usr/local/bin/node-red -- -v

Дополнительная информация.

А если вам, к примеру, надо просмотреть состояние или логи Node-RED, то можно использовать команды:

pm2 info node-red
pm2 logs node-red

Финальный аккорд.

Как только завершите конфигурацию pm2, ее нужно сохранить и не забыть самому pm2 сказать, чтобы запускался при старте контейнера:

pm2 save
pm2 startup

да, для современных дистрибутивов linux, в которых есть systemd можно использовать его:

pm2 startup systemd

На этом все, пробуем перезапустить контейнер и смотрим результат!

Оставьте комментарий