Node-RED Configuration

Sunyoung·2021년 4월 9일
0

https://nodered.org/docs/user-guide/runtime/configuration

2021-04-08

다음 속성을 사용하여 Node-RED를 구성 할 수 있습니다.
일반 응용 프로그램으로 실행할 때 설정 파일에서 구성을 로드합니다. 설정 파일 및 위치에 대한 자세한 내용은 이 가이드(https://nodered.org/docs/user-guide/runtime/settings-file) 를 참조하십시오.

임베디드 애플리케이션(https://nodered.org/docs/user-guide/runtime/embedding) 으로 실행하는 경우 구성 옵션은 RED.init() 호출에 전달됩니다.
그러나 이 모드에서 실행하면 특정 속성이 무시되어 응용 프로그램에 implement 됩니다

런타임 구성
- flowfile : 흐름이 저장 되는 파일, 기본적으로 flows_.json 에 저장
- userDir : 모든 사용자 데이터가 저장되는 디렉토리, 흐름 및 자격 증명 파일과 모든 라이브러리 데이터와 같은 기본적으로 $HOME/.node-red 에 저장
- nodesDir : 추가로 설치된 노드를 검색하기 위한 디렉토리. Node-RED는 userDir 디렉토리에서 노드 디렉토리를 검색합니다. 이 속성을 사용하면 추가 디렉토리를 검색 할 수 있으므로 Node-RED 설치 구조 외부에 노드를 설치할 수 있습니다. 위치는 $HOME/.node-red/nodes
- uiHost : 연결을 위한 리스너 인터페이스 기본적으로 0.0.0.0 (모든 ipv4 환경에서) 스텐드 얼론 환경만 가능
- uiPort : 에디터 UI를 위한 포트 기본적으로 1880 포트. 스텐드 얼론 환경에서만 가능
- httpAdminRoot : 에디터 UI의 루트 URL. false로 셋팅이 되었다면 모든 관리자들은 사용 불가 합니다. 이것은 API와 에디터 UI를 동시에 포함합니다.
에디터 UI에서만 사용 불가 하게 하고 싶다면 아래의 disableEditor 속성을 참조하세요
- httpAdminAuth : 사용되지 않음. adminAuth 참조.
1. 에디터 UI에서 HTTP 기본 권한을 가능 하게 할 경우

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

2. pass 속성은 실제 패스워드를 md5 해시 하였습니다. 다음 명령을 사용하여 해시를 생성합니다.

node -e "console.log(require('crypto').createHash('md5').update('YOUR PASSWORD HERE','utf8').digest('hex'))"

3. 스텐드얼론 환경만 가능

-httpAdminMiddleware : 모든 관리 경로에 추가되는 HTTP 미들웨어 함수 또는 함수 배열. 미들웨어 기능의 형식은 여기(http://expressjs.com/en/guide/using-middleware.html) 에 설명되어 있습니다

httpAdminMiddleware: function(req,res,next) {
    // Perform any processing on the request.
    // Be sure to call next() if the request should be passed on
}

- httpNodeRoot : HTTP 엔드 포인트를 제공하는 노드의 루트 URL입니다. false로 설정하면 모든 노드 기반 HTTP 엔드 포인트가 비활성화됩니다. 기본적으로 / 에 위치
- httpRoot : 관리 및 노드 엔드 포인트 모두에 대한 루트 URL을 설정합니다. httpAdminRoot 및 httpNodeRoot에 의해 설정된 값을 대체합니다.
- https : https를 가능하게 설정, 옵션 여기 명시되어있습니다. 스텐드얼론만 가능
- disableEditor : true로 설정하면 런타임에서 에디터 UI를 막습니다. 관리자 API 엔드포인트 에서 활성화 합니다. 기본적으로 false 입니다
- httpStatic : 정적 웹 콘텐츠를 제공 할 로컬 디렉터리입니다. 이 콘텐츠는 최상위 URL, /에서 제공됩니다. 이 속성을 사용하는 경우 httpAdminRoot를 사용하여 /가 아닌 경로에서 편집기 UI를 사용할 수 있도록해야합니다.
- httpStaticAuth : 정적 컨텐츠의 http 기본 권한에 대한 사용. httpAdminAuth 포맷 참조
- httpNodeCors : http 엔드포인트에서 cors sharing 가능한 노드생성 가능 여기에 정의되어있습니다
- httpNodeMiddleware : 모든 HTTP 노드에 추가되는 http 미들웨어 함수 또는 함수의 배열 이를 통해 인증과 같은 사용자 정의 처리가 노드에 필요한 모든 것을 허용합니다. 미들웨어 기능의 형식은 여기에 설명되어 있습니다

httpNodeMiddleware: function(req,res,next) {
    // Perform any processing on the request.
    // Be sure to call next() if the request should be passed
    // to the relevant HTTP In node.
}

- logging : 현재 콘솔 로그를 지원합니다. 많은 레벨의 로그라 정의 되었습니다. 옵션들은 다음과 같습니다
fatal : 어플리케이션이 사용되지 못하는 에러들의 기록
error : 치명적이라고 기록되는 특정한 에러들의 기록 + fatal
warn : 치명적이지 않은 문제의 기록 + error + fatal
info : 어플리케이션의 기본 실행의 기록 정보 + warn + error + fatal
debug : info 보다 더 많은 정보의 기록 정보 + info + warn + error + fatal
trace : 아주 상세한 로그 + debug + info + warn + error + fatal

기본레벨은 info입니다. 제한된 플래시 저장소에 임베디드 디바이스는 디스크에 fatal 항목에 작은 작성 권한을 갖길 바랄 것입니다
externalModuels : 런타임 설정은 외부 npm 모듈로 제어됩니다. 이것은
  • 편집기가 새 노드 모듈 설치를 허용할지 여부

  • Function 노드와 같은 노드가 동적으로 구성된 자체 종속성을 가질 수 있는지 여부

    	허락/거부 리스트 옵션은 설치또는 로드 런타임 모듈에서 제한됩니다. 이것은 와일드카드 \*로 사용 할 수 있습니다.
externalModules: {
   autoInstall: false,
   autoInstallRetry: 30,
   palette: {
      allowInstall: true,
      allowUpload: true,
      allowList: [],
      denyList: []
   },
   modules: {
      allowInstall: true,
      allowList: [],
      denyList: []
   }
}

에디터 설정
adminAuth : 관리자와 API사용자 레벨 보안. 노드 레드 보안(https://nodered.org/docs/user-guide/runtime/securing-node-red) 을 보면 더 상세한 내용이 있습니다
paletteCategories : 파레트 카테고리에 대한 순서 정의. 리스트에 노드 카테고리가 없으면 카테고리는 파레트 맨마지막에 추가 됩니다. 만약 설정을 하지 않은 경우에는 기본 세팅은 다음과 같습니다

['subflows', 'common', 'function', 'network', 'sequence', 'parser', 'storage'],

note: 서브플로우 카테고리에 사용자 생성이 될때까지 비어 있을 것이며 팔레트에 표시되지 않습니다.

에디터 테마
에디터의 테마는 다음 설정 객체들에 의해서 변경될 수 있습니다. 모든 부분이 optional 합니다

editorTheme: {
    page: {
        title: "Node-RED",
        favicon: "/absolute/path/to/theme/icon",
        css: "/absolute/path/to/custom/css/file",
        scripts: [ "/absolute/path/to/custom/script/file", "/another/script/file"]
    },
    header: {
        title: "Node-RED",
        image: "/absolute/path/to/header/image", // or null to remove image
        url: "http://nodered.org" // optional url to make the header text/image a link to this url
    },
    deployButton: {
        type:"simple",
        label:"Save",
        icon: "/absolute/path/to/deploy/button/image" // or null to remove image
    },
    menu: { // Hide unwanted menu items by id. see packages/node_modules/@node-red/editor-client/src/js/red.js:loadEditor for complete list
        "menu-item-import-library": false,
        "menu-item-export-library": false,
        "menu-item-keyboard-shortcuts": false,
        "menu-item-help": {
            label: "Alternative Help Link Text",
            url: "http://example.com"
        }
    },
    userMenu: false, // Hide the user-menu even if adminAuth is enabled
    login: {
        image: "/absolute/path/to/login/page/big/image" // a 256x256 image
    },
    logout: {
        redirect: "http://example.com"
    },
    palette: {
        editable: true, // *Deprecated* - use externalModules.palette.allowInstall instead
        catalogues: [   // Alternative palette manager catalogues
            'https://catalogue.nodered.org/catalogue.json'
        ],
        theme: [ // Override node colours - rules test against category/type by RegExp.
            { category: ".*", type: ".*", color: "#f0f" }
        ]
    },
    projects: {
        enabled: false // Enable the projects feature
    }
},

대시보드
ui : 노드 레드 대시 보드의 추가된 노드들의 홈 패스를 명시 할 수 있습니다. 이것은 httpNodeRoot에서 이미 명시되어 있습니다

ui : { path: “mydashboard” },

노드 구성

모든 노드 유형은 파일에 제공 할 자체 설정을 정의 할 수 있습니다.
- functionGlobalContext
함수 노드-전역 함수 컨텍스트에 연결할 개체 모음입니다. 예를 들면

functionGlobalContext: { osModule:require('os') }

접근 할 수 있는 함수 노드는 :

var myos = global.get('osModule');

note :
Node-RED v0.13 이전에는 글로벌 컨텍스트를 사용하는 문서화 된 방법은 컨텍스트의 하위 속성으로 액세스하는 것이 었습니다.

context.global.foo = "bar";
 var osModule = context.global.osModule;

이 메소드는 여전히 지원되지만 global.get / global.set 함수 대신 사용되지 않습니다. 이 방법을 사용하여 저장된 모든 데이터는 다시 시작해도 유지되지 않으며 사이드 바 컨텍스트 뷰어에 표시되지 않습니다.

-debugMaxLength : 디버그 노드-디버그 사이드 바 탭에 전송 된 메시지의 최대 길이 명시. 기본 1000
- mqttReconnectTime : mqtt 노드- 연결이 끊어지면 다시 재 연결 시도하기 전에 얼마나 기다려야 하는지 명시 .기본 5000
- serialReconnectTime : serial 노드- 포트가 다시 열리기까지 얼마나 기다려야 하는지 명시. 기본 5000
- socketReconnectTime : TCP 노드 - 재연결 시도를 하기전에 얼마나 기다려야 하는지 명시. 기본 10000
- socketTimeout : TCP 노드 - 소켓 타임 아웃 얼마나 기다릴 건지 명시. 기본 120000

profile
배워서 남주자

0개의 댓글