Node-RED:Введение/Запуск: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Строка 9: Строка 9:
Если [[Node-RED]] установлен у вас как глобальный [[npm-пакет]], то запустить его можно с помощью команды '''«node-red»'''.
Если [[Node-RED]] установлен у вас как глобальный [[npm-пакет]], то запустить его можно с помощью команды '''«node-red»'''.


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
$ node-red
$ node-red


Строка 43: Строка 43:
Пример использования:
Пример использования:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
node-red [-v] [-?] [--settings settings.js] [--userDir DIR] [flows.json]
node-red [-v] [-?] [--settings settings.js] [--userDir DIR] [flows.json]
</syntaxhighlight>
</syntaxhighlight>
Строка 61: Строка 61:
Сначала давайте сделаем скрипт для запуска [[Node-RED]] исполняемым:
Сначала давайте сделаем скрипт для запуска [[Node-RED]] исполняемым:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
chmod +x <папка-установки-node-red>/bin/node-red
chmod +x <папка-установки-node-red>/bin/node-red
</syntaxhighlight>
</syntaxhighlight>
Строка 67: Строка 67:
Затем запускаем [[Node-RED]] с помощью этого скрипта:
Затем запускаем [[Node-RED]] с помощью этого скрипта:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
<папка-установки-node-red>/bin/node-red
<папка-установки-node-red>/bin/node-red
</syntaxhighlight>
</syntaxhighlight>
Строка 75: Строка 75:
На [[Windows]] запустите команду ниже из той же директории, где запускали «[[npm install]]» или где распаковали [[ZIP-архив]] с [[Node-RED]]:
На [[Windows]] запустите команду ниже из той же директории, где запускали «[[npm install]]» или где распаковали [[ZIP-архив]] с [[Node-RED]]:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
node node_modules/node-red/red.js
node node_modules/node-red/red.js
</syntaxhighlight>
</syntaxhighlight>
Строка 91: Строка 91:
Для этого вместо '''«node-red»''' нужно воспользоваться скриптом '''«node-red-pi»''' (на [[Windows]] этот скрипт недоступен):
Для этого вместо '''«node-red»''' нужно воспользоваться скриптом '''«node-red-pi»''' (на [[Windows]] этот скрипт недоступен):


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
node-red-pi --max-old-space-size=128 --userDir /home/user/node-red-data/
node-red-pi --max-old-space-size=128 --userDir /home/user/node-red-data/
</syntaxhighlight>
</syntaxhighlight>
Строка 97: Строка 97:
Кроме того, [[Node-RED]] можно запустить при помощи команды '''«node»''', но в этом случае аргументы для базового процесса [[Node.js]] нужно задать перед '''«red.js»''' и аргументами, которые вы хотите передать самой [[Node-RED]].
Кроме того, [[Node-RED]] можно запустить при помощи команды '''«node»''', но в этом случае аргументы для базового процесса [[Node.js]] нужно задать перед '''«red.js»''' и аргументами, которые вы хотите передать самой [[Node-RED]].


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
node --max-old-space-size=128 red.js --userDir /home/user/node-red-data/
node --max-old-space-size=128 red.js --userDir /home/user/node-red-data/
</syntaxhighlight>
</syntaxhighlight>
Строка 117: Строка 117:
====Устанавливаем PM2====
====Устанавливаем PM2====


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo npm install -g pm2
sudo npm install -g pm2
</syntaxhighlight>
</syntaxhighlight>
Строка 137: Строка 137:
Аргумент '''«--»''' должен стоять перед всеми аргументами, которые вы хотите передать [[Node-RED]].
Аргумент '''«--»''' должен стоять перед всеми аргументами, которые вы хотите передать [[Node-RED]].


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
pm2 start /usr/bin/node-red -- -v
pm2 start /usr/bin/node-red -- -v
</syntaxhighlight>
</syntaxhighlight>
Строка 143: Строка 143:
{{Примечание1|Если вы работаете с устройством вроде [[Raspberry Pi]] или [[BeagleBone Black]], имеющим ограниченную память, то вам нужно будет указать дополнительный аргумент:}}
{{Примечание1|Если вы работаете с устройством вроде [[Raspberry Pi]] или [[BeagleBone Black]], имеющим ограниченную память, то вам нужно будет указать дополнительный аргумент:}}


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
pm2 start /usr/bin/node-red --node-args="--max-old-space-size=128" -- -v
pm2 start /usr/bin/node-red --node-args="--max-old-space-size=128" -- -v
</syntaxhighlight>
</syntaxhighlight>
Строка 151: Строка 151:
Команда выше запустит [[Node-RED]] в фоновом режиме. Чтобы просматривать информацию об этом процессе и его логи, воспользуйтесь командами ниже:
Команда выше запустит [[Node-RED]] в фоновом режиме. Чтобы просматривать информацию об этом процессе и его логи, воспользуйтесь командами ниже:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
pm2 info node-red
pm2 info node-red
pm2 logs node-red
pm2 logs node-red
Строка 164: Строка 164:
Запустите команды ниже и следуйте инструкциям, которые появятся после этого:
Запустите команды ниже и следуйте инструкциям, которые появятся после этого:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
pm2 save
pm2 save
pm2 startup
pm2 startup
Строка 171: Строка 171:
Если у вас более новая версия [[Linux]], где используется [[systemd]], воспользуйтесь вот этой командой:
Если у вас более новая версия [[Linux]], где используется [[systemd]], воспользуйтесь вот этой командой:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
pm2 startup systemd
pm2 startup systemd
</syntaxhighlight>
</syntaxhighlight>
Строка 177: Строка 177:
{{Блок/Инфо1|1=Примечание (временное)|2=На [[GitHub]] [https://github.com/Unitech/PM2/issues/1321 открыто обсуждение] о проблеме '''PM2''', из-за которой пользователям [[Linux]] нужно вручную редактировать сгенерированный файл '''«/etc/init.d/pm2-init.sh»''', а также заменить...}}
{{Блок/Инфо1|1=Примечание (временное)|2=На [[GitHub]] [https://github.com/Unitech/PM2/issues/1321 открыто обсуждение] о проблеме '''PM2''', из-за которой пользователям [[Linux]] нужно вручную редактировать сгенерированный файл '''«/etc/init.d/pm2-init.sh»''', а также заменить...}}


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
export PM2_HOME="/root/.pm2"
export PM2_HOME="/root/.pm2"
</syntaxhighlight>
</syntaxhighlight>
Строка 183: Строка 183:
...на...
...на...


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
export PM2_HOME="/home/{youruser}/.pm2"
export PM2_HOME="/home/{youruser}/.pm2"
</syntaxhighlight>
</syntaxhighlight>

Версия от 19:54, 23 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Запуск[1]

Если Node-RED установлен у вас как глобальный npm-пакет, то запустить его можно с помощью команды «node-red».

$ node-red

Welcome to Node-RED
===================

25 Mar 22:51:09 - [info] Node-RED version: v0.18.4
25 Mar 22:51:09 - [info] Node.js  version: v8.11.1
25 Mar 22:51:09 - [info] Loading palette nodes
25 Mar 22:51:10 - [warn] ------------------------------------------
25 Mar 22:51:10 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
25 Mar 22:51:10 - [warn] ------------------------------------------
25 Mar 22:51:10 - [info] Settings file  : /home/nol/.node-red/settings.js
25 Mar 22:51:10 - [info] User Directory : /home/nol/.node-red
25 Mar 22:51:10 - [info] Server now running at http://127.0.0.1:1880/
25 Mar 22:51:10 - [info] Creating new flows file : flows_noltop.json
25 Mar 22:51:10 - [info] Starting flows
25 Mar 22:51:10 - [info] Started flows

Чтобы открыть редактор Node-RED, введите в адресной строке браузера «http://localhost:1880».

По ссылкам ниже – руководства по запуску Node-RED на разных аппаратных платформах:

Что дальше

Теперь вы можете создать свой первый поток.

Использование командной строки

Пример использования:

node-red [-v] [-?] [--settings settings.js] [--userDir DIR] [flows.json]

Флаги:

  • -s, --settings FILE чтобы задать файл с настройками
  • -u, --userDir DIR чтобы задать пользовательскую директорию
  • -v чтобы включить расширенный вывод данных
  • -?, --help чтобы вызвать справку о команде

Локальный запуск (Linux и Mac OS X)

Если Node-RED расположена локально, то ее тоже можно запустить с помощью «node-red».

Если Node-RED была установлена с помощью npm, то скриптом для запуска будет «node_modules/node-red/bin/node-red» (путь зависит от папки, где вы запускали «npm install»). Если Node-RED была установлена из ZIP-файла, то скриптом для запуска будет «node-red-X.Y.Z/bin/node-red» (путь зависит от папки, куда вы распаковали ZIP-архив).

Сначала давайте сделаем скрипт для запуска Node-RED исполняемым:

chmod +x <папка-установки-node-red>/bin/node-red

Затем запускаем Node-RED с помощью этого скрипта:

<папка-установки-node-red>/bin/node-red

Локальный запуск Node-RED (Windows)

На Windows запустите команду ниже из той же директории, где запускали «npm install» или где распаковали ZIP-архив с Node-RED:

node node_modules/node-red/red.js

Сохранение пользовательских данных

По умолчанию Node-RED сохраняет ваши данные в папку «$HOME/.node-red». Но если Node-RED обнаружит пользовательские данные в папке установки, то будет использовать именно их, а не те, что находятся в папке «$HOME/.node-red» (это сделано в целях обратной совместимости). О том, как переместить данные из папки установки Node-RED в другое место, см. в статье «Обновление».

Чтобы поменять используемую директорию, можно воспользоваться флагом «--userDir».

Передача аргументов базовому процессу Node.js

Бывают ситуации, когда базовому процессу Node.js нужно передать какие-то аргументы. К примеру, это может понадобиться при запуске Node-RED на устройствах вроде Raspberry Pi или BeagleBone Black, имеющих ограниченную память.

Для этого вместо «node-red» нужно воспользоваться скриптом «node-red-pi» (на Windows этот скрипт недоступен):

node-red-pi --max-old-space-size=128 --userDir /home/user/node-red-data/

Кроме того, Node-RED можно запустить при помощи команды «node», но в этом случае аргументы для базового процесса Node.js нужно задать перед «red.js» и аргументами, которые вы хотите передать самой Node-RED.

node --max-old-space-size=128 red.js --userDir /home/user/node-red-data/

Запуск Node-RED при загрузке

Есть много способов запуска, остановки и мониторинга приложений в момент загрузки. Если вы пользователь Raspberry Pi, настоятельно рекомендую прочесть вот это руководство.

Если вы пользователь Debian-версии Linux (вроде Ubuntu, Mint, Debian и т.д.), рекомендую прочесть вот этот раздел из руководства по Raspberry Pi, но вам также нужно будет отредактировать загруженный файл «/lib/systemd/system/nodered.service», чтобы его данные соответствовали вашим ID пользователя и окружению.

На наш взгляд, для подавляющего большинства пользователей проще будет воспользоваться методом, описанным в разделе ниже – в нем задействован PM2. На Windows PM2 не автозапускает Node-RED как службу, и вам, возможно, лучше сделать это с помощью NSSM (ссылку на соответствующее руководство см. ниже, в разделе «Альтернативные способы»).

При помощи PM2

PM2 – это диспетчер процессов для Node.js. Он упрощает запуск и – если понадобится – перезапуск приложений при загрузке.

Примечание

PM2 распространяется по лицензии GNU-AGPL-3.0, поэтому перед использованием рекомендую ознакомиться с правилами этой лицензии.

Устанавливаем PM2

sudo npm install -g pm2
Примечание

Команда «sudo» нужна для запуска с помощью пользователя non-root на Linux и OS X. Если у вас Windows, команду выше нужно вызывать в командной оболочке от лица администратора, но без «sudo».

Примечание

Кроме того, если у вас Windows, в пути также должно быть указано «tail.exe».

Определяем локацию установки команды «node-red»

Если Node-RED была установлена как глобальный пакет, то на Linux и OS X командой будет, скорее всего, «/usr/bin/node-red» или «/usr/local/bin/node-red». Чтобы проверить локацию установки, можно воспользоваться командой «which node-red».

Если вы устанавливали Node-RED локально, то командой будет «node_modules/node-red/bin/node-red» (начало пути зависит от того, где вы запускали «npm install»).

Говорим PM2 запустить Node-RED

Команда ниже говорит PM2 запустить Node-RED («/usr/bin/node-red» – это место, где находится команда «node-red»).

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

pm2 start /usr/bin/node-red -- -v
Примечание

Если вы работаете с устройством вроде Raspberry Pi или BeagleBone Black, имеющим ограниченную память, то вам нужно будет указать дополнительный аргумент:

pm2 start /usr/bin/node-red --node-args="--max-old-space-size=128" -- -v
Примечание

Если вы хотите запустить Node-RED от лица root-пользователя, вам также нужно указать флаг «--userDir», чтобы задать место, где Node-RED будет хранить ваши данные.

Команда выше запустит Node-RED в фоновом режиме. Чтобы просматривать информацию об этом процессе и его логи, воспользуйтесь командами ниже:

pm2 info node-red
pm2 logs node-red

Более подробно об управлении процессами с помощью PM2 читайте тут.

Говорим PM2 запустить Node-RED при загрузке

При помощи PM2 можно сгенерировать и настроить скрипт для запуска Node-RED на разных платформах.

Запустите команды ниже и следуйте инструкциям, которые появятся после этого:

pm2 save
pm2 startup

Если у вас более новая версия Linux, где используется systemd, воспользуйтесь вот этой командой:

pm2 startup systemd
Примечание (временное)

На GitHub открыто обсуждение о проблеме PM2, из-за которой пользователям Linux нужно вручную редактировать сгенерированный файл «/etc/init.d/pm2-init.sh», а также заменить...

export PM2_HOME="/root/.pm2"

...на...

export PM2_HOME="/home/{youruser}/.pm2"

...чтобы задать правильную директорию.

Делаем перезагрузку

Наконец, перезагружаемся и проверяем, запускается ли Node-RED как нужно.

Альтернативные способы

Есть много других альтернативных способов запуска Node-RED. Ниже – несколько способов, созданных участниками сообщества:

См.также

Внешние ссылки