เจกเฉŒเจ•เจฐ-เจ•เฉฐเจชเฉ‹เจœเจผ 'เจคเฉ‡ เจจเฉ‹เจก-เจฒเจพเจฒ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ

เจกเฉŒเจ•เจฐ-เจ•เฉฐเจชเฉ‹เจœเจผ 'เจคเฉ‡ เจจเฉ‹เจก-เจฒเจพเจฒ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ

เจกเฉŒเจ•เจฐ-เจ•เฉฐเจชเฉ‹เจœเจผ 'เจคเฉ‡ เจจเฉ‹เจก-เจฐเฉˆเฉฑเจก เจจเฉ‚เฉฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ เจ…เจคเฉ‡ เจกเฉŒเจ•เจฐ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจพเจฒ เจคเฉˆเจจเจพเจค เจ•เจฐเจจเจพเฅค

docker-compose.yml เจซเจพเจˆเจฒ เจฌเจฃเจพเจ“:

version: "3.7"

services:
  node-red:
    image: nodered/node-red
    environment:
      - TZ=Europe/Moscow
    ports:
      - "11880:1880" # 11880 - ะฟะพั€ั‚ ะดะปั ะฟะพะดะบะปัŽั‡ะตะฝะธั ะบ ะบะพะฝั‚ะตะนะฝะตั€ัƒ, 1880 - ะฟะพั€ั‚ ะฝะฐ ะบะพั‚ะพั€ะพะผ ั€ะฐะฑะพั‚ะฐะตั‚ node-red ะฒะฝัƒั‚ั€ะธ ะบะพะฝั‚ะตะนะฝะตั€ะฐ.
    volumes:
      - "node-red:/data" # node-red - ะบะฐั‚ะฐะปะพะณ ะบะพั‚ะพั€ั‹ะน ะฒั‹ะดะตะปะธั‚ docker ะดะปั ั…ั€ะฐะฝะตะฝะธั ะดะฐะฝะฝั‹ั…, /data - ะบะฐั‚ะฐะปะพะณ ะฒะฝัƒั‚ั€ะธ ะบะพะฝั‚ะตะนะฝะตั€ะฐ.
    restart: always
volumes:
  node-red: # ัะพะทะดะฐะฝะธะต ะบะฐั‚ะฐะปะพะณะฐ node-red ะฝะฐ ั…ะพัั‚ะต.


เจ…เจธเฉ€เจ‚ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ (เจชเจนเจฟเจฒเฉ€ เจฒเจพเจ‚เจš ` เจ•เฉเฉฐเจœเฉ€ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ-d`, เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจœเจฆเฉ‹เจ‚ เจ‰เจน เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ):

$ docker-compose up node-red
Creating node-red_node-red_1_3e3e59f5e044 ... done
Attaching to node-red_node-red_1_bca4cb987984
node-red_1_bca4cb987984 |
node-red_1_bca4cb987984 | > [email protected] start /usr/src/node-red
node-red_1_bca4cb987984 | > node $NODE_OPTIONS node_modules/node-red/red.js $FLOWS "--userDir" "/data"
...

เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เฉ‹ เจ…เจคเฉ‡ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ“:

$ docker volume ls
DRIVER              VOLUME NAME
local               node-red_node-red

เจ…เจธเฉ€เจ‚ เจตเจพเจฒเฉ€เจ…เจฎ 'เจคเฉ‡ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚:

$ docker volume inspect node-red_node-red
[
    {
        "CreatedAt": "2020-05-02T18:37:33Z",
        "Driver": "local",
        "Labels": {
            "com.docker.compose.project": "node-red",
            "com.docker.compose.version": "1.23.0",
            "com.docker.compose.volume": "node-red"
        },
        "Mountpoint": "/var/lib/docker/volumes/node-red_node-red/_data", # ั€ะฐัะพะปะพะถะตะฝะธะต ะฝะฐัˆะตะณะพ ะบะฐั‚ะฐะปะพะณะฐ
        "Name": "node-red_node-red",
        "Options": null,
        "Scope": "local"
    }
]

เจตเจพเจฒเฉ€เจ…เจฎ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ 'เจคเฉ‡ เจœเจพเจ“. เจ‡เจธ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‰เจน เจซเจพเจˆเจฒเจพเจ‚ เจนเจจ เจœเฉ‹ เจกเฉŒเจ•เจฐ เจจเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจฌเจฃเจพเจˆเจ†เจ‚ เจนเจจเฅค

$ sudo ls /var/lib/docker/volumes/node-red_node-red/_data
lib  package.json  settings.js

เจ…เจธเฉ€เจ‚ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚ settings.js. เจ‡เจธเจจเฉ‚เฉฐ เจ–เฉ‹เจฒเฉเจนเฉ‹ เจ…เจคเฉ‡ เจ•เฉ‹เจก เจฆเฉ‡ เจ‡เฉฑเจ• เจŸเฉเจ•เฉœเฉ‡ เจฆเฉ€ เจญเจพเจฒ เจ•เจฐเฉ‹ adminAuth. เจ†เจ“ เจ‡เจธ เจจเฉ‚เฉฐ เจŸเจฟเฉฑเจชเจฃเฉ€ เจจเจพ เจ•เจฐเฉ€เจเฅค

 // Securing Node-RED
    // -----------------
    // To password protect the Node-RED editor and admin API, the following
    // property can be used. See http://nodered.org/docs/security.html for details.
    adminAuth: {
        type: "credentials",
        users: [{
            username: "admin",
            password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
            permissions: "*"
        }]
    },

เจ•เฉเฉฐเจœเฉ€ เจตเจฟเฉฑเจš เจชเจพเจธเจตเจฐเจก: เจคเฉเจนเจพเจจเฉ‚เฉฐ เจจเฉ‹เจก-เจฒเจพเจฒ เจชเจพเจธเจตเจฐเจก เจนเฉˆเจธเจผ เจชเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจจเฉ‹เจก-เจฒเจพเจฒ เจชเจพเจธเจตเจฐเจก เจนเฉˆเจธเจผ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ
node.js 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ€ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจจเฉ‹เจก-เจฐเฉ‡เจก-เจเจกเจฎเจฟเจจ เจชเฉˆเจ•เฉ‡เจœ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹เฅค

npm i node-red-admin -g

เจชเฉˆเจ•เฉ‡เจœ เจšเจฒเจพเจ“ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจชเจพเจธเจตเจฐเจก เจธเฉˆเจŸ เจ•เจฐเฉ‹:

node-red-admin hash-pw

เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฒเจพเจ‚เจš เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจชเฉ‹เจฐเจŸ เจจเจพเจฒ เจœเฉเฉœเฉ‹ 11880.

http://192.168.0.100:11880/

เจ‡เฉฑเจ• เจ…เจงเจฟเจ•เจพเจฐ เจตเจฟเฉฐเจกเฉ‹ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค

เจกเฉŒเจ•เจฐ-เจ•เฉฐเจชเฉ‹เจœเจผ 'เจคเฉ‡ เจจเฉ‹เจก-เจฒเจพเจฒ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ

เจ†เจชเจฃเจพ เจฒเฉŒเจ—เจ‡เจจ เจชเจพเจธเจตเจฐเจก เจฆเจฐเจœ เจ•เจฐเฉ‹เฅค

เจœเฉ‡ เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹ -d.

$ docker-compose up -d node-red

เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹