GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04にNginxを使用してRocket.Chatサーバーをインストールする方法

Rocket.Chatは、Meteorフルスタックフレームワークを使用してJavaScriptで記述されたWebベースのチャットアプリケーションです。これは、複数のデバイス間でリアルタイムで安全に通信できるようにするオープンソースのチャットコラボレーションプラットフォームです。自己ホスト型で、音声およびビデオチャット、ビデオ会議、ファイル共有などをサポートします。 Windows、macOS、Linux、Android、iOSを含むすべてのプラットフォームで利用できるクライアントアプリケーションがあります。

このチュートリアルでは、Ubuntu20.04サーバーにRocket.Chatをインストールする方法を紹介します。

前提条件
  • Ubuntu20.04を実行しているサーバー。
  • サーバーIPで指定された有効なドメイン名。
  • ルートパスワードがサーバーに設定されます。
はじめに

開始する前に、システムパッケージを最新バージョンに更新することをお勧めします。次のコマンドで更新できます:

apt-get update -y

システムが更新されたら、次のコマンドを使用して他の必要な依存関係をインストールします。

apt-get install nginx gnupg2 git unzip build-essential curl software-properties-common graphicsmagick -y

すべてのパッケージがインストールされたら、次のステップに進むことができます。

Node.jsをインストール

次に、Node.jsバージョン12をシステムにインストールする必要があります。デフォルトでは、Ubuntu20.04標準リポジトリでは使用できません。そのため、Node.jsの公式リポジトリをシステムに追加する必要があります。次のコマンドで追加できます:

curl -sL https://deb.nodesource.com/setup_12.x | bash -

リポジトリが追加されたら、次のコマンドを使用してNode.jsをインストールします。

apt-get install nodejs -y

Node.jsをインストールした後、次のコマンドを使用して、インストールされているNode.jsのバージョンを確認します。

node -v

次の出力が得られるはずです:

v12.19.0

終了したら、次のステップに進むことができます。

MongoDBのインストールと構成

次に、システムにMongoDBサーバーをインストールする必要があります。デフォルトでは、MongoDBの最新バージョンはUbuntu20.04のデフォルトリポジトリでは利用できません。そのため、システムにMongoDBリポジトリを追加する必要があります。まず、次のコマンドを使用してGPGキーをダウンロードして追加します。

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

次の出力が得られるはずです:

Executing: /tmp/apt-key-gpghome.Ku2thT4UnL/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
gpg: key 68818C72E52529D4: public key "MongoDB 4.0 Release Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1

次に、次のコマンドを使用してMongoDB公式リポジトリを追加します。

add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

リポジトリが追加されたら、次のコマンドを使用してMongoDBをインストールします。

apt-get install mongodb-org -y

MongoDBをインストールした後、MongoDBサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start mongod
systemctl enable mongod

次に、MongoDBのデフォルト構成ファイルを編集し、レプリカセットを定義する必要があります。次のコマンドで実行できます:

nano /etc/mongod.conf

次の行を追加します:

replication:
  replSetName: "replica01"

ファイルを保存して閉じてから、MongoDBサービスを再起動して構成を適用しますg:

systemctl restart mongod

次に、MongoDBシェルにログインし、次のコマンドでレプリカを有効にします。

mongo
> rs.initiate()

次の出力が得られるはずです:

{
	"info2" : "no configuration specified. Using a default configuration for the set",
	"me" : "127.0.0.1:27017",
	"ok" : 1,
	"operationTime" : Timestamp(1605081439, 1),
	"$clusterTime" : {
		"clusterTime" : Timestamp(1605081439, 1),
		"signature" : {
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	}
}

次に、次のコマンドを使用してMongoDBシェルを終了します。

> exit

終了したら、次のステップに進むことができます。

Rocket.Chatをインストールします

次に、Rocket.Chatの新しいユーザーを作成し、それをwww-dataグループに追加する必要があります。次のコマンドを使用して実行できます:

useradd -m -U -r -d /opt/rocket rocket --shell /bin/bash
usermod -a -G rocket www-data

次に、/ opt/rocketディレクトリに適切な権限を付与します。

chmod 750 /opt/rocket

次に、ユーザーをRocket.Chatに切り替え、次のコマンドを使用して最新バージョンのRocket.Chatをダウンロードします。

su - rocket
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz

ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを抽出します。

tar -xvzf rocket.chat.tgz

次に、次のコマンドを使用して、抽出したディレクトリの名前をRocket.Chatに変更します。

mv bundle Rocket.Chat

次に、ディレクトリをRocket.Chatサーバーに変更し、次のコマンドを使用してすべてのNode.js依存関係をインストールします。

cd Rocket.Chat/programs/server
npm install

すべての依存関係がインストールされたら、次のコマンドを使用してRocket.Chatユーザーを終了できます。

exit

Rocket.ChatのSystemdサービスファイルを作成する

次に、Rocket.Chatサービスを管理するためのsystemdサービスファイルを作成する必要があります。次のコマンドで作成できます:

nano /etc/systemd/system/rocketchat.service

次の行を追加します:

[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target

[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://rocket.yourdomain.com PORT=3000
ExecStart=/usr/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

次のコマンドを使用して、ファイルを保存して閉じ、systemdデーモンをリロードします。

systemctl daemon-reload

次に、Rocket.Chatサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。

systemctl start rocketchat
systemctl enable rocketchat

次のコマンドを使用して、Rocket.Chatのステータスを確認できるようになりました。

systemctl status rocketchat

すべてが正常であれば、次の出力が得られるはずです:

? rocketchat.service - Rocket.Chat server
     Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-11-11 07:58:01 UTC; 24s ago
   Main PID: 19951 (node)
      Tasks: 11 (limit: 4691)
     Memory: 508.7M
     CGroup: /system.slice/rocketchat.service
             ??19951 /usr/bin/node /opt/rocket/Rocket.Chat/main.js

Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |      MongoDB Version: 4.0.21                             |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |       MongoDB Engine: wiredTiger                         |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |             Platform: linux                              |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |         Process Port: 3000                               |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |             Site URL: http://rocket.yourdomain.com  |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |     ReplicaSet OpLog: Enabled                            |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |          Commit Hash: e37d7ba8ed                         |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |        Commit Branch: HEAD                               |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? |                                                          |
Nov 11 07:58:21 ubuntu2004 rocketchat[19951]: ? +----------------------------------------------------------+

Rocket.Chat用にNginxを構成する

次に、NginxをRocket.Chatのリバースプロキシとして構成する必要があります。これを行うには、次のコマンドを使用してNginx仮想ホスト構成ファイルを作成します。

nano /etc/nginx/sites-available/rocketchat.conf

次の行を追加します:

upstream myrocketchat {
  server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name rocket.yourdomain.com;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://myrocketchat/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

ファイルを保存して閉じてから、次のコマンドでNginx仮想ホストをアクティブ化します。

ln -s /etc/nginx/sites-available/rocketchat.conf /etc/nginx/sites-enabled/

次に、次のコマンドを使用して、systexエラーがないかNginxを確認します。

nginx -t

次の出力が得られるはずです:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最後に、Nginxサービスを再起動して、構成の変更を適用します。

systemctl restart nginx

次のコマンドを使用して、Nginxサービスのステータスを確認することもできます。

systemctl status nginx

次の出力が得られるはずです:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-11-11 07:59:39 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 20034 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 20047 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 20051 (nginx)
      Tasks: 3 (limit: 4691)
     Memory: 3.5M
     CGroup: /system.slice/nginx.service
             ??20051 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??20052 nginx: worker process
             ??20053 nginx: worker process

Nov 11 07:59:39 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 11 07:59:39 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

終了したら、次のステップに進むことができます。

アクセスRocket.Chat

この時点で、Rocket.Chatがインストールおよび構成されています。 Rocket.ChatWebインターフェイスにアクセスするときが来ました。 Webブラウザーを開き、URL http://rocket.yourdomain.comを使用してRocket.Chatにアクセスします。 。次のページにリダイレクトされます:

管理者名、メールアドレス、パスワードを入力し、続行をクリックします ボタン。次のページが表示されます:

組織の種類、名前、業界、規模、国を入力して、続行をクリックします ボタン。次のページが表示されます:

サイト名、言語、サーバータイプを入力し、続行をクリックします ボタン。次のページが表示されます:

利用規約とプライバシーポリシーに同意し、続行をクリックします ボタン。次のページが表示されます。

ワークスペースに移動をクリックします ボタン。次のページのRocket.Chatダッシュボードにリダイレクトされます:

結論

おめでとう!これで、リバースプロキシとしてNginxを使用してRocket.Chatを正常にインストールおよび構成できました。これで、Rocket.Chatを本番環境にインストールして、友達や家族とチャットを開始できます。


Ubuntu
  1. Ubuntu16.04にNginxを使用してHTTPGitサーバーをインストールする方法

  2. Ubuntu20.04でGooglePageSpeedを使用してNginxをインストールする方法

  3. Ubuntu20.04にNginxを使用してHTTPGitサーバーをインストールする方法

  1. Ubuntu20.04にNginxをインストールする方法

  2. Ubuntu16.04にRocket.Chatをインストールする方法

  3. Ubuntu18.04にRocket.Chatをインストールする方法

  1. Ubuntu18.04LTSにNginxを使用してNextcloudをインストールする方法

  2. Ubuntu16.04にNginxを使用してRocket.Chatサーバーをインストールする方法

  3. Ubuntu18.04LTSにNginxを使用してGitBucketをインストールする方法