Node-RED へのアクセス
- ブラウザを開いて次の URL にアクセスしてください :
https://<SERVER_IP> - ブラウザに SSL 警告が表示されることがあります(自己署名証明書のため)
- 認証が必要です(Basic Auth ポップアップ)
- 認証方式:HTTP Basic Auth
- 認証情報の保存場所:
/root/.cloudzy-creds
主要なファイルとディレクトリ
- メインのインストールディレクトリ:
/root/node-red. - Docker オーケストレーションファイル:
/root/node-red/docker-compose.yml. - Node-RED の永続データの保存先:
/var/lib/docker/volumes/node-red_node-red-data/_data. - Nginx 設定ファイルの場所:
/etc/nginx/sites-available/node-red. - Basic 認証の資格情報の保存先:
/etc/nginx/auth/node-red.htpasswd. - TLS 証明書の保存先:
/etc/nginx/ssl.
Service Management
コンテナの状態を確認:
docker ps
View logs:
docker compose -f /root/node-red/docker-compose.yml logs -f
Node-RED を再起動する:
docker compose -f /root/node-red/docker-compose.yml restart
Restart Nginx:
systemctl restart nginx
Node-RED 管理ユーザー(Basic 認証の代替)
Node-RED には独自の認証システムが組み込まれており、HTTP Basic Auth の代わりに使用できます。
1. Locate settings.js
メインの設定ファイルは、Node-RED の Docker ボリューム内にあります: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Enable adminAuth
Open settings.js コメントを解除するか、 adminAuth セクションを追加してください。次のような形式になります:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. パスワードハッシュを生成する
Node-RED コンテナ内からハッシュを生成できます:
docker exec -it node-red-node-red-1 node-red admin hash-pw
プレーンテキストのパスワード入力を求められます。
生成されたハッシュをコピーして、次の値として貼り付けてください: password value in settings.js.
4. Node-RED を再起動する
After editing settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Nginx の HTTP Basic 認証を無効にする(任意)
Nginx サイト設定ファイルを編集する: /etc/nginx/sites-available/node-red
以下の行を削除またはコメントアウトする:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Reload Nginx:
systemctl restart nginx
ドメインを使った SSL の有効化
1. ドメインをサーバーのIPアドレスに向けてください。
2. Nginx の設定ファイルを開き、以下の両方を置き換えてください server_name <IP>; ドメイン(<your-domain>) は HTTP (ポート 80) と HTTPS (ポート 443) の両ブロックに適用されます:
vim /etc/nginx/sites-available/node-red
3. Install Certbot:
apt install -y certbot python3-certbot-nginx
4. 以下のコマンドを実行して、有効な Let's Encrypt 証明書を生成します:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Nginx の設定ファイルで SSL のパスを置き換える:
vim /etc/apache2/sites-available/node-red
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. 変更を反映するために、Nginxを再起動します。
systemctl restart nginx
7. ブラウザを開いて、次のURLにアクセスしてください: https://yourdomain.com