NodeBBインストール · 2 min read · Sep 10, 2025
Debian 12にNginxプロキシを使ってNodeBBをインストールする方法

NodeBBは、JavaScriptとNode.jsで書かれたオープンソースのフォーラムソフトウェアです。デフォルトのデータベースとしてMongoDBを使用します。NodeBBは、Webソケットを介したリアルタイム通知、ソーシャルメディア統合、完全なREST APIなど、複数の機能を提供します。
このガイドでは、MongoDBをデータベースとして、Nginxをリバースプロキシとして使用して、Debian 12サーバーにNodeBBをインストールする方法を示します。
前提条件
始める前に、以下のものを用意してください:
- Debian 12サーバー。
- sudo権限を持つ非rootユーザー。
- サーバーのIPアドレスを指すドメイン名。
依存関係のインストール
プロセスを開始するには、NodeBBの依存関係をインストールします。これには、DebianリポジトリからNode.js、NPM(Node.jsパッケージマネージャー)、およびNginxウェブサーバーが含まれます。MongoDBについては、公式のMongoDBリポジトリを通じてインストールします。
まず、次のコマンドを実行して、Debianシステムにgnupgとcurlパッケージをインストールします。
sudo apt install gnupg curl -y次のコマンドでMongoDBのGPGキーとリポジトリを追加します:
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmorecho "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list次に、Debianパッケージインデックスを更新し、MongoDB、Node.js、NPM、Nginx、およびGitをインストールします。インストールを確認するためにYを入力します。
sudo apt update
sudo apt install mongodb-org nodejs npm git nginx
インストールが完了したら、次のコマンドでsystemdマネージャーをリロードします。
sudo systemctl daemon-reload次のコマンドを実行して、MongoDBサービスの状態を開始、有効化、および確認します。
sudo systemctl enable --now mongod
sudo systemctl status mongod次の出力は、MongoDBが実行中であることを確認します。

次に、以下のコマンドでNginxサービスの状態を確認します。Nginxがシステムで有効になって実行中であることがわかります。
sudo systemctl is-enabled nginx
sudo systemctl status nginx
最後に、以下のコマンドでNode.jsとNPMのバージョンを確認します。
sudo node -v
sudo npm -v以下のように、Node.js 18とNPM 9がインストールされていることがわかります。

MongoDBサーバーの設定
このセクションでは、MongoDB認証を有効にし、MongoDB用の新しい管理者ユーザーを作成し、NodeBBインストール用の新しいデータベースとユーザーを作成します。
以下のコマンドでMongoDBサーバーにログインします。
mongosh次のクエリを実行して、「admin」データベースに切り替え、MongoDB用の新しい管理者ユーザー「admin」を作成します。パスワード「MongoDBAdminPass」は新しいパスワードに変更してください。
use admin
db.createUser( { user: "admin", pwd: "MongoDBAdminPass", roles: [ { role: "root", db: "admin" } ] } )次に、新しいデータベースとユーザー「nodebb」をパスワード「NodeBBPassword」で作成します。このデータベースとユーザーはNodeBBインストールに使用されます。
use nodebb
db.createUser( { user: "nodebb", pwd: "NodeBBPassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )次に「quit()」と入力してMongoDBから退出します。

次に、nanoエディタでMongoDB設定「/etc/mongod.conf」を開きます。
sudo nano /etc/mongod.conf次の設定を追加してMongoDB認証を有効にします。
security:
authorization: enabled完了したら、ファイルを保存して閉じます。
次のコマンドを実行してMongoDBサービスを再起動し、新しい変更を適用します。コマンドが実行されると、MongoDB認証が有効になります。
sudo systemctl restart mongodMongoDB設定が成功したことを確認するために、ユーザー「nodebb」でデータベース「nodebb」にログインします。求められたらパスワードを入力します。
mongosh "mongodb://127.0.0.1:27017" --username nodebb --authenticationDatabase nodebbログイン後、以下のクエリを実行して接続を確認し、MongoDBから退出します。
db.runCommand( { connectionStatus: 1, showPrivileges: false } )
quit()次の出力で、データベース「nodebb」に「nodebb」として認証されていることがわかります。

NodeBBのインストール
MongoDBの設定が完了したので、NodeBBをダウンロードしてインストールします。NodeBB用の専用ユーザーを作成し、NodeBBの依存関係をダウンロードしてインストールし、NodeBBインストール用のサービスファイルを設定します。
次のコマンドを使用して、デフォルトのホームディレクトリ「/opt/nodebb」を持つ新しいシステムユーザー「nodebb」を追加します。
sudo adduser --system --no-create-home --home=/opt/nodebb --group nodebb次に、gitを使用して「/opt/nodebb」ディレクトリにNodeBBソースv3をダウンロードし、「/opt/nodebb」ディレクトリの所有権をユーザー「nodebb」に変更します。
git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb
sudo chown -R nodebb:nodebb /opt/nodebb「/opt/nodebb」ディレクトリに移動し、以下のコマンドでNodeBBインストールを設定します。
cd /opt/nodebb
sudo su -s /bin/bash -c "./nodebb setup" nodebb- NodeBBのドメイン名を入力します。
- NodeBBの秘密はデフォルトのままにしてENTERを押します。
- 匿名プラグインの使用を無効にするために「no」と入力します。
- データベースとしてMongoDBを選択します。
- MongoDBデータベースのURL文字列を入力します:mongodb://nodebb:[email protected]:27017/nodebb。
- NodeBB用の管理者ユーザーとメールアドレスを入力します。
- パスワードを入力し、繰り返します。
プロセスが完了すると、「NodeBB Setup Completed」という出力が表示されます。NodeBBを実行するためのコマンドも表示されます。

次に、以下のコマンドを実行してNodeBBを開始または停止します。手動でNodeBBを開始または停止する必要があるときに使用できます。
sudo su -s /bin/bash -c "./nodebb start" nodebb
sudo su -s /bin/bash -c "./nodebb stop" nodebb
NodeBBの管理を容易にするために、NodeBB用の新しいsystemdサービスファイルを作成します。これにより、NodeBBインストールがバックグラウンドで実行され、systemctlコマンドで管理できます。
nanoエディタコマンドで新しいsystemdサービスファイル「/etc/systemd/system/nodebb.service」を作成します。
sudo nano /etc/systemd/system/nodebb.serviceファイルに次の設定を挿入します:
[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service
[Service]
Type=simple
User=nodebb
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/opt/nodebb
ExecStart=/usr/bin/env node loader.js --no-silent --no-daemon
Restart=always
[Install]
WantedBy=multi-user.targetファイルを保存して閉じます。
次のコマンドを実行してsystemdマネージャーをリロードし、新しいNodeBBサービスファイルを適用します。
sudo systemctl daemon-reloadその後、以下のsystemctlコマンドで「nodebb」サービスを開始および有効化します。
sudo systemctl start nodebb
sudo systemctl enable nodebb以下のコマンドで「nodebb」サービスを確認し、サービスが実行中であることを確認します。
sudo systemctl status nodebb以下のように、NodeBBがバックグラウンドでsystemdサービスとして実行されていることがわかります。

Nginxをリバースプロキシとして設定する
この時点で、NodeBBはポート「4567」でバックグラウンドで実行されています。次に、NodeBBフォーラムのリバースプロキシとして使用される新しいNginxサーバーブロックを作成します。ドメイン名がサーバーのIPアドレスを指していることを確認してください。
nanoエディタで新しいNginxサーバーブロック設定「/etc/nginx/sites-available/nodebb」を作成します。
sudo nano /etc/nginx/sites-available/nodebbNodeBBのリバースプロキシとしてNginxを設定するために、次の設定を追加します。server_nameパラメータを自分のドメイン名に変更してください。
server {
listen 80;
server_name forum.howtoforge.local;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}完了したら、ファイルを保存して終了します。
次に、サーバーブロックファイル「nodebb」を有効にし、以下のコマンドでNginxの構文をテストします。
sudo ln -s /etc/nginx/sites-available/nodebb /etc/nginx/sites-enabled/
sudo nginx -t適切なNginx構文があれば、‘syntax is ok - test is successful’という出力が表示されます。

最後に、以下のコマンドを実行してNginxサービスを再起動し、変更を適用します。
sudo systemctl restart nginxHTTPSでNodeBBを保護する
このガイドでは、CertbotとLetsencryptを使用してNodeBBをHTTPSで保護します。ローカルドメインを使用している場合は、これをスキップするか、自己署名証明書を生成することもできます。
以下のaptコマンドでCertbotとCertbot Nginxプラグインをインストールします。インストールを続行するにはYを入力します。
sudo apt install certbot python3-certbot-nginx次に、以下のcertbotコマンドを実行してNodeBBドメイン名のSSL証明書を生成します。メールアドレスとドメイン名を自分の情報に変更してください。
sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d forum.hwdomain.iプロセスが完了すると、NodeBBインストールは自動的にHTTPSで保護されます。SSL/TLS証明書は「/etc/letsencrypt/live/domain.com」ディレクトリに保存されます。
NodeBBにアクセスする
ウェブブラウザで https://forum.howtoforge.local/ にアクセスすると、以下のようにNodeBBのデフォルトインデックスページが表示されます。

ホームページから、ログインメニューをクリックすると、NodeBBのログインページが表示されます。管理者ユーザーとパスワードを入力し、ログインをクリックします。

成功すると、以下のユーザーダッシュボードが表示されます。

管理メニューをクリックすると、以下のようにNodeBB管理ダッシュボードにアクセスできます。

結論
おめでとうございます!Debian 12サーバーにNodeBBをインストールしました。MongoDBデータベースとNginxリバースプロキシでNodeBBが実行されています。また、CertbotとLetsencryptを使用してNodeBBをHTTPSで保護しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。