当前位置: 首页 > 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.dtcms.com/a/299806.html

相关文章:

  • 磁悬浮轴承转子不平衡质量控制策略设计:原理、分析与智能实现
  • C/C++中常量放置在比较操作符左侧
  • 基于匿名管道的多进程任务池实现与FD泄漏解决方案
  • 消息缓存系统
  • Docker学习日志-Docker容器配置、Nginx 配置与文件映射
  • Vim 进阶教程
  • React入门学习——指北指南(第四节)
  • Spring核心:Bean生命周期、外部化配置与组件扫描深度解析
  • 龙迅#LT8711UXD适用于Type-C/DP1.4 /EDP转 HDMI2.0 功能,分辨率高达4K60HZ,可支持HDCP!
  • 01 01 02 第一部分 C++编程知识 C++入门 第一个C++程序
  • 其他世界的自来水
  • 【图像理解进阶】如何在自己的数据集上释放segment anything模型方案的潜力?
  • 20250726-3-Kubernetes 网络-Service三种常用类型_笔记
  • 服务器被网络攻击后该如何进行处理?
  • “累”这一身体某部位的感觉可能较多来源于对局部血流阻力的感知
  • 教育培训系统源码解析:如何打造高可扩展的在线学习平台?
  • 疏老师-python训练营-Day26函数专题1:函数定义与参数
  • Dify开发教程笔记(一): 文件及系统参数变量说明及使用
  • 【n8n教程笔记——工作流Workflow】文本课程(第一阶段)——5.3 过滤订单 (Filtering orders)
  • 【Canvas与壁纸】蓝底白四方块花电脑壁纸1920x1080
  • 大模型——字节Coze重磅开源!Dify何去何从
  • Web后端进阶:springboot原理(面试多问)
  • Android Fragment 全解析
  • 【机器学习深度学习】微调能改变模型“智商”吗?——模型能力与知识的本质解析
  • (LeetCode 面试经典 150 题) 452. 用最少数量的箭引爆气球 (排序+贪心)
  • HCLP--MGER综合实验
  • ros2 中python 的多种调试方式
  • 《计算机组成原理与汇编语言程序设计》实验报告二 基本数字逻辑及汉字显示
  • 深入剖析 MetaGPT 中的提示词工程:WriteCode 动作的提示词设计
  • 深入React框架:构建现代前端应用的全面指南