ข้ามไปยังเนื้อหาหลัก
ลด 50% ทุกแพลน เวลาจำกัด เริ่มต้นที่ $2.48/mo
Node-RED

Node-RED

Node-RED คือเครื่องมือเขียนโปรแกรมแบบ visual flow สามารถลากและวางลอจิกสำหรับ IoT, APIs และ pipeline อัตโนมัติภายในบ้าน พร้อม node จากชุมชนกว่า 4,000 รายการ พัฒนาโดย IBM ภายใต้ OpenJS Foundation และเป็น automation engine มาตรฐานในวงการ industrial IoT

ภาพรวม

23.3k

GitHub stars

240

การดูหน้า

294

การติดตั้งที่ใช้งานอยู่

ใบอนุญาต Apache-2.0 เวอร์ชัน Latest OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

การติดตั้งที่ใช้งานอยู่เป็นข้อมูลตัวอย่าง (ตัวอย่างก่อนเปิดตัว); จะเชื่อมต่อข้อมูลจริงก่อนเปิดตัว

การเข้าถึง Node-RED

  • เปิด browser และไปที่: https://<SERVER_IP>
  • คาดว่าจะมีคำเตือน SSL ของ browser (self-signed certificate)
  • ต้องมีการยืนยันตัวตน (Basic Auth popup)
  • วิธียืนยันตัวตน: HTTP Basic Auth
  • ข้อมูล credentials ถูกเก็บอย่างปลอดภัยใน: /root/.cloudzy-creds

ไฟล์และไดเรกทอรีที่สำคัญ

  • ไดเรกทอรีติดตั้งหลักอยู่ที่ /root/node-red.
  • ไฟล์ orchestration ของ 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 authentication ถูกเก็บไว้ที่ /etc/nginx/auth/node-red.htpasswd.
  • ใบรับรอง TLS ถูกเก็บไว้ใน /etc/nginx/ssl.

การจัดการบริการ

ตรวจสอบสถานะ container:

docker ps

ดู logs:

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

ผู้ใช้ Admin ของ Node-RED (ทางเลือกแทน Basic Auth)

Node-RED มีระบบยืนยันตัวตนภายในของตัวเอง ซึ่งสามารถใช้แทน HTTP Basic Auth ได้

1. ค้นหาตำแหน่ง settings.js

ไฟล์คอนฟิกหลักอยู่ใน volume Docker ของ Node-RED: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js

2. เปิดใช้งาน adminAuth

เปิด settings.js และยกเลิกคอมเมนต์ (หรือเพิ่ม) adminAuth ส่วนนี้ ควรมีหน้าตาประมาณนี้:

  adminAuth: {
      type: "credentials",
      users: [
          {
              username: "admin",
              password: "<HASHED_PASSWORD>",
              permissions: "*"
      }]
  },

3. สร้าง password hash

คุณสามารถสร้าง hash ได้จากภายใน container ของ Node-RED:

docker exec -it node-red-node-red-1 node-red admin hash-pw

ระบบจะให้คุณกรอกรหัสผ่านแบบ plain text

คัดลอก hash ที่ได้และวางเป็นค่าของ password ค่าใน settings.js.

4. รีสตาร์ท Node-RED

หลังจากแก้ไข settings.js:

docker compose -f /root/node-red/docker-compose.yml restart

5. ปิดใช้งาน 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 กับโดเมน

1. ชี้โดเมนของคุณไปยัง IP ของ server

2. แก้ไข config ของ Nginx และเปลี่ยนทั้งคู่ server_name <IP>; กับโดเมนของคุณ (<your-domain>) สำหรับทั้ง HTTP (port 80) และ HTTPS (port 443) blocks:

vim /etc/nginx/sites-available/node-red

3. ติดตั้ง Certbot:

apt install -y certbot python3-certbot-nginx

4. รันคำสั่งต่อไปนี้เพื่อสร้าง Let’s Encrypt certificate ที่ใช้ได้:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

5. แทนที่ SSL paths ใน Nginx config:

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. เปิด browser และไปที่: https://yourdomain.com

เพิ่มเติมในเครื่องมือพัฒนา

แอปที่เกี่ยวข้อง

ติดตั้ง Node-RED เลย เริ่มต้น $2.48/เดือน