Truy cập Node-RED
- Mở trình duyệt và truy cập:
https://<SERVER_IP> - Cảnh báo SSL trên trình duyệt là điều dự kiến (chứng chỉ tự ký)
- Yêu cầu xác thực (cửa sổ Basic Auth)
- Phương thức xác thực: HTTP Basic Auth
- Thông tin đăng nhập được lưu trữ bảo mật tại:
/root/.cloudzy-creds
File và thư mục quan trọng
- Thư mục cài đặt chính là
/root/node-red. - Tệp orchestration của Docker nằm tại
/root/node-red/docker-compose.yml. - Dữ liệu Node-RED lâu dài được lưu trữ tại
/var/lib/docker/volumes/node-red_node-red-data/_data. - Tệp cấu hình Nginx nằm tại
/etc/nginx/sites-available/node-red. - Thông tin xác thực cơ bản được lưu tại
/etc/nginx/auth/node-red.htpasswd. - Chứng chỉ TLS được lưu tại
/etc/nginx/ssl.
Quản lý dịch vụ
Kiểm tra trạng thái container:
docker ps
Xem log:
docker compose -f /root/node-red/docker-compose.yml logs -f
Khởi động lại Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
Khởi động lại Nginx:
systemctl restart nginx
Tài khoản Admin Node-RED (Thay thế cho Basic Auth)
Node-RED có hệ thống xác thực nội bộ riêng, có thể thay thế HTTP Basic Auth.
1. Xác định vị trí settings.js
Tệp cấu hình chính nằm bên trong volume Docker của Node-RED: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Bật adminAuth
Mở settings.js và bỏ ghi chú (hoặc thêm) phần adminAuth Nội dung sẽ trông giống như sau:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Tạo hash mật khẩu
Bạn có thể tạo hash từ bên trong container Node-RED:
docker exec -it node-red-node-red-1 node-red admin hash-pw
Bạn sẽ được nhắc nhập mật khẩu dạng văn bản thuần.
Sao chép hash vừa tạo và dán vào trường password giá trị trong settings.js.
4. Khởi động lại Node-RED
Sau khi chỉnh sửa settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Tắt xác thực cơ bản HTTP trong Nginx (Tùy chọn)
Chỉnh sửa file site Nginx: /etc/nginx/sites-available/node-red
Xóa hoặc comment out các dòng sau:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Tải lại Nginx:
systemctl restart nginx
Kích hoạt SSL với một tên miền
1. Trỏ tên miền của bạn về IP máy chủ.
2. Sửa cấu hình Nginx và thay thế cả server_name <IP>; với tên miền của bạn (<your-domain>) cho cả block HTTP (cổng 80) và HTTPS (cổng 443):
vim /etc/nginx/sites-available/node-red
3. Cài đặt Certbot:
apt install -y certbot python3-certbot-nginx
4. Chạy lệnh sau để tạo một chứng chỉ Let’s Encrypt hợp lệ:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Thay thế các đường dẫn SSL trong cấu hình Nginx:
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. Khởi động lại Nginx để áp dụng thay đổi:
systemctl restart nginx
7. Mở trình duyệt và truy cập: https://yourdomain.com