Fedora 28にNodeBBフォーラムをインストールする方法

NodeBBはNode.jsベースのフォーラムです。Webソケットを利用して、即時の対話とリアルタイムの通知を行います。NodeBBのソースコードはGithubで公開されています。このガイドでは、Node.js、MongoDBをデータベースとして、Nginxをリバースプロキシとして、Acme.shをSSL証明書として使用して、新しいFedora 28 VultrインスタンスでのNodeBBインストールプロセスについて説明します。

必要条件

NodeBBには、次のソフトウェアがインストールされている必要があります。

  • ギット
  • Node.jsバージョン6.9.0以降
  • MongoDBバージョン2.6以降
  • Nginx
  • 1024MB以上のRAM
  • A/ AAAAレコードが設定されたドメイン名

あなたが始める前に

Fedoraのバージョンを確認してください。

cat /etc/fedora-release
# Fedora release 28 (Twenty Eight)

アクセス権を持つ新しい非rootユーザーアカウントを作成し、sudoそれに切り替えます。

useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe

をユーザー名に置き換えjohndoeます。

タイムゾーンを設定します。

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

システムが最新であることを確認します。

sudo dnf check-upgrade || sudo dnf upgrade -y

必要なパッケージをインストールします。

sudo dnf install -y git wget vim gcc-c++ make

簡単にするために、SELinuxとファイアウォールを無効にします。

sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld

Node.jsをインストールする

NodeBBはNode.jsによって駆動されるため、インストールする必要があります。Node.jsの現在のLTSバージョンのインストールをお勧めします。

Node.jsをインストールします。

sudo dnf install -y nodejs

Node.jsとnpmのインストールを確認します。

node -v && npm -v
# v8.11.3
# 5.6.0

MongoDBをインストールして構成する

MongoDBはNodeBBのデフォルトデータベースです。

MongoDBをインストールします。

sudo dnf install -y mongodb mongodb-server

バージョンを確認してください。

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3

MongoDBサービスを有効にして開始します。

sudo systemctl enable mongod.service
sudo systemctl start mongod.service

MongoDBデータベースとNodeBBのユーザーを作成します。

まず、MongoDBサーバーに接続します。

mongo

組み込みadminデータベースに切り替えます。

> use admin

管理ユーザーを作成します。

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

注: プレースホルダー<Enter a secure password>を独自に選択したパスワードに置き換えます。

という新しいデータベースを追加しますnodebb

> use nodebb

データベースが作成され、コンテキストがに切り替わりnodebbます。次にnodebb、適切な特権を持つユーザーを作成します。

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

注: ここでも、プレースホルダー<Enter a secure password>を独自に選択したパスワードに置き換えます。

Mongoシェルを終了します。

> quit()

MongoDBを再起動し、前に作成した管理ユーザーが接続できることを確認します。

sudo systemctl restart mongod.service
mongo -u admin -p your_password --authenticationDatabase=admin

Nginxをインストールして構成する

Nginxをインストールします。

sudo dnf install -y nginx

バージョンを確認してください。

sudo nginx -v
# nginx version: nginx/1.12.1

Nginxを有効にして起動します。

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

デフォルトでは、NodeBBはポートで実行されます4567。入力を避けるhttp://example.com:4567ために、NodeBBアプリケーションのリバースプロキシとしてNginxを構成します。ポート80または443SSLが使用されている場合)のすべての要求はポートに転送されます4567

実行してsudo vim /etc/nginx/conf.d/nodebb.conf、以下の基本的なリバースプロキシ構成を入力します。

server {

  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

  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_hide_header X-Powered-By;
    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";
  }

}

上記の設定で、server_nameディレクティブをドメイン/ホスト名で更新します。

構成を確認してください。

sudo nginx -t

Nginxをリロードします。

sudo systemctl reload nginx.service

Acme.shクライアントをインストールし、Let's Encrypt証明書を取得します(オプション)。

HTTPSでフォーラムを保護する必要はありませんが、サイトのトラフィックは保護されます。Acme.shは、依存関係がゼロのLet's EncryptからSSL証明書を取得するための純粋なUNIXシェルソフトウェアです。

Acme.shをダウンロードしてインストールします。

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
source ~/.bashrc

バージョンを確認してください。

/etc/letsencrypt/acme.sh --version
# v2.7.9

forum.example.comドメイン/ホスト名のRSAおよびECDSA証明書を取得します。

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength ec-256

上記のコマンドを実行すると、証明書とキーは次のディレクトリにあります。

  • RSA: /etc/letsencrypt/forum.example.com
  • ECC / ECDSA: /etc/letsencrypt/forum.example.com_ecc

Let's Encryptから証明書を取得したら、それらを使用するようにNginxを構成する必要があります。

sudo vim /etc/nginx/conf.d/nodebb.conf再度実行して、NginxをHTTPSリバースプロキシとして構成します。

server {

  listen [::]:443 ssl http2;
  listen 443 ssl http2;
  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

  # RSA
  ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.key;

  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";
  }

}

構成を確認してください。

sudo nginx -t

Nginxをリロードします。

sudo systemctl reload nginx.service

NodeBBをインストールする

ドキュメントルートディレクトリを作成します。

sudo mkdir -p /var/www/nodebb

/var/www/nodebbディレクトリの所有権をに変更しjohndoeます。

sudo chown -R johndoe:johndoe /var/www/nodebb

ドキュメントルートフォルダーに移動します。

cd /var/www/nodebb

最新のNodeBBをドキュメントルートフォルダーに複製します。

git clone -b v1.10.x https://github.com/NodeBB/NodeBB.git .

NodeBBセットアップコマンドを実行し、プロンプトが表示されたら各質問に答えます。

./nodebb setup

NodeBBのセットアップが完了したら、実行./nodebb startしてNodeBBサーバーを手動で起動します。

./nodebb start

このコマンドを実行すると、Webブラウザーでフォーラムにアクセスできるようになります。

NodeBBをシステムサービスとして実行する

経由./nodebb startで起動した場合、システムの再起動時にNodeBBは自動的に再起動しません。これを回避するには、NodeBBをシステムサービスとしてセットアップする必要があります。

実行中の場合は、NodeBBを停止します。

./nodebb stop

新しいnodebbユーザーを作成します。

sudo useradd nodebb

/var/www/nodebbディレクトリの所有権をnodebbユーザーに変更します。

sudo chown -R nodebb:nodebb /var/www/nodebb

nodebb.servicesystemdユニット構成ファイルを作成します。このユニットファイルは、NodeBBデーモンの起動を処理します。実行sudo vim /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

注: 選択した名前に従ってユーザー名とディレクトリパスを設定します。

nodebb.service再起動時に有効にしてすぐに起動しnodebb.serviceます。

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

nodebb.service状態を確認してください。

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

それでおしまい。NodeBBインスタンスが稼働します。



Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

Fedora 29にWonderCMSをインストールする方法

Fedora 29にWonderCMSをインストールする方法

別のシステムを使用していますか?WonderCMSは、PHPで書かれたオープンソースの高速で小さなフラットファイルCMSです。WonderCMSソースコードはGithubでホストされています。このガイドは

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

Go(Golangとも呼ばれます)は、静的に型付けされ、コンパイルされた、Cのようなプログラミング言語で、Googleによって開発されました。シンプルさと多用途性により、b

Fedora 26 LAMP VPSにLychee 3.1フォトアルバムをインストールする方法

Fedora 26 LAMP VPSにLychee 3.1フォトアルバムをインストールする方法

別のシステムを使用していますか?ライチ3.1フォトアルバムは、VPSサーバー上で実行されるシンプルで柔軟な無料のオープンソースの写真管理ツールです。インストールする

Fedora 28へのFork CMSのインストール

Fedora 28へのFork CMSのインストール

別のシステムを使用していますか?Forkは、PHPで記述されたオープンソースのCMSです。フォークのソースコードはGitHubでホストされています。このガイドでは、Fork CMのインストール方法を説明します

Fedora 28にRainLoopウェブメールをインストールする方法

Fedora 28にRainLoopウェブメールをインストールする方法

別のシステムを使用していますか?RainLoopは、シンプルで最新の高速なWebベースの電子メールクライアントです。RainLoopのソースコードはGitHubでホストされています。このガイドはあなたにあなたを示します

Fedora 26 LAMP VPSにTextPattern CMS 4.6.2をインストールする方法

Fedora 26 LAMP VPSにTextPattern CMS 4.6.2をインストールする方法

別のシステムを使用していますか?TextPattern CMS 4.6.2はシンプルで柔軟な無料のオープンソースコンテンツ管理システム(CMS)であり、Webデザイナーが

Fedora 28にBookStackをインストールする方法

Fedora 28にBookStackをインストールする方法

別のシステムを使用していますか?BookStackは、情報を整理および保存するためのシンプルな自己ホスト型プラットフォームです。BookStackは完全に無料でオープンソースです。

Fedora 29にGiteaをインストールする方法

Fedora 29にGiteaをインストールする方法

別のシステムを使用していますか?Giteaは、Gitを搭載した代替オープンソースの自己ホスト型バージョン管理システムです。GiteaはGolangで書かれており、

Fedora 26 LAMP VPSにCouch CMS 2.0をインストールする方法

Fedora 26 LAMP VPSにCouch CMS 2.0をインストールする方法

別のシステムを使用していますか?Couch CMSはシンプルで柔軟な無料のオープンソースのコンテンツ管理システム(CMS)であり、Webデザイナーが設計できるようにします。

Fedora 28にMyBBをインストールする方法

Fedora 28にMyBBをインストールする方法

別のシステムを使用していますか?MyBBは無料でオープンソースの直感的で拡張可能なフォーラムプログラムです。MyBBのソースコードはGitHubでホストされています。このガイドは笑います

Fedora 29にKanboardをインストールする方法

Fedora 29にKanboardをインストールする方法

別のシステムを使用していますか?はじめにKanboardは、無料でオープンソースのプロジェクト管理ソフトウェアプログラムであり、容易に視覚化できるように設計されています。

Fedora 29にHTMLDocをインストールする

Fedora 29にHTMLDocをインストールする

別のシステムを使用していますか?HTMLDocは、正しく記述されたハイパーテキスト(HTML 3.2)から動的にPostscript(PDF 1.6)ドキュメントを解析します。これにより、

Fedora 26 LAMP VPSにBackdrop CMS 1.8.0をインストールする方法

Fedora 26 LAMP VPSにBackdrop CMS 1.8.0をインストールする方法

別のシステムを使用していますか?背景CMS 1.8.0は、シンプルで柔軟なモバイルフレンドリーな無料のオープンソースコンテンツ管理システム(CMS)であり、

Fedora 28にCachetをインストールする方法

Fedora 28にCachetをインストールする方法

別のシステムを使用していますか?Cachetは、PHPで記述されたオープンソースのステータスページシステムです。Cachetのソースコードは、このGithubリポジトリでホストされています。ティで

Fedora 28にMicroweberをインストールする方法

Fedora 28にMicroweberをインストールする方法

別のシステムを使用していますか?Microweberは、オープンソースのドラッグアンドドロップCMSとオンラインショップです。MicroweberのソースコードはGitHubでホストされています。このガイドはあなたを示します

Fedora 26 LAMP VPSにBlogoText CMSをインストールする方法

Fedora 26 LAMP VPSにBlogoText CMSをインストールする方法

別のシステムを使用していますか?BlogoText CMSは、シンプルで軽量な無料のオープンソースコンテンツ管理システム(CMS)とシンプルなブログエンジンです。

Fedora 28へのAkauntingのインストール

Fedora 28へのAkauntingのインストール

別のシステムを使用していますか?Akauntingは、中小企業やフリーランサー向けに設計された無料のオープンソースのオンライン会計ソフトウェアです。それはウィットに構築されています

Fedora 28にBludit CMSをインストールする方法

Fedora 28にBludit CMSをインストールする方法

別のシステムを使用していますか?Bluditは、PHPで書かれたシンプルで高速かつ柔軟なブログCMSです。BluditはJSON形式のファイルを使用してコンテンツを保存するので、

Fedora 30にosTicketをインストールする方法

Fedora 30にosTicketをインストールする方法

別のシステムを使用していますか?osTicketは、オープンソースのカスタマーサポートチケットシステムです。osTicketのソースコードはGithubで公開されています。このチュートリアルでは

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、