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
- 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. - Yeni bir PowerShell penceresi açın ve sürümleri kontrol edin:
node --version
npm --version
- Node-RED'i global olarak kurun:
npm install -g --unsafe-perm node-red
- 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:
- Bir parola hash'i oluşturun:
node-red admin hash-pw
- Kullanıcı dizininizdeki
settings.jsdosyasını (~/.node-red/settings.js) düzenleyin veadminAuthayarını etkinleştirin:
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "PASTE_THE_BCRYPT_HASH_HERE",
permissions: "*"
}]
},
- Saklanan kimlik bilgilerinin sizin kontrol ettiğiniz bir anahtarla şifrelenmesi için aynı dosyada bir
credentialSecretbelirleyin, 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-redtanınmıyor (Windows): güncellenmiş PATH'in yüklenmesi için PowerShell'i kapatıp yeniden açın veya%APPDATA%\npmdizininin PATH'te olduğunu kontrol edin.- 1880 portu zaten kullanımda: başka bir örnek çalışıyor. Onu durdurun veya
node-red -p 1881ile başlatın. - Editöre başka bir makineden erişilemiyor: güvenlik duvarını kontrol edin ve Node-RED'in
settings.jsiçindekiuiHostile 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.



