Node-RED:Введение/Запуск: различия между версиями
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показано 5 промежуточных версий 2 участников) | |||
Строка 2: | Строка 2: | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Запуск<ref>[https://nodered.org/docs/getting-started/running nodered.org - Running]</ref>= | =Запуск<ref>[https://nodered.org/docs/getting-started/running nodered.org - Running]</ref>= | ||
Строка 9: | Строка 7: | ||
Если [[Node-RED]] установлен у вас как глобальный [[npm-пакет]], то запустить его можно с помощью команды '''«node-red»'''. | Если [[Node-RED]] установлен у вас как глобальный [[npm-пакет]], то запустить его можно с помощью команды '''«node-red»'''. | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
$ node-red | $ node-red | ||
Строка 43: | Строка 41: | ||
Пример использования: | Пример использования: | ||
<syntaxhighlight lang="bash | <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: | Строка 59: | ||
Сначала давайте сделаем скрипт для запуска [[Node-RED]] исполняемым: | Сначала давайте сделаем скрипт для запуска [[Node-RED]] исполняемым: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
chmod +x <папка-установки-node-red>/bin/node-red | chmod +x <папка-установки-node-red>/bin/node-red | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 67: | Строка 65: | ||
Затем запускаем [[Node-RED]] с помощью этого скрипта: | Затем запускаем [[Node-RED]] с помощью этого скрипта: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
<папка-установки-node-red>/bin/node-red | <папка-установки-node-red>/bin/node-red | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 75: | Строка 73: | ||
На [[Windows]] запустите команду ниже из той же директории, где запускали «[[npm install]]» или где распаковали [[ZIP-архив]] с [[Node-RED]]: | На [[Windows]] запустите команду ниже из той же директории, где запускали «[[npm install]]» или где распаковали [[ZIP-архив]] с [[Node-RED]]: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
node node_modules/node-red/red.js | node node_modules/node-red/red.js | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 91: | Строка 89: | ||
Для этого вместо '''«node-red»''' нужно воспользоваться скриптом '''«node-red-pi»''' (на [[Windows]] этот скрипт недоступен): | Для этого вместо '''«node-red»''' нужно воспользоваться скриптом '''«node-red-pi»''' (на [[Windows]] этот скрипт недоступен): | ||
<syntaxhighlight lang="bash | <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: | Строка 95: | ||
Кроме того, [[Node-RED]] можно запустить при помощи команды '''«node»''', но в этом случае аргументы для базового процесса [[Node.js]] нужно задать перед '''«red.js»''' и аргументами, которые вы хотите передать самой [[Node-RED]]. | Кроме того, [[Node-RED]] можно запустить при помощи команды '''«node»''', но в этом случае аргументы для базового процесса [[Node.js]] нужно задать перед '''«red.js»''' и аргументами, которые вы хотите передать самой [[Node-RED]]. | ||
<syntaxhighlight lang="bash | <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> | ||
Строка 113: | Строка 111: | ||
[https://github.com/Unitech/pm2 PM2] – это диспетчер процессов для [[Node.js]]. Он упрощает запуск и – если понадобится – перезапуск приложений при загрузке. | [https://github.com/Unitech/pm2 PM2] – это диспетчер процессов для [[Node.js]]. Он упрощает запуск и – если понадобится – перезапуск приложений при загрузке. | ||
{{Примечание1|'''PM2''' распространяется по лицензии [[GNU-AGPL-3.0]], поэтому перед использованием рекомендую ознакомиться с правилами этой лицензии.}} | |||
====Устанавливаем PM2==== | ====Устанавливаем PM2==== | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo npm install -g pm2 | sudo npm install -g pm2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Примечание1|1=Команда '''«sudo»''' нужна для запуска с помощью пользователя '''non-root''' на [[Linux]] и [[OS X]]. Если у вас [[Windows]], команду выше нужно вызывать в [https://technet.microsoft.com/en-gb/library/cc947813%28v=ws.10%29.aspx командной оболочке от лица администратора], но без '''«sudo»'''.}} | |||
{{Примечание1|Кроме того, если у вас [[Windows]], в пути также должно быть указано '''«tail.exe»'''.}} | |||
==== Определяем локацию установки команды «node-red» ==== | ==== Определяем локацию установки команды «node-red» ==== | ||
Строка 137: | Строка 135: | ||
Аргумент '''«--»''' должен стоять перед всеми аргументами, которые вы хотите передать [[Node-RED]]. | Аргумент '''«--»''' должен стоять перед всеми аргументами, которые вы хотите передать [[Node-RED]]. | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
pm2 start /usr/bin/node-red -- -v | pm2 start /usr/bin/node-red -- -v | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Примечание1|Если вы работаете с устройством вроде [[Raspberry Pi]] или [[BeagleBone Black]], имеющим ограниченную память, то вам нужно будет указать дополнительный аргумент:}} | |||
<syntaxhighlight lang="bash | <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> | ||
{{Примечание1|Если вы хотите запустить [[Node-RED]] от лица root-пользователя, вам также нужно указать флаг '''«--userDir»''', чтобы задать место, где [[Node-RED]] будет хранить ваши данные.}} | |||
Команда выше запустит [[Node-RED]] в фоновом режиме. Чтобы просматривать информацию об этом процессе и его логи, воспользуйтесь командами ниже: | Команда выше запустит [[Node-RED]] в фоновом режиме. Чтобы просматривать информацию об этом процессе и его логи, воспользуйтесь командами ниже: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
pm2 info node-red | pm2 info node-red | ||
pm2 logs node-red | pm2 logs node-red | ||
Строка 164: | Строка 162: | ||
Запустите команды ниже и следуйте инструкциям, которые появятся после этого: | Запустите команды ниже и следуйте инструкциям, которые появятся после этого: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
pm2 save | pm2 save | ||
pm2 startup | pm2 startup | ||
Строка 171: | Строка 169: | ||
Если у вас более новая версия [[Linux]], где используется [[systemd]], воспользуйтесь вот этой командой: | Если у вас более новая версия [[Linux]], где используется [[systemd]], воспользуйтесь вот этой командой: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
pm2 startup systemd | pm2 startup systemd | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Блок/Инфо1|1=Примечание (временное)|2=На [[GitHub]] [https://github.com/Unitech/PM2/issues/1321 открыто обсуждение] о проблеме '''PM2''', из-за которой пользователям [[Linux]] нужно вручную редактировать сгенерированный файл '''«/etc/init.d/pm2-init.sh»''', а также заменить...}} | |||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
export PM2_HOME="/root/.pm2" | export PM2_HOME="/root/.pm2" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 183: | Строка 181: | ||
...на... | ...на... | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
export PM2_HOME="/home/{youruser}/.pm2" | export PM2_HOME="/home/{youruser}/.pm2" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 209: | Строка 207: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Node-RED библиотеки}} | |||
{{Навигационная таблица/Телепорт}} |
Текущая версия от 22:49, 22 сентября 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
sudo npm install -g pm2
Определяем локацию установки команды «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
pm2 start /usr/bin/node-red --node-args="--max-old-space-size=128" -- -v
Команда выше запустит 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
export PM2_HOME="/root/.pm2"
...на...
export PM2_HOME="/home/{youruser}/.pm2"
...чтобы задать правильную директорию.
Делаем перезагрузку
Наконец, перезагружаемся и проверяем, запускается ли Node-RED как нужно.
Альтернативные способы
Есть много других альтернативных способов запуска Node-RED. Ниже – несколько способов, созданных участниками сообщества:
- Cкрипт system (используется для предустановленной версии Node-RED на Raspberry Pi). ОС – Linux, автор – @NodeRED
- Скрипт system. ОС – Linux, автор – Belphemur
- Скрипт init.d. ОС – Linux, автор – dceejay
- Скрипт init.d. ОС – Linux, автор – Belphemur
- Скрипт Launchd. ОС – OS X, автор – natcl
- Запуск Node-RED как службы при помощи NSSM. ОС – Windows, автор – dceejay
- Запуск Node-RED как службы. ОС – Windows и OS X, автор – Бен Хердилл
См.также
Внешние ссылки