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 \  
--dearmor
echo "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

install dependencies

インストールが完了したら、次のコマンドでsystemdマネージャーをリロードします。

sudo systemctl daemon-reload

次のコマンドを実行して、MongoDBサービスの状態を開始、有効化、および確認します。

sudo systemctl enable --now mongod  
sudo systemctl status mongod

次の出力は、MongoDBが実行中であることを確認します。

check mongodb

次に、以下のコマンドでNginxサービスの状態を確認します。Nginxがシステムで有効になって実行中であることがわかります。

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

check nginx

最後に、以下のコマンドでNode.jsとNPMのバージョンを確認します。

sudo node -v  
sudo npm -v

以下のように、Node.js 18とNPM 9がインストールされていることがわかります。

check node.js and npm

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から退出します。

setup mgonodb admin and create new database and user

次に、nanoエディタでMongoDB設定「/etc/mongod.conf」を開きます。

sudo nano /etc/mongod.conf

次の設定を追加してMongoDB認証を有効にします。

security:  
authorization: enabled

完了したら、ファイルを保存して閉じます。

次のコマンドを実行してMongoDBサービスを再起動し、新しい変更を適用します。コマンドが実行されると、MongoDB認証が有効になります。

sudo systemctl restart mongod

MongoDB設定が成功したことを確認するために、ユーザー「nodebb」でデータベース「nodebb」にログインします。求められたらパスワードを入力します。

mongosh "mongodb://127.0.0.1:27017" --username nodebb --authenticationDatabase nodebb

ログイン後、以下のクエリを実行して接続を確認し、MongoDBから退出します。

db.runCommand( { connectionStatus: 1, showPrivileges: false } )  
quit()

次の出力で、データベース「nodebb」に「nodebb」として認証されていることがわかります。

check mongodb user connection

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を実行するためのコマンドも表示されます。

setup complete

次に、以下のコマンドを実行してNodeBBを開始または停止します。手動でNodeBBを開始または停止する必要があるときに使用できます。

sudo su -s /bin/bash -c "./nodebb start" nodebb  
sudo su -s /bin/bash -c "./nodebb stop" nodebb

start and 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サービスとして実行されていることがわかります。

setup nodebb systemd

Nginxをリバースプロキシとして設定する

この時点で、NodeBBはポート「4567」でバックグラウンドで実行されています。次に、NodeBBフォーラムのリバースプロキシとして使用される新しいNginxサーバーブロックを作成します。ドメイン名がサーバーのIPアドレスを指していることを確認してください。

nanoエディタで新しいNginxサーバーブロック設定「/etc/nginx/sites-available/nodebb」を作成します。

sudo nano /etc/nginx/sites-available/nodebb

NodeBBのリバースプロキシとして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’という出力が表示されます。

setup nginx

最後に、以下のコマンドを実行してNginxサービスを再起動し、変更を適用します。

sudo systemctl restart nginx

HTTPSで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のデフォルトインデックスページが表示されます。

homepage

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

login page

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

user dashboard

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

admin dashboard

結論

おめでとうございます!Debian 12サーバーにNodeBBをインストールしました。MongoDBデータベースとNginxリバースプロキシでNodeBBが実行されています。また、CertbotとLetsencryptを使用してNodeBBをHTTPSで保護しました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。