Давно я открыл для себя сей чудный инструмент, но ранее более относил его к теме Интернета вещей (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
На этом все, пробуем перезапустить контейнер и смотрим результат!