長らく棚に置いたままになっていた Raspberry Pi 4 を、SSD ブートで高速な Node-RED サーバーとして復活させました。
この記事では、実際に行ったセットアップ手順をまとめます。
「Raspberry Pi をサーバー用途で使いたい」「Node-RED を常時稼働したい」という方の参考になれば幸いです。
1. SSD に Raspberry Pi OS を書き込む
Raspberry Pi Imager を使って、USB接続の SSD に OS を直接書き込みます。
- OS:Raspberry Pi OS Lite(64bit)
- ストレージ:USB接続 SSD
- ホスト名:例)
raspi-nodered
※本記事では以降このホスト名を使用します - ユーザー名・パスワード:任意
- Wi-Fi:必要な場合のみ設定
- SSH:有効化(まずはパスワード認証でOK)
- Raspberry Pi Connect:無効でOK
設定後、SSD を Raspberry Pi に接続して起動します。
2. USB ブート設定を確認する
Raspberry Pi 4 は標準で USB ブート対応ですが、念のため設定を確認します。
vcgencmd bootloader_config
BOOT_ORDER に 4(USB)が含まれていれば USB ブート可能です。
例:BOOT_ORDER=0xf14 や BOOT_ORDER=0xf41 は USB が含まれるため問題ありません。
含まれていない場合、必要に応じて EEPROM を更新します。
sudo rpi-eeprom-update -a
sudo reboot
3. OS を最新化する
sudo apt update
sudo apt upgrade -y
sudo reboot
SSD ブートは高速なのでアップデートも快適です。
4. Node.js(20.x LTS)をインストールする
Node-RED は Node.js のバージョン依存が強いため、2026年現在の推奨は 20.x LTS です。
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
バージョン確認:
node -v
npm -v
5. Node-RED をインストールする
sudo npm install -g --unsafe-perm node-red
6. Node-RED を systemd で自動起動させる
npm で Node-RED をインストールした場合、nodered.service は自動生成されないため、
systemd のサービスファイルを手動で作成します。
① サービスファイルを作成
sudo nano /etc/systemd/system/nodered.service
以下を貼り付けます。(User は自分のユーザー名に変更)
[Unit]
Description=Node-RED
After=network.target
[Service]
Type=simple
User=<user>
ExecStart=/usr/bin/node-red
Restart=on-failure
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
保存:Ctrl + O → Enter
終了:Ctrl + X
② systemd を再読み込み
sudo systemctl daemon-reload
③ 自動起動を有効化
sudo systemctl enable nodered.service
④ 起動
sudo systemctl start nodered.service
⑤ 状態確認
systemctl status nodered.service
active (running) と表示されれば成功です。
確認後は q で終了します。
7. ブラウザからアクセスする
PC から以下にアクセスします。
http://raspi-nodered.local:1880
Node-RED のエディタ画面が表示されればセットアップ完了です。
8. フローをバックアップする
Node-RED のフロー(画面構成・処理ロジック)は
以下の JSON に保存されています。
~/.node-red/flows_<hostname>.json
例:flows_raspi-nodered.json
このファイルをバックアップしておくと、
別の Raspberry Pi に移行するときも簡単に復元できます。
SSD運用でも、GitHub に置いておくと安心です。
⚠️ ここからはサーバーとして安定運用したい方向けの設定です
家庭内利用ではこの先の作業は不要です。
🔐 SSH設定の強化(鍵認証に切り替える)
初期セットアップではパスワード認証で問題ありませんが、常時稼働させるサーバー用途では SSH鍵認証に切り替えておくと安全です。
① PC側のターミナルで鍵を作成
ssh-keygen -t ed25519
いくつか質問がありますが、すべて ENTER でOKです。
(パスフレーズは空で問題ありません)
② Raspberry Pi に公開鍵を登録
1. 公開鍵を表示(Windows側ターミナル)
type C:\Users\<user>\.ssh\id_ed25519.pub
表示された 1行の公開鍵をコピーします。
2. Raspberry Pi 側で authorized_keys を作成
TeraTermなどで Raspberry Pi に SSH でログインして:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
ここに コピーした公開鍵を貼り付けて保存します。
chmod 600 ~/.ssh/authorized_keys
3. 接続テスト
Windows側ターミナルで:
ssh <user>@raspi-nodered.local
パスワードなしでログインできれば成功です。
③ パスワード認証を無効化(任意)
鍵認証が成功したら、パスワードログインを無効化して安全性を高めます。
sudo nano /etc/ssh/sshd_config
以下を変更:
コメントアウトを外して yes → no に書き換えます。
PasswordAuthentication no
反映:
sudo systemctl restart ssh
🌐 Raspberry Pi OS で固定IPを設定する
1. 接続名を確認
まず、Wi-Fi 接続の名前(Connection Name)を確認します。
nmcli connection show
例:netplan-wlan0-<SSID>
2. 固定IPを設定(例:192.168.0.8)
確認した接続名を <SSID> の部分に入れて、以下を Raspberry Pi 側で実行します。
sudo nmcli connection modify netplan-wlan0-<SSID> \
ipv4.method manual \
ipv4.addresses "192.168.0.8/24" \
ipv4.gateway "192.168.0.1" \
ipv4.dns "192.168.0.1 8.8.8.8"
3. 設定を反映
sudo nmcli connection up netplan-wlan0-<SSID>
4. IP確認
ip a
wlan0 が以下のようになれば成功です。
inet 192.168.0.8/24 scope global wlan0
🔐 固定IP化後 SSH 接続時の初回確認
PC側から固定IPで接続できるか確認します。
ssh <user>@192.168.0.8
固定IPにすると、初回接続時に以下の確認が出ます。
The authenticity of host '192.168.0.8' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
これは 正常で、以前の raspi-nodered.local の鍵情報と区別するための確認です。
✔ 対応:そのまま「yes」と入力
yes
これで known_hosts に新しいエントリが追加され、
次回からはこの確認は表示されません。
🌐 Node-RED にアクセス
ブラウザで以下にアクセスし、固定IPでも Node-RED が開くことを確認します。
http://192.168.0.8:1880
✨ まとめ
手に入れて満足してしまい、ずっと棚に眠っていた Raspberry Pi 4 が、常時稼働できる Node-RED サーバーとして再び活躍できるようになりました。
今後はこの Node-RED サーバーを活用しながら、自作の ESP32IO と組み合わせて、データ可視化・制御・ダッシュボード構築などの幅をさらに広げていく予定です。
Raspberry Pi を再活用したい方や、Node-RED を常時稼働させたい方の参考になれば幸いです。

