当前位置: 首页 > news >正文

Ubuntu安装node-red

npm安装

1. 更新系统包列表
首先,更新您的系统包列表以确保所有软件包都是最新的:
sudo apt update

2. 安装Node.js
Node-RED依赖于Node.js,因此我们需要先安装Node.js(注意版本需要18及以上)。可以使用Ubuntu的包管理器来安装:
sudo apt install nodejs npm

安装完成后,验证Node.js的版本:
node -v
npm -v

3. 安装Node-RED
现在我们可以使用npm来安装Node-RED:
sudo npm install -g --unsafe-perm node-red node-red-admin
这个命令将Node-RED全局安装到您的系统上。

4. 启动Node-RED
安装完成后,可以通过以下命令启动Node-RED:
sudo node-red
Node-RED将启动并打开默认的Web界面,通常是在浏览器中访问 http://localhost:1880

配置node-red

1. 创建Node-RED用户
为了安全起见,建议为Node-RED创建一个单独的用户:
sudo deluser --remove-home node-red
sudo delgroup node-red
sudo addgroup --system node-red
sudo adduser --system --ingroup node-red --home /home/node-red --disabled-password --shell /bin/false node-red
sudo -u node-red -H id


2. 设置环境变量
将Node-RED用户添加到sudoers文件中,以便它可以运行作为root的命令:
echo "node-red ALL=(ALL) NOPASSWD: $( which node-red )" | sudo tee -a /etc/sudoers.d/node-red
echo "node-red ALL=(ALL) NOPASSWD: $( which node-red-pi )" | sudo tee -a /etc/sudoers.d/node-red
echo "node-red ALL=(ALL) NOPASSWD: $( which node-red-admin )" | sudo tee -a /etc/sudoers.d/node-red
sudo cat /etc/sudoers.d/node-red


3. 使用systemd管理Node-RED

编辑文件 sudo vi /usr/lib/systemd/system/node-red.service

[Unit]
Description=Node-RED
After=network.target[Service]
ExecStart=/usr/local/bin/node-red
WorkingDirectory=/home/node-red
User=node-red
Group=node-red
Restart=on-failure
KillMode=control-group[Install]
WantedBy=multi-user.target

为了方便管理,我们可以使用systemd来启动和停止Node-RED:

sudo systemctl daemon-reload
sudo systemctl stop node-red
sudo systemctl start node-red
sudo systemctl status node-red
sudo systemctl enable node-red

查看日志:journalctl -u node-red -f

从日志中,我们可以看到systemctl使用的用户为创建的node-red,目录下有一个.node-red文件夹,node-red启动时会在用户目录~/.node-red中查找名为settings.js的文件,如果找不到会将默认设置文件复制到该目录下并使用它。

4. 使用systemd管理Node-RED
设置登录密码为 dt123456
node-red-admin hash-pw
Password: $2y$08$/DITs//2YCadPadVBbICGejCO7TuZYStXBd.2V6FllRlBWz3yB5L6

编辑文件 sudo -u node-red -H vi /home/node-red/.node-red/settings.js

adminAuth: {type: "credentials",users: [{username: "admin",password: "$2y$08$/DITs//2YCadPadVBbICGejCO7TuZYStXBd.2V6FllRlBWz3yB5L6",permissions: "*"}]},

重启服务 sudo systemctl restart node-red.service

http://www.lryc.cn/news/600707.html

相关文章:

  • 广东省省考备考(第五十七天7.26)——数量、言语(强化训练)
  • 【CTF-PWN】【攻防世界题目pwnstack】python攻击脚本ret(checksec、pwngdb、IDA)(含“/bin/sh“)
  • Traffic Lights set的使用
  • AI Agent开发学习系列 - langchain之LCEL(5):如何创建一个Agent?
  • Ansible列出常见操作系统的发行版,Ansible中使用facts变量的两种方式
  • 定义域第一题
  • InfluxDB Flux 查询协议实战应用(二)
  • 修改site-packages位置与pip配置
  • 网络:应用层
  • docker安装问题汇总
  • 一文速通《多元函数微分学》
  • AI Agent开发学习系列 - langchain之LCEL(4):Memory
  • x86汇编语言入门基础(三)汇编指令篇5 串操作
  • 【架构】Docker简单认知构建
  • JAVA学习-练习试用Java实现“深度优先搜索(DFS):实现八数码问题的解法(最短路径搜索)”
  • LangChain4j低阶+高阶Api+日志配置+监听器+重试机制+超时机制
  • 【LeetCode 热题 100】131. 分割回文串——回溯
  • 算法竞赛阶段二-数据结构(35)数据结构单链表模拟实现
  • Android-广播详解
  • golang实现一个定时引擎,功能包括按照corntab的时间任务实时增加、修改、删除定时任务
  • 常见sql深入优化( 二)
  • 一文学会c++list
  • 激光雷达-相机标定工具:支持普通相机和鱼眼相机的交互式标定
  • 二叉搜索树(Binary Search Tree)详解与java实现
  • Linux 如何统计系统上各个用户登录(或者登出)记录出现的次数?
  • Android-三种持久化方式详解
  • 摘录-打造第二大脑
  • J2EE模式---表现层集成模式
  • C++ TAP(基于任务的异步编程模式)
  • Web后端进阶:springboot原理(面试多问)