แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒฌแƒ˜แƒ—แƒ”แƒšแƒ˜ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ docker-compose-แƒ–แƒ”

แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒฌแƒ˜แƒ—แƒ”แƒšแƒ˜ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ docker-compose-แƒ–แƒ”

Docker-compose-แƒ–แƒ” node-red-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒฎแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— 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

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜.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-red-admin แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก node.js.

npm i node-red-admin -g

แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒžแƒแƒ แƒแƒšแƒ˜:

node-red-admin hash-pw

แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒ“แƒ แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ˜แƒ— แƒžแƒแƒ แƒขแƒก 11880.

http://192.168.0.100:11880/

แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒœแƒฏแƒแƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒก.

แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒฌแƒ˜แƒ—แƒ”แƒšแƒ˜ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ docker-compose-แƒ–แƒ”

แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ˜.

แƒ—แƒฃ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒ— -d.

$ docker-compose up -d node-red

แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒแƒกแƒ”แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ