เชกเซ‹เช•เชฐ-เช•เช‚เชชเซ‹เช เชชเชฐ เชจเซ‹เชก-เชฒเชพเชฒ เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เช—เซ‹เช เชตเชตเซเช‚

เชกเซ‹เช•เชฐ-เช•เช‚เชชเซ‹เช เชชเชฐ เชจเซ‹เชก-เชฒเชพเชฒ เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เช—เซ‹เช เชตเชตเซเช‚

เช…เชงเชฟเช•เซƒเชคเชคเชพ เชธเช•เซเชทเชฎ เช…เชจเซ‡ เชกเซ‹เช•เชฐ เชตเซ‹เชฒเซเชฏเซเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเซ‹เช•เชฐ-เช•เช‚เชชเซ‹เช เชชเชฐ เชจเซ‹เชก-เชฐเซ‡เชก เชœเชฎเชพเชตเชตเซเช‚.

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 เชชเชฐ เชšเชพเชฒเชคเชพ เช•เซ‹เชˆเชชเชฃ เชฎเชถเซ€เชจ เชชเชฐ node-red-admin เชชเซ‡เช•เซ‡เชœ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹.

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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹