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.ChatWebインターフェイスにアクセスするときが来ました。 Webブラウザーを開き、URL http://rocket.yourdomain.comを使用してRocket.Chatにアクセスします。 。次のページにリダイレクトされます:
管理者名、メールアドレス、パスワードを入力し、続行をクリックします ボタン。次のページが表示されます:
組織の種類、名前、業界、規模、国を入力して、続行をクリックします ボタン。次のページが表示されます:
サイト名、言語、サーバータイプを入力し、続行をクリックします ボタン。次のページが表示されます:
利用規約とプライバシーポリシーに同意し、続行をクリックします ボタン。次のページが表示されます。
ワークスペースに移動をクリックします ボタン。次のページのRocket.Chatダッシュボードにリダイレクトされます:
おめでとう!これで、リバースプロキシとしてNginxを使用してRocket.Chatを正常にインストールおよび構成できました。これで、Rocket.Chatを本番環境にインストールして、友達や家族とチャットを開始できます。