الوصول إلى 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. - بيانات اعتماد المصادقة الأساسية مخزّنة في
/etc/nginx/auth/node-red.htpasswd. - شهادات TLS مخزّنة في
/etc/nginx/ssl.
إدارة الخدمة
التحقق من حالة الحاوية:
docker ps
عرض السجلات:
docker compose -f /root/node-red/docker-compose.yml logs -f
إعادة تشغيل Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
إعادة تشغيل NGINX:
systemctl restart nginx
مستخدم Node-RED المسؤول (بديل عن المصادقة الأساسية)
يمتلك Node-RED نظام مصادقة داخلياً يمكنه استبدال HTTP Basic Auth.
١. تحديد الموقع settings.js
ملف الإعداد الرئيسي موجود داخل وحدة تخزين Node-RED Docker: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
٢. التفعيل adminAuth
افتح settings.js وإلغاء التعليق عن (أو إضافة) قسم adminAuth يجب أن يبدو شيئاً كالتالي:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
٣. توليد تجزئة كلمة المرور
يمكنك توليد التجزئة من داخل حاوية Node-RED:
docker exec -it node-red-node-red-1 node-red admin hash-pw
ستُطلب منك إدخال كلمة المرور بصيغتها النصية.
انسخ التجزئة الناتجة والصقها كقيمة password في settings.js.
٤. إعادة تشغيل Node-RED
بعد التعديل على settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
٥. تعطيل HTTP Basic Auth في Nginx (اختياري)
تعديل ملف موقع Nginx: /etc/nginx/sites-available/node-red
احذف هذه الأسطر أو أضف تعليقاً عليها:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
أعد تحميل Nginx:
systemctl restart nginx
تفعيل SSL مع نطاق خاص
١. أشر نطاقك إلى عنوان IP الخادم.
٢. عدّل إعداد Nginx واستبدل كلاً من server_name <IP>; بنطاقك (<your-domain>) لكلٍّ من كتلتَي HTTP (المنفذ 80) وHTTPS (المنفذ 443):
vim /etc/nginx/sites-available/node-red
٣. ثبّت Certbot:
apt install -y certbot python3-certbot-nginx
٤. نفِّذ الأمر التالي لإنشاء شهادة Let's Encrypt صالحة:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
٥. استبدل مسارات SSL في إعداد 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;
٦. أعد تشغيل Nginx لتطبيق التغييرات:
systemctl restart nginx
٧. افتح المتصفح وانتقل إلى: https://yourdomain.com