āĻĄāĻ•āĻžāĻ°-āĻ•āĻŽā§āĻĒā§‹āĻœā§‡ āĻ¨ā§‹āĻĄ-āĻ˛āĻžāĻ˛ āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻĄāĻ•āĻžāĻ°-āĻ•āĻŽā§āĻĒā§‹āĻœā§‡ āĻ¨ā§‹āĻĄ-āĻ˛āĻžāĻ˛ āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻ¸āĻ•ā§āĻˇāĻŽ āĻāĻŦāĻ‚ āĻĄāĻ•āĻžāĻ° āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĄāĻ•āĻžāĻ°-āĻ•āĻŽā§āĻĒā§‹āĻœā§‡ āĻ¨ā§‹āĻĄ-āĻ˛āĻžāĻ˛ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤

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. āĻāĻ° āĻāĻŸāĻž uncomment āĻ•āĻ°āĻž āĻ¯āĻžāĻ•.

 // 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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨