Это просто конспект и ничего более… т.к. ничего такого интересного в этом действии нет, все просто.
Краткая инструкция, основанная на официальной документации:
sudo -s
apt update && apt install ca-certificates curl gnupg
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/nodesource.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
apt update && apt install nodejs
С Node-RED нынче еще все проще! Инструкция, опять же, составлена на основании официальной документации.
sudo -s
apt update && apt install build-essential git curl && exit
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Третьим пунктом идет полноценный скрипт установки, который может, помимо самого Node-RED, установить и все зависимости, вместе с Node.js, но последний я решил поставить все же отдельно, чтобы проще было обновлять и вообще следить.
Первоначальную настройку нужно проводить с правами ограниченного пользователя, под которым планируется дальнейший запуск программы, т.е. без «root»!
node-red admin init
В конце, скрипт настройки предлагает повысить безопасность установки выполнив два действия:
sudo rm -f /etc/sudoers.d/010_pi-nopasswd
…если хочется восстановить, как было, то надо создать пустой файл и добавить в него строчку «pi ALL=(ALL) NOPASSWD: ALL», заменив «pi» на имя вашего пользователя
echo "pi ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/010_pi-nopasswd > /dev/null && sudo chmod 444 /etc/sudoers.d/010_pi-nopasswd
sudo chown root:root ~/.node-red/settings.js
Ну и в завершение нужно включить автозапуск и запустить службу:
sudo systemctl enable nodered.service && sudo systemctl start nodered.service
Если необходимо, чтобы Node-RED висел на 80-м порту, нужно:
sudo setcap 'cap_net_bind_service=+ep' $(eval readlink -f `which node`)
sudo nano ~/.node-red/settings.js
и изменить в нем
uiPort: process.env.PORT || 80,
там же можно поменять местами административную панель и панель приборов плагина «Dashboard»
httpAdminRoot: '/admin', ui: { path: "/" },
sudo systemctl restart nodered
Обсуждение