AlmaLinux 9にMongoDBとNginxプロキシを使用してNodeBBをインストールする方法
このページで
- 前提条件
- 依存関係をインストールする
- NodeBBのためのMongoDBサーバーとデータベースの設定
- NodeBBのインストール
- NodeBBをsystemdサービスとして実行する
- Nginxをリバースプロキシとして設定する
- NodeBBをHTTPSで保護する
- NodeBBにアクセスする
- 結論
NodeBBは、オンラインコミュニティのための現代的でレスポンシブなソリューションを提供するオープンソースのNode.jsベースのフォーラムソフトウェアです。Ubuntu Linux上で動作し、NodeBBはオペレーティングシステムの堅牢性と柔軟性を活用して高いパフォーマンスとスケーラビリティを実現しています。MongoDBとRedisの組み合わせを利用してデータベース管理を行い、大量のユーザー生成コンテンツを効率的に処理することができます。
NodeBBはリアルタイム通知、さまざまなソーシャルメディアプラットフォームとのシームレスな統合、そして広範なプラグインエコシステムで知られており、管理者が特定のニーズに応じてフォーラムをカスタマイズできるようにしています。さらに、モバイルファーストのデザインにより、すべてのデバイスで一貫した魅力的なユーザー体験が保証されます。Ubuntuの安定性とセキュリティ機能はNodeBBを補完し、動的なオンラインコミュニティのホスティングと管理に理想的な選択肢となっています。
このガイドでは、Alma Linux 9サーバーにNodeBBをインストールするためのステップバイステップの手順を提供します。データベースとしてMongoDBを使用し、リバースプロキシとしてNginxを使用し、次にCertbotとLetsencryptを通じてNodeBBをHTTPSで保護します。
前提条件
始める前に、次のものを用意してください:
- Alma Linux 9サーバー
- 管理者権限を持つ非ルートユーザー
- ドメイン名がサーバーのIPアドレスを指している
- 許可モードで有効なSELinux
依存関係をインストールする
NodeBBはNode.jsに基づいたオープンソースのフォーラムソフトウェアです。NodeBBをインストールするには、以下のパッケージがインストールされていることを確認する必要があります。
- 「開発ツール」、Git、ImageMagickなどのシステムツール
- Node.js 18以上およびNPM(Nodeパッケージマネージャー)
- MongoDB NoSQLデータベースサーバー
- Nginxウェブサーバーをリバースプロキシとして使用する
このセクションでは、Alma Linux 9サーバーにそれらの依存関係をインストールします。
まず、以下のコマンドを実行してAlma Linux CRB(CodeReadyBuild)リポジトリを有効にし、EPELリポジトリをインストールします。
sudo crb enable
sudo dnf install epel-release -y
次に、/etc/yum.repos.d/mongodb-org-7.0.repoという新しいリポジトリファイルをnanoエディタで作成します。
sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo
次の設定をファイルに入力してください:
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
作業が完了したら、ファイルを保存してエディタを終了してください。
以下のコマンドを実行して、AlmaLinuxのNode.js 18リポジトリを有効にしてください。
sudo dnf module enable nodejs:18 -y
次に、'dnf<&47;em>' コマンドを実行して、'開発ツール<&47;strong>'、MongoDBサーバー、Node.js、NPM、Git、およびImageMagickをインストールします。
sudo dnf group install "Development Tools" -y
sudo dnf install nodejs npm git ImageMagick mongodb-org -y
インストールが完了したら、次のコマンドで「mongod」サービスを開始し、有効にします。
sudo systemctl enable --now mongod
sudo systemctl status mongod
下にMongoDBサーバーが実行中で有効であることがわかります。
最後に、以下のコマンドでNode.jsのバージョンを確認してください。Alma LinuxサーバーにNode.js 18がインストールされていることがわかるはずです。
node --version
npm --version
NodeBBのためのMongoDBサーバーとデータベースの設定
依存関係がインストールされると、パスワード認証を有効にし、MongoDB管理者のパスワードを設定することでMongoDBサーバーを保護します。その後、NodeBBのインストール用に新しいMongoDBデータベースとユーザーを作成します。
以下の'mongosh<&47;em>'コマンドを使用してMongoDBサーバーにログインします。
mongosh
ログインしたら、'admin<&47;strong>'データベースに切り替え、以下のクエリを実行してMongoDBの管理者パスワードを設定します。'MongoDBAdminPass<&47;strong>'をあなたのパスワードの組み合わせに変更することを忘れないでください。
use admin
db.createUser( { user: "admin", pwd: "MongoDBAdminPass", roles: [ { role: "root", db: "admin" } ] } )
次に、以下のクエリを実行して、新しいデータベースとユーザー「nodebb」を作成し、パスワード「NodeBBPassword」を設定します。必要に応じて、以下のデータベースの詳細を調整できます。
use nodebb
db.createUser( { user: "nodebb", pwd: "NodeBBPassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
MongoDBサーバーから退出するには、'quit()'と入力してください。
MongoDBの管理者パスワードを設定した後、MongoDBの認証を有効にしましょう。
デフォルトのMongoDB設定ファイル「/etc/mongod.conf」を「nano」エディタで開きます。
sudo nano /etc/mongod.conf
MongoDBの認証を有効にするには、'security<&47;em>'の行のコメントを外し、次のように'authorization: enabled<&47;em>'を追加します。
security:
authorization: enabled
作業が完了したら、ファイルを保存して終了してください。
次に、MongoDBサーバーを再起動し、変更を適用するために、以下の「systemctl」コマンドを実行してください。MongoDBの認証は現在有効になっているはずです。
sudo systemctl restart mongod
設定を確認するには、以下の'mongosh<&47;em>'コマンドを実行して、ユーザー'nodebb<&47;em>'を使用してMongoDBにログインします。'nodebb<&47;em>'ユーザーのパスワードを入力してください。
mongosh "mongodb://127.0.0.1:27017" --username nodebb --authenticationDatabase nodebb
NodeBBのインストール
MongoDBサーバーの設定が完了したので、Alma LinuxサーバーにNodeBBをインストールする準備が整いました。
次のコマンドを使用して、新しいシステムユーザーとグループ「nodebb」を追加します。
sudo adduser -r -M -d /opt/nodebb -U nodebb
NodeBBのソースコードを「/opt/nodebb」ディレクトリにダウンロードし、所有権を「nodebb」ユーザーに変更します。
git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb
sudo chown -R nodebb:nodebb /opt/nodebb
'&47;opt&47;nodebb<&47;em>'ディレクトリに移動し、次のようにNodeBBセットアップスクリプトを実行します:
cd /opt/nodebb
sudo su -s /bin/bash -c "./nodebb setup" nodebb
ここでは、いくつかのNodeBB設定について尋ねられます。
- NodeBBのドメイン名を入力してください。例: https://forum.howtoforge.local.
- NodeBBの秘密の設定でENTERを押します。デフォルトのままにしておきます。
- NodeBBへの匿名アクセスを無効にするには「no」と入力してください。
- MongoDBをデータベースとして選択します。
- MongoDBデータベースの詳細を、mongodb://nodebb:[email :27017/nodebbの形式で入力してください。
- NodeBBの新しい管理者ユーザーとメールアドレスを入力してください。
- NodeBB管理ユーザーのパスワードを入力し、再度入力してください。
プロセスが完了すると、次のような出力が表示されます:
今、次のように「nodebb」スクリプトを実行することで、NodeBBを手動で開始または停止できます。
sudo su -s /bin/bash -c "./nodebb start" nodebb
sudo su -s /bin/bash -c "./nodebb stop" nodebb
NodeBBをsystemdサービスとして実行する
NodeBBをより簡単に管理するために、'systemctl<&47;em>'ユーティリティを使用してNodeBBプロセスを制御できます。これを行うには、NodeBBを実行するための新しいsystemdサービスファイルを作成する必要があります。
<em>nano</em>エディタを使用して新しいsystemdサービスファイル<em>/etc/systemd/system/nodebb.service</em>を作成します。
sudo nano /etc/systemd/system/nodebb.service
NodeBBをsystemdサービスとして実行するために、次の設定を入力してください。
[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=/bin/env node loader.js --no-silent --no-daemon
Restart=always
[Install]
WantedBy=multi-user.target
ファイルを保存してエディタを終了します。
以下のコマンドで 'systemctl<&47;em>' を使用して systemd マネージャを再読み込みします。
sudo systemctl daemon-reload
最後に、'nodebb<&47;em>'サービスを開始して有効にし、サービスが実行されていることを確認します。
sudo systemctl enable --now nodebb
sudo systemctl status nodebb
下に、NodeBBがsystemdサービスとしてバックグラウンドで実行されているのが見えます。
Nginxをリバースプロキシとして設定する
NodeBBがバックグラウンドでサービスとして実行されているので、Nginxをインストールし、NodeBBのリバースプロキシとして使用される新しいサーバーブロックを作成しましょう。
まず、以下の'dnf<&47;em>'コマンドを実行して、Nginxウェブサーバーをインストールします。
sudo dnf install nginx -y
新しいNginx設定「/etc/nginx/conf.d/nodebb.conf」を「nano」エディタで作成します。
sudo nano /etc/nginx/conf.d/nodebb.conf
次の設定を入力し、'server_name<&47;em>'パラメータをあなたのドメイン名に変更してください。
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";
}
}
完了したら、ファイルを保存してエディタを終了してください。
次に、以下のコマンドを実行してNginxの構文を確認します。成功すると、出力に「構文は正しい - テストは成功しました<&47;strong>」と表示されます。
sudo nginx -t
最後に、以下の'systemctl<&47;em>'コマンドを実行して、Nginxウェブサーバーを起動、有効化、確認してください。
sudo systemctl enable --now nginx
sudo systemctl status nginx
下にNginxウェブサーバーが稼働しているのが見えます。
NodeBBをHTTPSで保護する
この時点で、あなたのNodeBBインストールは準備が整いました。しかし、パブリックドメイン名を使用している場合は、NodeBBをHTTPSで保護する必要があります。このセクションでは、CertbotとLetsencryptを使用してNodeBBのHTTPSを設定します。
次のコマンドでCertbotとCertbot Nginxプラグインをインストールします:
sudo dnf install certbot python3-certbot-nginx -y
以下の'certbot<&47;em>'コマンドを実行して、NodeBBインストールをHTTPSで保護してください。このコマンドのドメイン名とメールアドレスを変更することを忘れないでください。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d forum.howtoforge.local
プロセスが完了すると、あなたのSSL/TLS証明書は「/etc/letsencrypt/live/domain.com」ディレクトリに利用可能になり、あなたのNodeBBインストールはHTTPSで保護されるべきです。
NodeBBにアクセスする
ウェブブラウザを開き、https://forum.howtoforge.localのようなNodeBBのドメイン名にアクセスしてください。インストールが成功していれば、次のNodeBBのホームページが表示されます。
結論
おめでとうございます!Alma Linux 9サーバーでNodeBBのインストールが完了しました。MongoDBサーバーとNginxをリバースプロキシとして使用してNodeBBフォーラムが稼働しています。また、CertbotとLetsencryptを使用してNodeBBのインストールをHTTPSで保護しました。