You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Docker环境中的Node-RED配置密码保护

Docker 环境下 Node-RED 密码认证配置方案

方法一:环境变量快速配置(推荐)

无需修改配置文件,适合快速搭建基础认证机制:

  • 生成bcrypt加密密码哈希:运行以下命令,替换你的密码为实际要设置的密码,复制输出的哈希值
    docker run -it --rm nodered/node-red node -e "console.log(require('bcryptjs').hashSync('你的密码', 8));"
    
  • 启动Node-RED容器时注入环境变量:在启动命令中添加NODE_RED_ADMIN_PASSWORD变量,填入刚才生成的哈希值,完整命令示例:
    docker run -d -p 1880:1880 -v node_red_data:/data -e NODE_RED_ADMIN_PASSWORD='$2a$08$xxxxxxxxxxxxxxxxxxxxxxxxxxxx' nodered/node-red
    
  • 验证:容器启动后访问http://localhost:1880,页面会弹出登录框,输入设置的明文密码即可进入编辑器。

方法二:自定义settings.js配置(灵活度更高)

适合需要多用户权限管理或自定义认证规则的场景:

  • 获取默认settings.js文件:如果已挂载/data卷,直接在卷目录中找到settings.js;未挂载则从容器复制:
    docker cp <容器名称或ID>:/usr/src/node-red/settings.js ./settings.js
    
  • 修改settings.js:找到adminAuth配置块,取消注释并填入用户名和加密后的密码哈希:
    adminAuth: {
        type: "credentials",
        users: [{
            username: "admin",
            password: "$2a$08$xxxxxxxxxxxxxxxxxxxxxxxxxxxx", // 替换为生成的哈希值
            permissions: "*" // 授予全权限,可按需调整为"read"或自定义规则
        }]
    },
    
  • 挂载配置文件启动容器:将修改后的settings.js挂载到容器的/data目录(Node-RED优先读取此目录下的配置),命令示例:
    docker run -d -p 1880:1880 -v ./settings.js:/data/settings.js -v node_red_data:/data nodered/node-red
    
  • 验证:重启容器后访问编辑器,使用配置的用户名和密码登录。

关键注意事项

  • 禁止使用明文密码,必须使用bcrypt生成的哈希值,否则认证会失效。
  • 若容器已运行,修改配置后需执行docker restart <容器名称或ID>使配置生效。
  • 持久化/data卷可避免容器重启后丢失配置和流程数据。

内容的提问来源于stack exchange,提问作者Dodik Surya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:22:04