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

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

рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдФрд░ рдбреЙрдХрд░ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╝ рдкрд░ рдиреЛрдб-рд░реЗрдб рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ред

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

рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░реБрдЪрд┐ рд╣реИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕.рдЬреЗрдПрд╕. рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдвреВрдВрдвреЗрдВ 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: "*"
        }]
    },

рдХреБрдВрдЬреА рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб: рдЖрдкрдХреЛ рдиреЛрдб-рд▓рд╛рд▓ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдиреЛрдб-рд▓рд╛рд▓ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдиреЛрдб.рдЬреЗрдПрд╕ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдорд╢реАрди рдкрд░ рдиреЛрдб-рд░реЗрдб-рдПрдбрдорд┐рди рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ