Rocket.Chatは、オープンソースのチームコミュニケーションプラットフォームであり、自己ホスト型のSlackの代替手段です。 Meteorフレームワークを使用して開発され、ヘルプデスクチャット、ファイル共有、ビデオ会議、音声メッセージ、APIなどのさまざまな機能を提供します。
Rocket.Chatは、独自のチャットシステムをホストしたい企業やコミュニティに最適なソリューションです。
このチュートリアルでは、Ubuntu 18.04サーバーにRocket.Chatをデプロイし、NginxをSSLリバースプロキシとして構成する方法を示します。
前提条件#
このチュートリアルを進める前に、次の前提条件があることを確認してください。
- Ubuntu18.04サーバー。 Rocket.Chatの公式システム要件によると、少なくとも1GのRAMが必要です。
- サーバーのIPアドレスを指すドメイン名。
chat.example.com
を使用します 。 - このチュートリアルに従って、Nginxをインストールしました。
- ドメインにSSL証明書がインストールされています。このチュートリアルに従うことで、無料のLet’sEncryptSSL証明書を生成できます。
Node.jsのインストール#
システムパッケージリストを更新することから始めます:
sudo apt update
Node.js、npm、およびソースからnpmパッケージをビルドするために必要な他のすべての依存関係をインストールします:
sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick
この記事の執筆時点で、Rocket.Chatに推奨されるNode.jsバージョンはNode.jsv8.11.3です。
n
を使用します 、Node.jsのバージョンをインタラクティブに管理できるnpmパッケージ。
次のコマンドを発行して、 n
をインストールします および推奨されるNode.jsバージョン:
sudo npm install -g inherits n
sudo n 8.11.3
MongoDBのインストール#
MongoDBはNoSQLドキュメント指向データベースであり、Rocket.Chatによってデータストアとして使用されます。
公式のMongoDBリポジトリからMongoDBをインストールします。
次のコマンドを使用して、MongoDB公開鍵をインポートし、公式のMongoDBリポジトリを有効にします。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
aptリポジトリが有効になったら、パッケージリストを更新し、次のように入力してMongoDBをインストールします。
sudo apt update
sudo apt install mongodb-org
インストールが完了したら、MongoDBサービスを有効にして開始します。
sudo systemctl start mongod
sudo systemctl enable mongod
rocket
という名前の新しいユーザーとグループを作成するには 、Rocket.Chatインスタンスを実行します。次のように入力します:
sudo useradd -m -U -r -d /opt/rocket rocket
www-data
を追加します ユーザーを新しいユーザーグループに変更し、 / opt / rocket
を変更します NginxがRocket.Chatインストールにアクセスできるようにするためのディレクトリ権限:
sudo usermod -a -G rocket www-data
sudo chmod 750 /opt/rocket
Rocket.Chatのインストール#
ユーザーrocket
に切り替えます :
sudo su - rocket
次のコマンドは、現在ユーザー rocket
として操作していることを前提としています。 。
Rocket.Chat with curlの最新の安定バージョンをダウンロードします:
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
ダウンロードが完了したら、アーカイブを抽出し、ディレクトリの名前を Rocket.Chat
に変更します。 :
tar zxf rocket.chat.tgz
mv bundle Rocket.Chat
Rocket.Chat / programs / server
に変更します ディレクトリを作成し、必要なすべてのnpmパッケージをインストールします:
cd Rocket.Chat/programs/server
npm install
systemdユニットを作成し、Nginxweでリバースプロキシを設定する前にインストールをテストするために、必要な環境変数を設定し、Rocket.Chatサーバーを起動します
export PORT=3000
export ROOT_URL=http://0.0.0.0:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Rocket.Chat
に戻ります ディレクトリを作成し、 Rocket.Chat
を開始します 次のコマンドを発行してサーバー:
cd ../../
node main.js
エラーがない場合は、次の出力が表示されます。
➔ +---------------------------------------------+
➔ | SERVER RUNNING |
➔ +---------------------------------------------+
➔ | |
➔ | Rocket.Chat Version: 0.71.1 |
➔ | NodeJS Version: 8.11.3 - x64 |
➔ | Platform: linux |
➔ | Process Port: 3000 |
➔ | Site URL: http://0.0.0.0:3000/ |
➔ | ReplicaSet OpLog: Disabled |
➔ | Commit Hash: e73dc78ffd |
➔ | Commit Branch: HEAD |
➔ | |
➔ +---------------------------------------------+
CTRL + C
でRocket.Chatサーバーを停止します 。
exit
と入力して、sudoユーザーに戻ります。 次の手順に進みます。
Systemdユニットを作成する#
Rocket.Chatをサービスとして実行するには、 rocketchat.service
を作成します。 / etc / systemd / system /
内のユニットファイル ディレクトリ。
sudo nano /etc/systemd/system/rocketchat.service
次のコンテンツを貼り付けます:
/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=https://chat.example.com PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install]
WantedBy=multi-user.target
新しいユニットファイルを作成したことをsystemdに通知し、次を実行してRocket.Chatサービスを開始します。
sudo systemctl daemon-reload
sudo systemctl start rocketchat
次のように入力して、サービスステータスを確認します。
sudo systemctl status rocketchat
* rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
Main PID: 12693 (node)
Tasks: 10 (limit: 2319)
CGroup: /system.slice/rocketchat.service
`-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
最後に、次のコマンドを使用して、起動時にRocket.Chatサービスが自動的に開始されるようにします。
sudo systemctl enable rocketchat
Nginxでリバースプロキシを設定する#
Ubuntu 18.04にNginxをインストールする方法と、Ubuntu 18.04ガイドでLet’s Encryptを使用してNginxを保護する方法に従った場合は、NginxがSSL証明書でインストールおよび構成されているはずです。
次に、Rocket.Chatインストール用に新しいNginxサーバーブロックを作成する必要があります。
テキストエディタを開き、次のファイルを作成します。
sudo nano /etc/nginx/sites-available/chat.example.com.conf
/etc/nginx/sites-available/chat.example.com.conf upstream rocketchat_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name chat.example.com;
include snippets/letsencrypt.conf;
return 301 https://chat.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name chat.example.com;
ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/chat.example.com/chain.pem;
include snippets/ssl.conf;
access_log /var/log/nginx/chat.example.com-access.log;
error_log /var/log/nginx/chat.example.com-error.log;
location / {
proxy_pass http://rocketchat_backend/;
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;
}
}
ファイルからサイト対応ディレクトリへのシンボリックリンクを作成して、新しいサーバーブロックを有効にします。
sudo ln -s /etc/nginx/sites-available/chat.example.com.conf /etc/nginx/sites-enabled/
変更を有効にするには、Nginxサービスをリロードします:
sudo systemctl reload nginx
Rocket.Chatの設定#
ブラウザを開き、次のように入力します: http://chat.example.com
。
インストールが成功すると、Rocket.Chatセットアップウィザードが表示されます。このウィザードは、最初の管理者ユーザーのセットアップ、組織の構成、無料のプッシュ通知を受信するためのサーバーの登録などをガイドします。
初期設定ウィザードの最初のセクションでは、管理者ユーザーを設定するように求められます。
管理者情報の入力が完了したら、続行
をクリックします ボタンをクリックし、次のステップで組織情報を入力します:
初期設定ウィザードの3番目のセクションでは、サーバー情報を入力するように求められます。
次のステップでは、Rocket.Chatの事前構成されたゲートウェイとプロキシを使用するかどうかを尋ねられます。このオプションを選択すると、Rocket.Chatアプリマーケットプレイスやプッシュ通知などの他の機能にすぐにアクセスできます。 。
選択して、続行
をクリックします ボタンをクリックすると、ワークスペースを使用する準備ができたことを示す次のページにリダイレクトされます。
ワークスペースに移動コード>をクリックします ボタンをクリックすると、管理者ユーザーとしてログインしているRocket.Chatダッシュボードにリダイレクトされます。