# Ubuntu一键安装node-red **Repository Path**: yangyong79/NodeJS ## Basic Information - **Project Name**: Ubuntu一键安装node-red - **Description**: Ubuntu一键安装node-red - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-17 - **Last Updated**: 2026-03-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ubuntu一键安装node-red #### 介绍 Ubuntu一键安装node-red #### 软件架构 软件架构说明 #### 安装教程 # Download and install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash # in lieu of restarting the shell \. "$HOME/.nvm/nvm.sh" # Download and install Node.js: nvm install 20 # Verify the Node.js version: node -v # Should print "v20.20.0". # Verify npm version: npm -v # Should print "10.8.2". #### 生成脚本 #!/bin/bash ############################################################################### # 脚本名称:nodered-service-fix.sh # 功能描述:修复 Node-RED systemd 服务(nvm + Node.js v20 环境) # 适用环境:nvm 安装 Node.js v20 + npm 全局安装 node-red # 用户名:yy # 最后更新:2026-02-17 ############################################################################### ############################################################################### # 【配置区域】 ############################################################################### USERNAME="yy" NODE_VERSION="v20.20.0" NVM_DIR="/home/${USERNAME}/.nvm" NODE_PATH="${NVM_DIR}/versions/node/${NODE_VERSION}/bin/node" NODERED_PATH="${NVM_DIR}/versions/node/${NODE_VERSION}/bin/node-red" WORK_DIR="/home/${USERNAME}/.node-red" NODE_MODULES_PATH="${NVM_DIR}/versions/node/${NODE_VERSION}/lib/node_modules" ############################################################################### # 【颜色定义】 ############################################################################### RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' print_info() { echo -e "${BLUE}[INFO]${NC} $1"; } print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; } print_error() { echo -e "${RED}[ERROR]${NC} $1"; } ############################################################################### # 【步骤 1】验证路径 ############################################################################### print_info "========== 步骤 1: 验证安装路径 ==========" echo "Node.js 路径:${NODE_PATH}" echo "Node-RED 路径:${NODERED_PATH}" echo "工作目录:${WORK_DIR}" if [ ! -f "${NODE_PATH}" ]; then print_error "Node.js 不存在:${NODE_PATH}" print_warning "请确认 Node.js 版本:ls ${NVM_DIR}/versions/node/" exit 1 fi if [ ! -f "${NODERED_PATH}" ]; then print_error "Node-RED 不存在:${NODERED_PATH}" print_warning "请重新安装:sudo npm install -g --unsafe-perm node-red" exit 1 fi print_success "路径验证通过" ############################################################################### # 【步骤 2】停止并清理旧配置 ############################################################################### print_info "========== 步骤 2: 停止并清理旧配置 ==========" sudo systemctl stop nodered.service 2>/dev/null sudo rm -rf /etc/systemd/system/nodered.service.d/ sudo rm -f /etc/systemd/system/nodered.service print_success "旧配置清理完成" ############################################################################### # 【步骤 3】创建工作目录 ############################################################################### print_info "========== 步骤 3: 创建工作目录 ==========" if [ ! -d "${WORK_DIR}" ]; then mkdir -p "${WORK_DIR}" chown ${USERNAME}:${USERNAME} "${WORK_DIR}" print_success "创建工作目录:${WORK_DIR}" else print_success "工作目录已存在" fi ############################################################################### # 【步骤 4】创建 systemd 服务文件 ############################################################################### print_info "========== 步骤 4: 创建 systemd 服务文件 ==========" sudo tee /etc/systemd/system/nodered.service > /dev/null << EOF [Unit] Description=Node-RED - Low-code programming for event-driven applications Documentation=https://nodered.org/docs/ After=network.target [Service] Type=simple User=${USERNAME} ExecStart=${NODERED_PATH} WorkingDirectory=${WORK_DIR} Restart=on-failure RestartSec=10 # 环境变量 Environment=NODE_ENV=production Environment=USER=${USERNAME} Environment=NODE_PATH=${NODE_MODULES_PATH} Environment=NVM_DIR=${NVM_DIR} # 如需使用 502 等特权端口,取消下面注释 # AmbientCapabilities=CAP_NET_BIND_SERVICE # CapabilityBoundingSet=CAP_NET_BIND_SERVICE LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF print_success "服务文件创建完成:/etc/systemd/system/nodered.service" ############################################################################### # 【步骤 5】重载并启动服务 ############################################################################### print_info "========== 步骤 5: 重载并启动服务 ==========" sudo systemctl daemon-reload sudo systemctl reset-failed nodered.service sudo systemctl enable nodered.service sudo systemctl start nodered.service sleep 3 ############################################################################### # 【步骤 6】验证服务状态 ############################################################################### print_info "========== 步骤 6: 验证服务状态 ==========" systemctl status nodered.service --no-pager -n 15 echo "" if systemctl is-active --quiet nodered.service; then print_success "============================================" print_success " ✅ Node-RED 服务已成功启动!" print_success "============================================" else print_error "============================================" print_error " ❌ 服务启动失败" print_error "============================================" print_warning "查看日志:journalctl -u nodered.service -f" fi ############################################################################### # 【显示访问信息】 ############################################################################### IP_ADDR=$(hostname -I | awk '{print $1}') echo "" echo "┌─────────────────────────────────────────────────────────┐" echo "│ Node-RED 访问信息 │" echo "├─────────────────────────────────────────────────────────┤" echo "│ 🌐 本地访问:http://localhost:1880 │" echo "│ 🌐 局域网访问:http://${IP_ADDR}:1880 │" echo "│ 📊 服务状态:$(systemctl is-active nodered.service) │" echo "│ 🔄 开机自启:$(systemctl is-enabled nodered.service) │" echo "└─────────────────────────────────────────────────────────┘" echo "" echo "┌─────────────────────────────────────────────────────────┐" echo "│ 常用命令参考 │" echo "├─────────────────────────────────────────────────────────┤" echo "│ 查看状态:systemctl status nodered.service │" echo "│ 启动服务:sudo systemctl start nodered.service │" echo "│ 停止服务:sudo systemctl stop nodered.service │" echo "│ 重启服务:sudo systemctl restart nodered.service │" echo "│ 查看日志:journalctl -u nodered.service -f │" echo "│ 禁用自启:sudo systemctl disable nodered.service │" echo "└─────────────────────────────────────────────────────────┘" #### 使用脚本 # 1. 创建脚本文件 nano ~/nodered-service-fix.sh # 2. 粘贴上面的完整脚本 # 3. 保存退出(Ctrl+O → Enter → Ctrl+X) # 4. 赋予执行权限 chmod +x ~/nodered-service-fix.sh # 5. 执行脚本 sudo bash ~/nodered-service-fix.sh #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)