访问 Node-RED
- 打开浏览器,访问:
https://<SERVER_IP> - 浏览器出现 SSL 警告属于正常现象(自签名证书)
- 需要身份验证(Basic Auth 弹窗)
- 验证方式:HTTP Basic Auth
- 凭据安全存储于:
/root/.cloudzy-creds
重要文件与目录
- 主安装目录位于
/root/node-red. - Docker 编排文件位于
/root/node-red/docker-compose.yml. - Node-RED 持久化数据存储于
/var/lib/docker/volumes/node-red_node-red-data/_data. - Nginx 配置文件位于
/etc/nginx/sites-available/node-red. - Basic 认证凭据存储于
/etc/nginx/auth/node-red.htpasswd. - TLS 证书存储于
/etc/nginx/ssl.
Service Management
查看容器状态:
docker ps
View logs:
docker compose -f /root/node-red/docker-compose.yml logs -f
重启 Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
Restart Nginx:
systemctl restart nginx
Node-RED 管理员用户(Basic Auth 的替代方案)
Node-RED 内置了自己的认证系统,可替代 HTTP Basic Auth。
1. Locate settings.js
主配置文件位于 Node-RED 的 Docker 数据卷中: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Enable adminAuth
Open settings.js 并取消注释(或添加) adminAuth 该部分内容应如下所示:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. 生成密码哈希
你可以在 Node-RED 容器内生成哈希值:
docker exec -it node-red-node-red-1 node-red admin hash-pw
系统会提示你输入明文密码。
复制生成的哈希值并将其粘贴为 password value in settings.js.
4. 重启 Node-RED
After editing settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. 在 Nginx 中禁用 HTTP Basic Auth(可选)
编辑 Nginx 站点配置文件: /etc/nginx/sites-available/node-red
删除或注释掉以下行:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Reload Nginx:
systemctl restart nginx
通过域名启用 SSL
1. 将你的域名指向服务器 IP。
2. 编辑 Nginx 配置,替换以下两处 server_name <IP>; 使用您的域名(<your-domain>) 适用于 HTTP(端口 80)和 HTTPS(端口 443)的规则块:
vim /etc/nginx/sites-available/node-red
3. Install Certbot:
apt install -y certbot python3-certbot-nginx
4. 运行以下命令,生成有效的 Let's Encrypt 证书:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. 在 Nginx 配置中替换 SSL 路径:
vim /etc/apache2/sites-available/node-red
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. 重启 Nginx 以应用更改:
systemctl restart nginx
7. 打开浏览器,访问: https://yourdomain.com