рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╡рд░ рдиреЛрдб-рд▓рд╛рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддреИрдирд╛рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ

рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╡рд░ рдиреЛрдб-рд▓рд╛рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддреИрдирд╛рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ

рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╡рд░ рдиреЛрдб-рд░реЗрдб рдбрд┐рдкреНрд▓реЙрдп рдХрд░рдгреЗ рдЕрдзрд┐рдХреГрддрддреЗрд╕рд╣ рдЖрдгрд┐ рдбреЙрдХрд░ рд╡реНрд╣реЙрд▓реНрдпреВрдо рд╡рд╛рдкрд░реВрди.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛