Node-RED(ノードレッド)は、ブラウザ上で「ノード」と呼ぶ処理の部品を線でつなぎ、データの流れ(フロー)としてプログラムを組み立てるローコード開発ツールです。実行環境はNode.jsで、センサーからMQTTで届く値を加工してデータベースへ入れる、Web APIを数分で立てる、といった「つなぐ処理」を得意とします。ライセンスはApache License 2.0で、無料かつ商用利用もできます。
最新版は2026年10月21日公開の5.0.9で、5.0系はNode.js 22.9以上が必須です。この記事では、5.0.9をローカルで動かした結果を交えながら、できること・活用事例・料金・導入・使い方・本番運用前の設定を順に説明します。
まとめ:Node-REDの要点
- Node-RED=ノードをつないでフローを組む、Node.js製のローコード開発ツール。読み方はノードレッド。処理の中身を書くときの言語はJavaScript
- 2013年にIBMの社内プロジェクトとして生まれ、現在はOpenJS Foundationのプロジェクト。GitHubのスター数は23,776(2026年10月23日時点)
- 料金は無料。商用利用も可能(Apache License 2.0)。有償なのは運用管理サービスのFlowFuseで、価格は問い合わせ制
- 最新は5.0.9(2026年10月21日)。5.0系はNode.js 22.9以上が必須で、公式の推奨は24。Node.js 18〜20の環境や公式が対象外としたRaspberry Pi 3B以前は4.1系(4.1.17)を使うが、4.xの保守は2026年12月31日まで
- 導入は
npm install -g node-redかdocker run -p 1880:1880 nodered/node-red。エディタはhttp://127.0.0.1:1880で開く - 初期状態は認証が無く、同じネットワークの誰でもフローを書き換えてデプロイできる。LANやクラウドに置く前に
adminAuthとhttpNodeAuthを設定する - 製造業のIoT基盤や帳票システムとの連携に採用例があり、産業用ゲートウェイにはNode-REDを標準で載せた製品もある
Node-REDの仕組み:ノード・フロー・msgの関係
Node-REDの画面(フローエディタ)には、左に部品一覧(パレット)、中央に作業領域、右にデバッグなどのサイドバーがあります。「inject(一定間隔で発火)」「http in(HTTPリクエストを受ける)」「mqtt in(MQTTを購読する)」などのノードを置き、出力端子から次のノードの入力端子へ線を引くと、上流から下流へ msg というJavaScriptオブジェクトが順に渡されます。主な値は msg.payload に入り、各ノードがそれを書き換えて次へ送ります。
画面右上の「デプロイ」を押すと、組んだフローがサーバー側のNode.jsプロセスで動き始めます。フローは flows.json というJSONファイルに保存されるため、ファイルごとバックアップやGit管理ができます。既存ノードで足りない条件分岐やデータ整形は、「function」ノードにJavaScriptを数行書いて補います。完全なノーコードではなく、定型部分をノードで済ませ、固有の処理だけをコードで書く道具です。
名前の由来と開発の経緯
公式サイトの沿革によると、Node-REDは2013年初めにIBM Emerging Technology ServicesのNick O’Leary氏とDave Conway-Jones氏が始めた副業的なプロジェクトで、当初はMQTTのトピック間の対応づけを可視化する試作でした。同年9月にオープンソース化され、2016年10月にJS Foundationの創設プロジェクトとなり、2019年に同財団とNode.js Foundationが統合してOpenJS Foundationになりました。2021年にはO’Leary氏が企業向けの運用基盤を提供するFlowFuse社を設立しています。
名前は「Code Red」をもじった言葉遊びで、「Node」はフロー型のノードとNode.jsの両方を指します。「RED」が何の略かは公式にも決まっていません。
日本語の情報源とコミュニティ
日本ではNode-RED日本ユーザ会が、公式ドキュメントの日本語訳やフォーラムを公開しています。運営メンバーには、公式サイトでコア貢献者に挙がる日立製作所の横井一仁(Kazuhito Yokoi)氏も名を連ね、2026年11月21日にはNode-RED Con Japan 2026を開く予定です。日本語訳は英語版より更新が遅れることがあるので、版の要件は英語の原文で確認します。
Node-REDでできること:用途と使うノード
Node-REDが向くのは、機器・API・データベースの間でデータを受け取り、形を変えて渡す処理です。標準ノードと追加ノードの組み合わせで、次のような処理を組めます。
| やりたいこと | 主に使うノード | 補足 |
|---|---|---|
| センサー値の収集 | mqtt in/serial in | MQTTは標準、シリアルは追加 |
| 設備・PLCとの通信 | Modbus・OPC UA・S7の追加ノード | パレット管理から導入 |
| Web APIの作成 | http in → http response | 標準ノードのみで可 |
| 外部APIの呼び出し | http request | 定期実行はinjectと組む |
| データの整形・分岐 | change/switch/function | JSONata式も使える |
| DBへの保存 | 各DB用の追加ノード | PostgreSQL・InfluxDBなど |
| 画面での可視化 | @flowfuse/node-red-dashboard | グラフ・ボタン・入力欄 |
MQTTの受け口になるブローカー側の仕組みはMQTTブローカーとは?仕組み・主要ブローカー比較とMosquittoでの構築手順【2.1対応】で、工場設備のデータをMQTT上で扱う規約はSparkplug Bとは?MQTT上の産業データ規約と状態管理を実装目線で解説で詳しく扱っています。
活用事例:日立のIoT基盤・帳票システム連携・産業用ゲートウェイ
- 日立製作所のIoT基盤:日立評論(2020年第102巻3号)によると、Lumadaのプラットフォームはアプリケーション開発環境の層(Studio)にNode-REDを導入し、その利用を推奨しています。IT以外の専門家も読める「実行できる構成図」として使う位置づけで、執筆者の西山博泰氏は公式のコア貢献者の一人です
- 現場帳票システムと業務データの連携:i-Reporterの販売代理店であるパナソニックFSエンジニアリングは、i-Reporterの公式コラムで、PostgreSQLのデータやQRコード・画像を帳票へ表示する連携をNode-REDで組んだサンプルを公開しています
- 産業用ゲートウェイへの標準搭載:ぷらっとホームのOpenBlocks IoTシリーズはNode-REDと製品向けのノードを最初から載せています。Raspberry Piベースの産業用コントローラーSeeed StudioのreComputer R1000は、Node-REDでModbus TCP・BACnet IP・Siemens PLC(S7)につなぐ手順やOPC UAサーバーにする手順が公式Wikiにまとまっています
- 家庭の自動化:スマート家電のAPIや温湿度センサーをつなぎ、条件に応じて家電を動かす。構成の組み方はラズパイでスマートホームを自作する方法|できること・Home Assistant構成・赤外線家電の操作で解説しています
製造現場でNode-REDが担うのは、設備から値を取り、整えて上位へ渡す中継です。設備側の通信規格はOPC UAとは?情報モデルとOPC Classicとの違い・採用判断を実装目線で解説、取得方式とタグの設計はPLCのデータ収集|四方式の選び分けとタグ設計・欠測対策を実装目線で解説が参考になります。クラウドへ送る場合のAWS側の受け口はAWS IoT Coreとは?機能・料金・MQTT接続方法をまとめて解説で扱っています。設備データの収集から可視化までの構成設計は、一想のAI/IoTソリューションでも支援しています。
ダッシュボードの選定:FlowFuse Dashboard
長く使われてきた node-red-dashboard(npm上の最新は3.6.6)は、公式のノード一覧で2024年6月27日付で非推奨とされ、npmでも「No longer maintained」と表示されます。代替として示されているのは、FlowFuse社が開発する @flowfuse/node-red-dashboard(Dashboard 2.0、2026年10月22日公開の1.34.0)と node-red-contrib-uibuilder です。1.34.0はNode-RED 3.0以上が条件で、4.1系・5.0系のどちらにも入ります。古い解説記事の手順で旧版を入れず、新規構築では前者を選びます。
Node-REDの料金と商用利用の条件
Node-RED本体に料金はかかりません。自分のPC・サーバー・クラウドのVMで動かす場合も、本体の利用料とは別に、計算資源・通信・外部API・保守運用の費用が構成に応じて発生します。
Apache License 2.0で商用利用できる範囲
Node-REDはApache License 2.0で公開されています。社内システムに組み込む、Node-REDで作ったフローを顧客に納品する、自社製品に同梱して販売する、といった商用利用はいずれも可能です。再配布するときは第4条に従い、ライセンスの写しを渡し、改変したファイルには変更した旨を示し、元の著作権・特許・商標・帰属の表示を残します。元の配布物にNOTICEファイルがあれば、その帰属表示も含めます。
注意したいのは、追加でインストールするノード(コントリビュートノード)のライセンスが個別に決まっている点です。多くはApache-2.0やMITですが、製品に同梱して配る場合は、使うノードの package.json の license 欄を1つずつ確認してください。
有償の選択肢:FlowFuse
複数台のNode-REDを一元管理したい、ユーザー管理や監査ログが必要、といった企業向けの要件には、FlowFuse社の有償サービスがあります。料金ページ(2026年10月23日確認)では、OT向けのEdge、IT向けのHub、多数の端末向けのFleetの3製品に分かれ、いずれも価格は「Contact Us(問い合わせ)」で金額は載っていません。提供形態はFlowFuse Cloudと、DockerやKubernetesで自社環境に置くセルフホストの2通りです。Node-RED本体を使うだけならFlowFuseの契約は不要です。
Node-REDのインストール手順(5.0系)
Node.jsの版の選び方
Node-REDは版ごとに必要なNode.jsが違います。npmレジストリの engines 指定と公式の対応版ページでは次のとおりです。
| Node-RED | 最新(公開日) | 必要なNode.js |
|---|---|---|
| 5.0系 | 5.0.9(2026-10-21) | 22.9以上(推奨24) |
| 4.1系(保守) | 4.1.17(2026-10-21) | 18.5以上(保守は2026-12-31まで) |
4.1系はnpmの v4-maintenance タグで保守リリースが続いていますが、公式のリリース計画では4.xの保守終了は2026年12月31日です。土台のNode.js 18と20もサポートが終わっています。4.1系+Node.js 20以前は既存機器のための暫定運用と考え、新規構築はNode.js 24と5.0系にします。Node.js 24は2026年10月20日に保守期間(Maintenance LTS)へ移りましたが、サポートは2028年4月末まで続きます。Node.js自体の版の選び方はNode.jsとは?仕組み・版の選び方・標準機能で動かす手順を実装目線で解説を参照してください。
npmによるNode-REDのインストールと起動
Node.jsが入っていれば、npmで全体にインストールします。
sudo npm install -g node-red
node-red
起動ログに Server now running at http://127.0.0.1:1880/ と出たら、ブラウザでそのURLを開くとフローエディタが表示されます。フロー・設定・追加ノードは、ホームディレクトリの .node-red フォルダ(ユーザーディレクトリ)に保存されます。
Windowsでは、公式のWindows向け手順どおり、Node.js公式サイトからLTS版のMSIを入れ、開き直したPowerShellで npm install -g node-red を実行します(sudo は付けない)。このページの出力例はNode.js 18のままですが、入れるのは公式が推奨するNode.js 24です。
DockerによるNode-REDの起動とデータ永続化
公式のDockerガイドにある最小構成は次のコマンドです。-v node_red_data:/data を付けないと、コンテナを作り直したときにフローが消えます。
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
Docker Hubのタグは版の選び方に直結します。2026年10月23日にダイジェストを照合したところ、latest と latest-24 は5.0.9(Node.js 24)でしたが、latest-22 は4.1.17-22、latest-debian は4.1.17-debianと同じイメージでした。名前に「latest」が付いていても5.0系とは限りません。5.0系を固定したいときは nodered/node-red:5.0.9 や 5.0-debian のように版を書きます。Docker自体の導入はDockerとは|仮想マシンとの違い・必要スペック・Desktop/Engineの違いとインストール手順【2026年10月】で解説しています。
Raspberry Piへの導入と自動起動設定
Raspberry PiなどDebian系のOSには、Node.jsとNode-REDをまとめて入れる公式スクリプトがあります。
bash <(curl -sL https://github.com/node-red/linux-installers/releases/latest/download/install-update-nodered-deb)
node-red-start
sudo systemctl enable nodered.service
3行目を実行しておくと、電源投入時にNode-REDが自動で起動します。同じスクリプトを再実行すると、Node.jsとNode-REDの更新にも使えます。スクリプトが入れるNode.jsは既定で24で、--node22・--node26 で版を変えられます。
5.0系は64ビットOSが前提です。5.0の公開告知は、Node.jsプロジェクトが32ビットARM(arm/v7)向けのイメージを作らなくなったことを理由に、Raspberry Pi 3B以前をサポート対象外としました。Docker Hubの5.0.9イメージもamd64とarm64だけで、arm/v7版があるのは4.1系(4.1.17-22 など)です。32ビットOSの機器を使い続ける場合は、スクリプトの --nodered-version=4.1.17 で4.1系を指定できますが、保守終了の2026年12月31日までに機器の入れ替えを計画してください。
Node-REDの使い方:HTTP APIを1本作る手順
ノードをつなぐ操作の流れを、「/hello?name=issoh にアクセスするとJSONを返すAPI」を例に示します。
- パレットの「ネットワーク」から「http in」を作業領域へドラッグし、URLに
/hello、メソッドにGETを設定する - 「function」ノードを置き、下のコードを書く
- 「http response」ノードを置き、http in → function → http response の順に線でつなぐ
- 右上の「デプロイ」を押し、ブラウザかcurlで
http://127.0.0.1:1880/hello?name=issohを開く
functionノードに書くコードです。クエリ文字列は msg.req.query に入っています。
const name = msg.req.query.name || "guest";
msg.payload = { message: `hello ${name}`, at: new Date().toISOString().slice(0, 10) };
return msg;
Node-RED 5.0.9(Node.js v26.5.0)で、2026年10月23日の朝6時台(日本時間)に実行すると、次のJSONが返りました。toISOString() はUTCの日付を返すため、日本時間の午前9時より前は前日の日付になります。日本時間で扱いたい処理では、ここをタイムゾーン指定の書式に置き換えます。
$ curl "http://127.0.0.1:1880/hello?name=issoh"
{"message":"hello issoh","at":"2026-10-22"}
動きを確かめたいときは、functionノードの出力に「debug」ノードをつなぎます。右側のデバッグタブには初期設定で msg.payload が表示され、msg 全体を見たいときはdebugノードの出力を「msgオブジェクト全体」に切り替えます。
フローの書き出しと読み込み
組んだフローは、右上のメニュー「書き出し」でJSONとして取り出せ、「読み込み」で別のNode-REDへ貼り付けられます。上のAPIをJSONで書くと次の形になり、これを読み込めば同じフローが再現されます。x・y は画面上の配置で、省くとノードが重なって読み込まれます。
[
{"id":"h1","type":"http in","url":"/hello","method":"get","x":120,"y":80,"wires":[["f1"]]},
{"id":"f1","type":"function","func":"const name = msg.req.query.name || \"guest\";\nmsg.payload = { message: `hello ${name}`, at: new Date().toISOString().slice(0, 10) };\nreturn msg;","outputs":1,"x":300,"y":80,"wires":[["r1"]]},
{"id":"r1","type":"http response","x":480,"y":80,"wires":[]}
]
Node-RED 5.0の変更点と4.xからの移行
5.0.0は2026年6月9日に公開されました。公式の変更履歴と公開告知から、利用者に影響する点を挙げます。
- Node.js 22.9以上が必須(推奨は24)。4.x時代の18〜20の環境ではそのまま上げられない
- パレット管理が使うnpmをNode-RED自体に同梱し、別途npmが入っていなくても追加ノードを導入できるようになった。管理APIの既定のCORS設定は削除された
- サイドバーを刷新し、上下2つのパネルを同時に表示できるようになった。ダークテーマが標準で入り、5.0.9からは初期値がOSの設定に合わせる「auto」になった
- functionノードから
node.linkcallでLink Inノードを呼び出し、応答を待てるようになった - ESモジュール形式のノードをインストールできるようになった
- 新規に作られる資格情報ファイル(
flows_cred.json)の置き場所が、ユーザーディレクトリではなくフローファイルの隣になった
5.0.1以降は不具合修正が中心ですが、挙動が変わるものもあります。5.0.8ではデプロイのたびにWebSocketクライアントの接続が1本ずつ漏れる不具合が直り、5.0.9ではrangeノードがnull・空文字・空配列などを0として扱わずに捨てるようになりました(#5976)。数値の文字列と真偽値はこれまでどおり変換されます。センサーの欠測をnullや空文字で流しているフローは、0が出力されなくなるので、5.0.9へ上げる前に確認してください。
移行の順番は、Node-REDを止めてユーザーディレクトリ(flows.json・flows_cred.json・settings.js・追加ノードを含むフォルダ全体)をバックアップ → Node.jsを22.9以上に上げる → npm install -g node-red@5 の順です。Node.jsのメジャー版を変えると、バイナリ部品を含む追加ノードは再ビルドが要ることがあり、その場合はユーザーディレクトリで npm rebuild を実行します。資格情報はsettings.jsの credentialSecret、未設定なら自動生成された鍵で暗号化されているため、フローのファイルだけを移すと復号できないことがあります。
本番運用前に必ず入れるセキュリティ設定
Node-REDで最も見落とされやすいのは、初期状態のエディタと管理APIに認証が無いことです。付属の settings.js では adminAuth がコメントアウトされ、待ち受けは全IPv4インターフェースです。5.0.9を初期設定のまま起動して管理APIを叩くと、フロー一覧の取得(GET /flows)は200、フローの書き換えとデプロイ(POST /flows)は204で、どちらも認証なしで通りました。同じネットワークにいる誰でもフローを差し替えられ、execノードを置けばサーバー上でコマンドも実行できる状態です。
5.0.8以前には、adminAuth が未設定のときにエディタの通信路(/comms)へ認証用のメッセージを1つ送るだけでNode-REDのプロセスが止まる不具合もありました。修正のプルリクエストが入った5.0.9へ上げたうえで、次の設定を入れます。
adminAuthによるエディタ・管理APIの認証設定
まずパスワードのハッシュを作ります。npmで全体にインストールした環境なら次のコマンドで、パスワードを聞かれるので入力します。
node-red admin hash-pw
表示された $2y$08$ で始まる文字列を使い、ユーザーディレクトリの settings.js で、既存の module.exports = { ... } の内側に次の設定を記述します。password の値全体を生成されたハッシュで置き換えてください。
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2y$08$(hash-pwの出力)",
permissions: "*"
}]
},
この設定で再起動すると、GET /flows と POST /flows はどちらも401になり、ログインして得たトークンを付けた GET /flows は200を返しました。ところが、http inノードで作った /hello は、同じ状態でも認証なしでJSONを返し続けました。adminAuth が守るのはエディタと管理APIだけです。
http inのAPI・待ち受けアドレス・暗号鍵・HTTPS
- http inノードで作ったAPI:
httpNodeAuthでBasic認証を付けるか、リバースプロキシ側で守る。上の実測のとおり、adminAuthだけでは公開されたまま - 待ち受けの限定:同じマシンからしか使わないなら
uiHost: "127.0.0.1"を設定する。外から使う場合もリバースプロキシやVPNの内側に置く - 資格情報の暗号鍵:
credentialSecretを設定しないと、起動ログに「システム生成の鍵で暗号化している。鍵を失うと資格情報を復元できない」という警告が出る。別サーバーへ移す可能性があるなら自分で鍵を決めておく - HTTPS:
settings.jsのhttpsに証明書と秘密鍵を指定するか、TLSを終端するリバースプロキシの後ろに置く
Node-REDが向かない場面とn8n・Zapierとの使い分け
Node-REDは「機器やプロトコルに近いところでデータを流す」道具です。SaaS同士をつなぐ業務自動化や、大量データの集計処理が主目的なら、別の選択肢の方が合います。
| 項目 | Node-RED | n8n | Zapier |
|---|---|---|---|
| 得意分野 | IoT・機器・プロトコル | SaaS・AIの業務連携 | SaaS連携(非開発者) |
| 動かす場所 | 自前(端末〜クラウド) | 自前またはクラウド | クラウドのみ |
| ライセンス | Apache-2.0 | Sustainable Use License | 商用SaaS |
| 本体の費用 | 無料 | 自前は無料版・有料版あり/クラウドは有料 | 無料枠は月100タスク・以降はタスク数で課金 |
MQTT・シリアル・Modbusのように機器側のプロトコルを扱う、あるいはネットワークの切れる現場の端末上で動かす必要があるなら、Node-REDが第一候補です。SlackやGoogleスプレッドシートなどSaaSの連携が中心で、用意された連携部品の多さを重視するならn8nかZapierの方が手数が少なく済みます。比較の詳細はn8nとは?読み方・料金・セルフホストの始め方とWebhook実装を解説【2026年10月版】とZapierとは?読み方・できること・料金とタスク課金の仕組み【2026年版】を参照してください。
Node-REDを採用すべきでない場面もあります。
- 1つのフローに業務ロジックの大半を詰め込む設計:functionノードが数百行になると、テストもコードレビューも通常のプログラムより難しくなる。ロジックが育つ見込みがあるなら、最初から通常のアプリケーションとして書く
- 複数台での冗長化が必須の処理:Node-RED単体は1プロセスで動き、フローの状態(コンテキスト)も標準ではメモリかローカルファイルに置く。複数台でのフェイルオーバーを組む仕組みは持たないため、可用性の要件が厳しい基幹処理はキューやワークフローエンジンを前提に設計する
- 複数人で同じフローを並行編集する体制:プロジェクト機能でGit管理はできるが、
flows.jsonの差分は読みにくく、衝突の解消が手作業になりやすい
Node-REDに関するよくある質問
Node-REDの読み方は?
「ノードレッド」と読みます。「Node」はノードとNode.jsの両方を指し、「RED」は「Code Red」をもじった言葉遊びに由来します。
Node-REDは無料ですか?商用利用できますか?
無料で、商用利用もできます。ライセンスはApache License 2.0です。社内システムへの組み込みや製品への同梱は可能ですが、再配布ではライセンスの写しの提供、変更の明示、元の表示の保持など第4条の条件に従います。追加ノードはノードごとにライセンスが異なるので個別に確認してください。
Node-REDで使われるプログラミング言語は?TypeScriptで書けますか?
Node-RED自体はNode.js上のJavaScriptで書かれており、functionノードに書くのもJavaScriptです。changeノードやswitchノードでは、JSONを変換する式言語のJSONataも使えます。TypeScriptで書きたい場合は、自作ノードとしてTypeScriptで実装し、JavaScriptにビルドしたものをnpmパッケージとして入れる形になります。5.0からはESモジュール形式のノードもインストールできます。
プログラミングの知識がなくても使えますか?
決まった形の処理は、ノードをつなぐだけで組めます。条件分岐やデータ整形を細かく書く場面ではfunctionノードにJavaScriptを書くことになるため、JavaScriptの基本とJSONの読み書きができると作れる範囲が大きく広がります。
Node-REDを使うには何が必要ですか?
Node.jsが動くPC・サーバー・Raspberry Piがあれば使えます。最新の5.0系はNode.js 22.9以上と64ビットOSが必要で、条件を満たさない機器では4.1系を使います。Dockerが使える環境ならNode.jsを入れずにコンテナで起動することもできます。