Edited at

Node-REDの設定

More than 3 years have passed since last update.

Node-REDはsettings.jsで各種設定を行います。自分の環境で現在どのsettings.jsを見ているか確認するにはNode-RED起動時の以下のログを見ます。

Welcome to Node-RED

===================

3 Dec 01:54:33 - [info] Node-RED version: v0.12.1
3 Dec 01:54:33 - [info] Node.js version: v0.12.7
3 Dec 01:54:33 - [info] Loading palette nodes
3 Dec 01:54:34 - [info] Settings file : [これが設定ファイルの場所]
3 Dec 01:54:34 - [info] User directory : [これがユーザディレクトリ]
3 Dec 01:54:34 - [info] Flows file : [これがflow設定ファイルの場所]
3 Dec 01:54:34 - [info] Server now running at http://127.0.0.1:1880/
3 Dec 01:54:34 - [info] Starting flows
3 Dec 01:54:34 - [info] Started flows
3 Dec 01:54:43 - [info] Stopping flows

ちなみに起動時に--settings|-sオプションで任意のpathも指定できます。


Node-RED実行時の設定


flowFile

flow設定をファイルに保存する場合のファイル名です。デフォルトはflows_<hostname>.jsonです。


userDir

flow設定をファイルに保存する場合のファイルへのpathです。デフォルトは$HOME/.node-redです。


nodesDir

自作のnodeなどを追加するディレクトリを指定できます。ここで指定したディレクトリ内にnodeの.js.htmlファイルを配置するとNode-REDのパレットに表示されるようになります。


uiHost

ホストです。デフォルトは0.0.0.0です。


uiPort

ポートです。デフォルトは1880です。


httpAdminRoot

flow Editorのpathを指定できます。デフォルトは/です。ちなみにfalseを指定するとEditorが無効になります。


httpAdminAuth

flow EditorにBasic認証を設けます。以下が設定例。

httpAdminAuth: {user:"admin", pass:"5f4dcc3b5aa765d61d8327deb882cf99"}

passはMD5ハッシュを指定します。上記の例では実際にBasic認証ダイアログへ入力するパスワードはpasswordという文字列になるということです。コンソールなどで以下のnodeコマンドを実行することでハッシュ値を得られます。

node -e "console.log(require('crypto').createHash('md5').update('ここに実際のパスワード文字列を指定','utf8').digest('hex'))"


httpNodeRoot

HTTP In nodeのHTTPエンドポイントのpathを指定できます。デフォルトは/です。ちなみにfalseを指定すると全てのHTTPエンドポイントが無効になります。


httpNodeAuth

HTTP In nodeのHTTPエンドポイントにBasic認証を設けます。設定方法はhttpAdminAuthと同様です。


httpRoot

httpRootを指定するとhttpAdminRoothttpNodeRootを同じpathで上書きします。


https

HTTPSを有効にします。以下が設定例。詳細はこちら

https: {

key: fs.readFileSync('privatekey.pem'),
cert: fs.readFileSync('certificate.pem')
},


disableEditor

trueを指定するとflow Editorが無効になります。デフォルトはfalseです。httpAdminRootfalseにした場合はUIもAPIも無効になりますが、こちらはUIのみ無効になります。


httpStatic

ここで指定したpathを静的なWebコンテンツとして表示できます。例えば/home/username/.node-red/と指定した場合、/home/username/.node-red/index.htmlを作成すると/へアクセスすると作成したindex.htmlが表示されます。したがってhttpStaticを指定する場合はhttpAdminRoot/より下層のpathにする必要があります。


httpStaticAuth

httpStaticにBasic認証を設けます。設定方法はhttpAdminAuthと同様です。


httpNodeCors

HTTP In nodeのHTTPエンドポイントのCross-Origin Resource Sharing (CORS) を有効にします。以下が設定例。詳細はこちら

httpNodeCors: {

origin: "*",
methods: "GET,PUT,POST,DELETE"
},


httpNodeMiddleware

HTTP In nodeのHTTPエンドポイントにHTTPミドルウェアを追加できます。HTTPエンドポイントでセッションとクッキーのハンドラを利用したい場合は以下のように設定します。

httpNodeMiddleware: function(req,res,next) {

session({
store: new MongoStore({
url: process.env.MONGOLAB_URI
})
})(req, res, function() {
cookieParser()(req, res, next);
});
},


flow Editorの設定


adminAuth

flow Editorにログインフォームを設けます。以下が設定例。

adminAuth: {

type: "credentials",
users: [{
username: "admin",
password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
permissions: "*"
}]
}



  • usersリストで複数のユーザを設定できます

  • パスワードはbcryptアルゴリズムによるハッシュ値を指定します


  • permissionsでユーザ毎に*フルアクセスかreadread only権限が付与できます

コンソールなどで以下のnodeコマンドを実行することでハッシュ値を得られます。

node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" ここに実際のパスワード文字列を指定


paletteCategories

flow Editorのパレットのカテゴリの順序を設定します。カテゴリがリストにない場合はパレットの最後に追加されます。デフォルトの順序は以下。

['subflows', 'input', 'output', 'function', 'social', 'storage', 'analysis', 'advanced'],


nodeの設定


functionGlobalContext

function nodeの中では他のライブラリをrequireできませんがfunctionGlobalContextであらかじめrequireしておくことでcontext.globalからライブラリにアクセスできるようになります。以下が設定例。

functionGlobalContext: {

jsforce: require('jsforce')
},

上記のように設定してfunction nodeで以下のようにしてdebug nodeに吐くとjsforceオブジェクトが格納されていることがわかります。ただしライブラリがnpmでグローバルにインストールされているかsettings.jsより下層にインストールされていなければいけません。

msg.payload = context.global.jsforce;

return msg;


debugMaxLength

debug nodeでdebugに表示する文字数を指定します。デフォルトは1000文字です。debugに表示する文字が...で途切れてしまう場合はここを増やします。


mqttReconnectTime

mqtt nodeの接続が切断された場合の再接続までの待機時間。デフォルトは5秒。


serialReconnectTime

serial nodeの接続が切断された場合の再接続までの待機時間。デフォルトは5秒。


socketReconnectTime

tcp nodeの接続が切断された場合の再接続までの待機時間。デフォルトは10秒。


socketTimeout

tcp nodeのタイムアウト時間。デフォルトは120秒。