Node-RED

Windows, Linux ve Raspberry Pi'ye Node-RED Nasıl Kurulur?

Node-RED'i Windows, Linux, Raspberry Pi ve Docker'a kurmak, açılışta otomatik çalıştırmak, editörü kilitlemek ve canlı bir MQTT broker'a subscribe olan ilk flow'u oluşturmak için pratik bir rehber.

Bir MQTT broker'a bağlı Node-RED editörünü çalıştıran Windows, Linux ve Raspberry Pi makinelerini gösteren Node-RED kurulumu çizimi
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

Node-RED'i bir Windows dizüstü bilgisayardan fabrika rafındaki bir Raspberry Pi'ye kadar neredeyse her makineye birkaç dakikada kurabilirsiniz. Bu rehber her platformu tek tek ele alıyor, Node-RED'i servis olarak nasıl çalıştıracağınızı gösteriyor, editörü güvenceye alıyor ve gerçek mesajların gelişini görebilmeniz için canlı bir MQTT broker'a subscribe olan çalışan bir ilk flow ile bitiyor.

Başlamadan Önce Neye İhtiyacınız Var?

Node-RED bir Node.js uygulamasıdır; bu yüzden tek gerçek ön koşul desteklenen bir Node.js sürümüdür. Node-RED 4.x, Node.js 18 veya üstünü gerektirir ve yeni sürümler bu minimumu yükseltebilir; bu nedenle mümkünse güncel Node.js LTS sürümünü kullanın. Ayrıca şunlara ihtiyacınız var:

  • Yazılım kurma yetkisine sahip bir kullanıcı hesabı (Windows'ta yönetici, Linux'ta sudo).
  • Kurulum sırasında npm'e (Node.js paket deposu) ağ erişimi.
  • Editörü 1880 portunda açmak için bir tarayıcı.
Platform Önerilen yöntem Açılışta çalışır mı Tipik kullanım
Windows 10/11 Node.js yükleyicisi + npm PM2 veya bir servis sarmalayıcıyla Geliştirme, edge PC'ler
Debian / Ubuntu Resmi kurulum betiği Evet (systemd) Sunucular, gateway'ler
Raspberry Pi OS Resmi kurulum betiği Evet (systemd) Edge gateway'ler, ev laboratuvarları
Docker olan her işletim sistemi nodered/node-red imajı Evet (restart policy) Tekrarlanabilir dağıtımlar

Node-RED'i Windows'a Kurmak

  1. nodejs.org adresinden Node.js LTS yükleyicisini (.msi) indirin ve varsayılan seçeneklerle çalıştırın. Node.js'i PATH'e ekleyen seçeneği kabul edin.
  2. Yeni bir PowerShell penceresi açın ve sürümleri kontrol edin:
node --version
npm --version
  1. Node-RED'i global olarak kurun:
npm install -g --unsafe-perm node-red
  1. Başlatın:
node-red

Log, Server now running at http://127.0.0.1:1880/ benzeri bir satırla biter. Bu adresi tarayıcınızda açtığınızda editör görünür. Flow'larınız ve ayarlarınız C:\Users\<you>\.node-red dizininde saklanır.

Terminali kapattıktan sonra Node-RED'in çalışmaya devam etmesi ve açılışta başlaması için yaygın bir yaklaşım PM2 kullanmaktır:

npm install -g pm2
pm2 start "$env:APPDATA\npm\node_modules\node-red\red.js" --name node-red
pm2 save

Windows'ta PM2'nin açılışta başlaması için pm2-installer gibi ek bir yardımcıya veya bir Windows servis sarmalayıcısına ihtiyaç vardır; onun talimatlarını izleyin ya da oturum açılışında pm2 resurrect çalıştırmak için Görev Zamanlayıcı'yı kullanın.

Node-RED'i Linux ve Raspberry Pi'ye Kurmak

Debian, Ubuntu ve Raspberry Pi OS'ta Node-RED projesi, uygun bir Node.js sürümünü ve Node-RED'i kuran ve bir systemd servisi ayarlayan bir kurulum betiği sağlar. Betiği root olarak değil, sudo yetkisine sahip normal bir kullanıcı olarak çalıştırın:

bash <(curl -sL https://github.com/node-red/linux-installers/releases/latest/download/update-nodejs-and-nodered-deb)

Betik, mevcut bir Node.js kurulumunun değiştirilip değiştirilmeyeceği ve Pi'ye özgü node'ların kurulup kurulmayacağı gibi birkaç soru sorar. Bittiğinde Node-RED'i başlatın ve açılışta etkinleştirin:

node-red-start                      # servisi başlatır ve log'u izler
sudo systemctl enable nodered.service

Sonrasında işinize yarayacak komutlar:

node-red-stop
node-red-restart
node-red-log

Ardından http://<device-ip>:1880 adresine gidin. Pi'nin adresini bulmak için hostname -I çalıştırın. Aynı betik, daha sonra güncelleme yapmanın da en kolay yoludur: yeniden çalıştırdığınızda Node.js'i ve Node-RED'i yerinde günceller. Tüm ayrıntılar ve seçenekler resmi Node-RED başlangıç belgelerinde yer alır.

Diğer dağıtımlarda Node.js LTS'yi paket yöneticinizden veya NodeSource'tan kurun, sudo npm install -g --unsafe-perm node-red komutunu çalıştırın ve ardından kendi systemd biriminizi oluşturun.

Node-RED'i Docker ile Kurmak

Zaten container kullanıyorsanız Docker en temiz seçenektir; çünkü güncellemeler ve geri dönüşler yalnızca imaj etiketlerinden ibarettir:

docker volume create node_red_data
docker run -d --name nodered --restart unless-stopped \
  -p 1880:1880 -v node_red_data:/data nodered/node-red:latest

/data volume'ü flow'larınızı, kimlik bilgilerinizi ve kurulu node'ları tutar; böylece bunlar container güncellemelerinden etkilenmez. Sabit bir sürüm için latest yerine belirli bir etiket yazın. Node-RED Docker rehberimiz Docker Compose, ortam değişkenleri ve yedeklemeleri ele alır.

Dışarıya Açmadan Önce Editörü Güvenceye Alın

Varsayılan olarak editörde oturum açma yoktur. 127.0.0.1 üzerinde bu sorun değildir; ancak bir Raspberry Pi veya sunucuda ağdaki herkes 1880 portunu açıp bir Function veya Exec node'u aracılığıyla istediği kodu çalıştırabilir. Node-RED'i paylaşılan bir ağda kullanmadan önce:

  1. Bir parola hash'i oluşturun:
node-red admin hash-pw
  1. Kullanıcı dizininizdeki settings.js dosyasını (~/.node-red/settings.js) düzenleyin ve adminAuth ayarını etkinleştirin:
adminAuth: {
    type: "credentials",
    users: [{
        username: "admin",
        password: "PASTE_THE_BCRYPT_HASH_HERE",
        permissions: "*"
    }]
},
  1. Saklanan kimlik bilgilerinin sizin kontrol ettiğiniz bir anahtarla şifrelenmesi için aynı dosyada bir credentialSecret belirleyin, ardından Node-RED'i yeniden başlatın.

HTTPS, reverse proxy'ler ve ek sağlamlaştırma için Node-RED nasıl güvenceye alınır yazısına bakın.

Node-RED'i Kurduktan Sonra İlk MQTT Flow'unuz

Şimdi Node-RED'i gerçek bir broker'a bağlayın. broker.connectmq.com adresindeki herkese açık MQTT test broker'ı anonim bağlantıları kabul eder; böylece hesap oluşturmadan test edebilirsiniz. Benzersiz bir topic öneki kullanın ve herkese açık alanın herkes tarafından görülebildiğini unutmayın.

Editörde menüyü (sağ üst) açın, Import seçeneğini seçin, aşağıdaki JSON'u yapıştırın ve Import düğmesine tıklayın:

[
  {
    "id": "c0a1b2c3d4e5f601",
    "type": "mqtt-broker",
    "name": "ConnectMQ public",
    "broker": "broker.connectmq.com",
    "port": "1883",
    "clientid": "nodered-first-4d9e",
    "autoConnect": true,
    "usetls": false,
    "protocolVersion": "4",
    "keepalive": "60",
    "cleansession": true,
    "autoUnsubscribe": true
  },
  {
    "id": "c0a1b2c3d4e5f602",
    "type": "inject",
    "name": "Send test reading",
    "props": [{ "p": "payload" }, { "p": "topic", "vt": "str" }],
    "repeat": "",
    "once": false,
    "topic": "connectmq/demo/4d9e/sensor",
    "payload": "{\"temperature\":21.5}",
    "payloadType": "json",
    "x": 160,
    "y": 80,
    "wires": [["c0a1b2c3d4e5f603"]]
  },
  {
    "id": "c0a1b2c3d4e5f603",
    "type": "mqtt out",
    "name": "Publish",
    "topic": "",
    "qos": "0",
    "retain": "false",
    "broker": "c0a1b2c3d4e5f601",
    "x": 380,
    "y": 80,
    "wires": []
  },
  {
    "id": "c0a1b2c3d4e5f604",
    "type": "mqtt in",
    "name": "Subscribe demo topics",
    "topic": "connectmq/demo/4d9e/#",
    "qos": "0",
    "datatype": "auto-detect",
    "broker": "c0a1b2c3d4e5f601",
    "nl": false,
    "rap": true,
    "rh": 0,
    "inputs": 0,
    "x": 180,
    "y": 160,
    "wires": [["c0a1b2c3d4e5f605"]]
  },
  {
    "id": "c0a1b2c3d4e5f605",
    "type": "debug",
    "name": "Show message",
    "active": true,
    "tosidebar": true,
    "console": false,
    "complete": "true",
    "targetType": "full",
    "x": 410,
    "y": 160,
    "wires": []
  }
]

Client ID'de ve her iki topic'te 4d9e yerine kendi rastgele karakterlerinizi yazın, ardından Deploy düğmesine tıklayın. MQTT node'ları yeşil bir "connected" durumu gösterir. Inject node'unun üzerindeki düğmeye tıkladığınızda debug kenar çubuğu, auto-detect ayarı sayesinde payload alanı zaten nesneye dönüştürülmüş tam mesajı gösterir. mosquitto_pub -h broker.connectmq.com -p 1883 -i cli-4d9e -t connectmq/demo/4d9e/cli -m hello gibi başka bir araçtan da publish yapıp mesajın gelişini izleyebilirsiniz.

Buradan sonra Node-RED MQTT eğitimi topic'leri, QoS'u, JSON işlemeyi ve panoları derinlemesine ele alır.

Kurulum Sorunlarını Gidermek

  • node-red tanınmıyor (Windows): güncellenmiş PATH'in yüklenmesi için PowerShell'i kapatıp yeniden açın veya %APPDATA%\npm dizininin PATH'te olduğunu kontrol edin.
  • 1880 portu zaten kullanımda: başka bir örnek çalışıyor. Onu durdurun veya node-red -p 1881 ile başlatın.
  • Editöre başka bir makineden erişilemiyor: güvenlik duvarını kontrol edin ve Node-RED'in settings.js içindeki uiHost ile yalnızca localhost'a bağlanmadığını doğrulayın.
  • MQTT node'ları "connecting" durumunda takılı kalıyor: 1883 portuna giden erişimi kontrol edin ve client ID'nin boş olmadığından veya başka bir istemci tarafından kullanılmadığından emin olun. Node-RED MQTT bağlanmıyor rehberimiz daha fazla nedeni listeler.
  • Kurulum betiği eski bir Pi'de başarısız oluyor: ARMv6 CPU'lu çok eski modeller güncel Node.js derlemeleri tarafından desteklenmeyebilir; yönlendirme için yükleyicinin çıktısını kontrol edin.

Herkese Açık Broker'dan Üretime Geçiş

Herkese açık broker ilk flow için mükemmeldir, ancak üretim flow'ları özel kimlik bilgileri ve şifreleme gerektirir. Broker config node'unda bir onay kutusu ve birkaç alandan ibaret olan TLS ile 8883 portuna geçin; Node-RED MQTT TLS rehberimiz bunu adım adım anlatır. Broker'ı kendiniz çalıştırmak yamalar, sertifikalar ve kapasite planlaması demektir; bu yüzden birçok ekip Node-RED'i barındırılan bir MQTT broker ile birlikte kullanır. ConnectMQ, Node-RED'e 8883 portunda TLS, portalda oluşturulan kimlik bilgileri ve flow'larınızın ne publish ettiğini kontrol etmek için canlı bir topic gezgini içeren özel bir broker sunar. Daha geniş bir bakış için bulut MQTT broker rehberimize göz atın.

Node-RED Flow'larınızı ConnectMQ'da Çalıştırın

app.connectmq.com adresinden kaydolun, kredi kartı gerektirmeyen ücretsiz Serverless planını seçin, bir broker oluşturun ve oluşturulan kullanıcı adı, parola ve client ID'yi mqtt-broker config node'unuza yapıştırın. Yeni Node-RED kurulumunuz artık özel ve şifreli bir ConnectMQ broker'ına bağlıdır.

Sık Sorulan Sorular

Node-RED için hangi Node.js sürümüne ihtiyacım var?

Node-RED 4.x, Node.js 18 veya üstünü gerektirir. Platformunuzun özel bir kısıtı yoksa güncel Node.js LTS sürümünü kullanın.

Node-RED flow'larımı nerede saklar?

Kullanıcı dizininde; varsayılan olarak Linux ve macOS'ta ~/.node-red, Windows'ta C:\Users\<you>\.node-red, Docker container'ında ise /data. flows_cred.json dahil bu klasörü yedekleyin.

Node-RED'i nasıl güncellerim?

Debian, Ubuntu ve Raspberry Pi OS'ta kurulum betiğini yeniden çalıştırın. npm ile npm install -g --unsafe-perm node-red komutunu çalıştırın. Docker ile daha yeni bir imajı çekin ve container'ı aynı volume ile yeniden oluşturun.

Node-RED'i internet erişimi olmadan kurabilir miyim?

Evet, ancak Node.js'i ve npm paketlerini başka bir makinede önceden indirip aktarmanız ya da bir Docker imajını başka yerde derleyip yüklemeniz gerekir. Daha sonra bir bulut broker'a bağlanmak elbette giden ağ erişimi gerektirir.

İlgili yazılar

ISA-95 Topic'leriyle Node-RED OPC UA İstemcisinden MQTT'ye

Bir PLC veya simülasyon sunucusundaki OPC UA değişkenlerine node-red-contrib-opcua ile abone olun, node ID'lerini ISA-95 tarzı MQTT topic'lerine eşleyin ve değerleri kalite bilgisi ve zaman damgalarıyla yayınlayın.

8 dk okuma

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.