NodeBBインストール · 3 min read · Oct 19, 2025
Ubuntu 20.04 LTSにNginxとLet's Encrypt SSLを使用してNodeBBフォーラムをインストールする方法

NodeBBは、MongoDB/Redisをデータベースプラットフォームとして使用するNode.jsによって動かされる現代的なフォーラムソフトウェアです。ウェブソケットを使用して、即時のインタラクションとリアルタイム通知を提供します。
このチュートリアルでは、Ubuntu 20.04ベースのサーバーにNodeBBフォーラムをインストールする方法を学びます。
前提条件
- sudo権限を持つ非rootユーザーを持つUbuntu 20.04ベースのサーバー。
- 最低2GBのRAM。サーバーに1GBのRAMしかない場合は、スワップパーティションを有効にするのが最良です。
- すべてが更新されていることを確認してください。
shell $ sudo apt update && sudo apt upgrade - いくつかの必須パッケージ。これらのいくつかはすでにサーバーにインストールされている可能性があります。
shell $ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release
ステップ1 - ファイアウォールの設定
最初のステップはファイアウォールの設定です。Ubuntuにはデフォルトでufw(Uncomplicated Firewall)が付属しています。
ファイアウォールが実行中かどうかを確認します。
$ sudo ufw status
次の出力が表示されるはずです。
Status: inactive
SSHポートを許可して、ファイアウォールを有効にしたときに現在の接続が切断されないようにします。
$ sudo ufw allow OpenSSH
MongoDBサーバー用の27017ポートと、NodeBBフォーラムを実行するための4567ポートを許可します。HTTPおよびHTTPSポートも許可します。
$ sudo ufw allow 27017
$ sudo ufw allow 4567
$ sudo ufw allow 80
$ sudo ufw allow 443
ファイアウォールを有効にします。
$ sudo ufw enable
コマンドは既存のssh接続を中断する可能性があります。操作を続行しますか (y|n)? y
ファイアウォールはアクティブで、システム起動時に有効になります
再度ファイアウォールの状態を確認します。
$ sudo ufw status
同様の出力が表示されるはずです。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
4567 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
4567 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
ステップ2 - Node.jsのインストール
ここではNode.jsのLTSバージョンをインストールします。Node.jsをインストールするために次のコマンドを実行します。
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install nodejs
Nodeが正しくインストールされているか確認します。
$ node --version
次のような出力が表示されるはずです。
v12.18.3
npmも確認します。
$ npm --version
6.14.6
ステップ3 - MongoDBのインストール
MongoDBはNodeBBのデフォルトデータベースです。MongoDBの代わりにRedisを使用することもできます。このチュートリアルでは両方のデータベースをカバーします。
Ubuntu 20.04用のMongoDBのリポジトリはまだ準備ができておらず、Ubuntu自体には非常に古いバージョンが含まれています。私たちの目的のために、18.04用のMongoDBリポジトリを使用します。公式のサポートが利用可能になったら、最新のリポジトリでパッケージリストを更新できます。
MongoDBの公開鍵をインポートします。
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
MongoDBリポジトリを追加します。
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
ローカルパッケージデータベースを更新します。
$ sudo apt update
MongoDBをインストールします。
$ sudo apt install mongodb-org
MongoDBのインストールを確認します。
$ mongod --version
db version v4.2.8
...
MongoDBサービスを開始します。
$ sudo systemctl start mongod
MongoDBサービスを有効にします。
$ sudo systemctl enable mongod
MongoDBサービスの状態を確認します。
$ sudo systemctl status mongod
ステップ4 - MongoDBの設定
Mongoの管理はMongoDBシェルを通じて行います。MongoDBのデフォルトインストールはポート27017でリッスンします。
MongoDBシェルにアクセスします。
$ mongo
組み込みのadminデータベースに切り替えます。
> use admin
管理ユーザーを作成します。これはNodeBBの管理ユーザーとは異なります。
> db.createUser( { user: "admin", pwd: "yourpassword", roles: [ { role: "root", db: "admin" } ] } )
プレースホルダー“yourpassword”を自分のパスワードに変更します。
NodeBB用の新しいデータベースを追加します。
> use nodebb
次に、nodebbデータベースを管理するためのnodebbユーザーを作成します。
> db.createUser( { user: "nodebb", pwd: "yourpassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
readwrite権限により、NodeBBはnodebbデータベースからデータを保存および取得できます。clustermonitor権限により、NodeBBは管理パネルを介して表示されるデータベース統計に対して読み取り専用アクセスを持ちます。
Mongoシェルを終了します。
> quit()
MongoDB設定ファイルを編集のために開きます。
$ sudo nano /etc/mongod.conf
ファイルの最後に次の行を追加します。
security:
authorization: enabled
MongoDBを再起動し、前に作成した管理ユーザーを確認します。
$ sudo systemctl restart mongod
$ mongo -u admin -p yourpassword --authenticationDatabase=admin
すべてが正しく設定されていれば、Mongoプロンプトが表示されるはずです。
ステップ5 - Gitのインストール
NodeBBをインストールする前に、Gitをインストールする必要があります。
Gitをインストールするために次のコマンドを実行します。
$ sudo apt install git
Gitの初期設定を行うために次のコマンドを実行します。
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
ステップ6 - NodeBBのインストール
NodeBBをrootユーザーとして実行することは推奨されません。
特権のないユーザーを作成します。
$ sudo adduser nodebb
お好みのパスワードを設定し、他のオプションはスキップします。
NodeBBフォーラムが存在するディレクトリを作成します。
$ sudo mkdir /var/www/nodebb
フォルダーの所有権を新しく作成したユーザーに変更します。
$ sudo chown -R nodebb:nodebb /var/www/nodebb
新しく作成したユーザーでログインします。
$ su nodebb
NodeBBインストールディレクトリに移動します。
$ cd /var/www/nodebb
NodeBBをインストールするには、まずそのGithubリポジトリをクローンする必要があります。
NodeBBを/var/www/nodebbディレクトリにクローンします。コマンドの最後のドットは現在のディレクトリを指します。
$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .
ここでは、チュートリアル執筆時点で最新の安定版であるNodeBBのv1.14.2をクローンしました。NodeBBの最新の安定ブランチは、NodeBBの最新リリースページで見つけることができます。
NodeBBにはコマンドラインユーティリティが付属しています。次のコマンドを使用してNodeBBをインストールします。
$ ./nodebb setup
デフォルト値を選択するにはEnterを押します。
このNodeBBにアクセスするために使用するURLの値には、フォーラムにアクセスするための最終的なURLを選択します。サーバーのIP経由でフォーラムにアクセスする場合は、それを入力するか、フォーラムの完全なドメインを入力します。ここではhttp://forum.example.comを入力します。
MongoDBユーザー名を求められるまでデフォルト値を選択し続けます。そのとき、nodebbと、MongoDBを設定する際にそのユーザー名のために選択したパスワードを入力します。データベースnodebbが選択されるはずです。また、管理ユーザーを作成し、その詳細を求められます。
セットアップが完了したら、次のコマンドを実行してNodeBBを開始します。
$ ./nodebb start
フォーラムが実行中になりました。http://を介してアクセスできるはずです。

NodeBBへの接続が失われたようです。再接続を試みていますのでお待ちください。というエラーメッセージが表示されることがあります。これは、NodeBBのデフォルトURLhttp://forum.example.comを選択したために表示されますが、セットアップ中にIPアドレスを入力すれば、エラーは表示されなくなりますが、フォーラムのドメインを選択した後に再度設定を行う必要があります。
NodeBBユーザーから退出します。
$ exit
ステップ7 - Nginxのインストール
Ubuntu 20.04にはデフォルトで最新の安定版Nginxが含まれています。それをインストールします。
$ sudo apt install nginx
正しくインストールされているか確認します。
$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
Nginxを開始し、有効にします。
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
ウェブブラウザでサーバーのIPアドレスを開きます。サーバーが稼働していることを示す次のページが表示されるはずです。

ステップ8 - Nginxの設定
次のコマンドを実行して、サイトの設定ファイルを追加します。
$ sudo nano /etc/nginx/sites-available/nodebb.conf
エディタに次のコードを貼り付けます。
server {
listen 80;
server_name forum.example.com;
access_log /var/log/nginx/forum.example.com.access.log;
error_log /var/log/nginx/forum.example.com.error.log;
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サポート
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Ctrl + Xを押してエディタを終了し、プロンプトが表示されたらYを入力します。
完了したら、Nginxの設定が正しいことを確認します。
$ sudo nginx -t
設定を有効にするためにNginxサービスを再読み込みします。
$ sudo systemctl reload nginx
ブラウザでhttp://forum.example.comにアクセスしてNodeBBフォーラムを開きます。

ステップ9 - NodeBBをシステムサービスとして実行する
NodeBBサービスはシステム再起動後に実行されません。NodeBBを毎回起動するのを避けるために、システムサービスとしてインストールする必要があります。
まずNodeBBサービスを停止します。
$ ./nodebb stop
次のコマンドを実行してnodebb.servicesystemdユニット設定ファイルを作成および編集します。
$ 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=forking
User=nodebb
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always
[Install]
WantedBy=multi-user.target
ここでは、ステップ6で作成したユーザー名nodebbと、NodeBBをインストールするために選択したパスを選択しました。
NodeBBサービスを有効にします。
$ sudo systemctl enable nodebb
NodeBBサービスを開始します。
$ sudo systemctl start nodebb
サービスの状態を確認します。
$ sudo systemctl status nodebb
ステップ10 - Let’s Encrypt SSL証明書を取得する
NodeBBフォーラムをHTTPSで保護することは、サイトのトラフィックを保護するための必要なステップです。このチュートリアルでは、SSLをインストールするためにCertbotクライアントを使用します。
まず、Certbotツールをインストールします。
$ sudo apt install certbot python3-certbot-nginx
証明書を生成します。
$ sudo certbot --nginx -d forum.example.com
これが初めてCertbotをシステムで実行する場合、メールアドレスを求められ、利用規約に同意する必要があります。また、EFF財団とデータを共有することに同意するかどうかも尋ねられますが、これは「いいえ」と答えることができます。その後、CertbotはLet’s Encryptサーバーと通信し、ドメインを確認するためのチャレンジを実行します。
成功した場合、HTTPSリダイレクトの処理方法を尋ねられます。
HTTPSアクセスが必須かオプションかを選択してください。
-------------------------------------------------------------------------------
1: 簡単 - HTTPとHTTPSの両方のアクセスを許可
2: 安全 - すべてのリクエストを安全なHTTPSアクセスにリダイレクト
-------------------------------------------------------------------------------
適切な番号[1-2]を選択して[Enter]を押してください(キャンセルするには'c'を押してください):安全を選択し、Enterを押します。これにより、httpドメインへのすべてのリクエストが適切にhttpsバージョンにリダイレクトされます。証明書が作成され、Nginxの設定ファイルがSSL設定で更新されます。
証明書が準備できました。https://forum.example.comにアクセスしてサイトを開くことができます。
ステップ11 - SSL自動更新の確認
これはこのチュートリアルを終える前の最後のステップです。
更新プロセスを確認するために、更新プロセスのドライランを実行します。
$ sudo certbot renew --dry-run
エラーが表示されなければ、設定は完了です。Certbotは自動的に証明書を更新します。証明書の有効期限について警告するメールが送信されます。
結論
これでこのチュートリアルは終了です。NodeBBフォーラムのセットアップが完了しました。質問がある場合は、下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。