Node‐RED の 管理者パスワードを変更する - aktnk/til GitHub Wiki

解決したいこと

  • コンテナで起動しているNode-REDの管理者パスワードがわからないので、パスワードを変更したい

前提条件

  • mqtt-node_red-influxdb-grafanaを使いNode-RED他のコンテナを起動
  • Node-REDは nodered/node-red:3.1.15 を利用
  • ホスト環境OS:Ubuntu 22.04 LTS
  • docker:Docker version 28.0.1, build 068a01e
  • docker compose:Docker Compose version v2.33.1

手順

  1. docker/docker composeを使いnodered/node-red:3.1.15、Node-REDを起動
  2. 起動しているNode-REDコンテナに入り、npx node-red admin hash-pwを実行し新しいパスワードハッシュを生成する
    $ docker compose exec node-red sh
    ~ $ npx node-red admin hash-pw
    Password: (新しいパスワードを入力)
    $2********************************************************wm ← 表示されたパスワードハッシュ値をコピーする
    npm notice
    npm notice New major version of npm available! 8.19.4 -> 11.1.0
    npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.1.0
    npm notice Run npm install -g [email protected] to update!
    npm notice
    ~ $ 
    
  3. /data/settings.jsのAdmin用パスワードを更新する
    • /data/settings.js内のSecutiryセクションにあるadminAuthのpasswordを書き換え、保存する
     ~ $ nano /data/settings.js
        adminAuth: {
           type: "credentials",
           users: [{
               username: "admin",
               password: "$2********************************************************wm",
               permissions: "*"
           }]
        },
    
    • node-redコンテナから抜ける
    ~ $ exit
    exit
    $
    
  4. noderedディレクトリを作成し、settings.jsをコンテナボリュームからコピーする
    $ mkdir nodered
    $ sudo chown -R 1000:1000 nodered
    $ cd nodered
    $ docker cp node-red:/data/settings.js .
    Successfully copied 25.1kB to /home/******/mqtt/nodered/.
    $ ls
    settings.js
    
  5. compose.yamlを変更し、settings.jsを読み込ませる
    • コンテナの停止
    $ docker compose stop
    [+] Stopping 4/4
     ✔ Container influxdb2  Stopped                                                                                    0.3s
     ✔ Container mqtt       Stopped                                                                                    0.3s
     ✔ Container grafana    Stopped                                                                                    0.3s
     ✔ Container node-red   Stopped                                                                                    2.
    $ 
    
    • node-redサービスのvolumesにsettings.jsを追加する
      node-red:
        image: nodered/node-red:3.1.15
        container_name: node-red
        ports:
          - "1880:1880"
        restart: unless-stopped
        environment:
          - TZ=Asia/Tokyo
        volumes:
          - node_red_data:/data
          - $PWD/nodered/settings.js:/data/settings.js  (この行を追加)
    
    • コンテナを起動する
    $ docker compose up -d0
    [+] Running 4/4
     ✔ Container mqtt       Started                                                                                    0.5s
     ✔ Container grafana    Started                                                                                    0.5s
     ✔ Container node-red   Started                                                                                    0.5s
     ✔ Container influxdb2  Started                                                                                    0.5s
    $
    

参考