Linux向けのフリーでオープンソースのエンタープライズチームチャット、Rocket.Chat

Rocket.Chatは無料でオープンソースのスケーラブルで高度にカスタマイズ可能な安全なプラットフォームで、チームとコミュニケーションを取り、ファイルを共有し、リアルタイムでチャットすることができます。クロスプラットフォームであり、Linux、Windows、macOS、Android、iOSのモバイルオペレーティングシステムで動作します。

Slackに似ており、ライブチャット、無料の音声およびビデオ会議、チャンネル、ゲストアクセス、画面共有、ファイル共有などの機能があります。安全なコミュニケーションを保証するために、LDAPグループ同期、二要素認証(2FA)、エンドツーエンド暗号化、シングルサインオン、複数のOauthプロバイダーをサポートしています。

重要なことに、完全にオープンソースであるため、ソースコードにアクセスして、チームやビジネスの要件に合わせて完全にカスタマイズしたり、拡張したり、新しい機能を追加したりすることができます。

この記事では、LinuxシステムにRocket.Chatサーバーとクライアントをインストールして設定する方法を学びます。

ステップ1:LinuxにSnapsをインストールする

1.Rocket.Chatをインストールする最も簡単な方法は、Snapsを使用することです – ほとんどの現代のLinuxディストリビューションでサポートされており、制限の厳しいセキュリティサンドボックスの下で制限されて実行されるため安全です。さらに、snapsを使用すると、パッケージの新しいバージョンが利用可能になったときに自動更新することもできます。

最初に、システムにsnapdパッケージがインストールされていることを確認し、そうでない場合はデフォルトのパッケージマネージャーを使用してインストールします。

$ sudo apt install snapd		#Ubuntu and Debian
$ sudo dnf install snapd		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install snapd		#CentOS/RHEL 7

2. インストールが完了したら、メインのsnap通信ソケットを管理するsystemdユニットを有効にする必要があります。このコマンドはソケットを起動し、システムの起動時に自動的に開始するようにします。 Ubuntuでは、パッケージのインストールが完了した後に自動的に行われるはずです。

$ sudo systemctl enable --now snapd.socket

さらに、/var/lib/snapd/snap/snapの間にシンボリックリンクを作成することで、クラシックなsnapサポートを有効にすることができます。

 
$ sudo ln -s /var/lib/snapd/snap /snap

ステップ2:LinuxでRocket.Chatをインストールする

3. Snapdがインストールされている場合は、次のコマンドを実行してrocketchat-serverをインストールします。
$ sudo snap install rocketchat-server

4. snapのインストールが完了すると、rocket.chatサーバーがデフォルトでポート3000で実行およびリッスンを開始します。ウェブブラウザを開き、次のアドレスを入力してシステム上でrocket.chatを設定します。

http://SERVER_IP:3000

5. セットアップウィザードが表示されたら、管理ユーザーのフルネーム、ユーザー名、組織のメールアドレス、およびパスワードを入力します。

Enter Your Admin Info

6. 次に、組織情報(組織のタイプ、名前、業界、サイズ、国、ウェブサイト)を入力し、[続行]をクリックします。

Enter Organization Info

7. 次に、サーバー情報(サイト名、デフォルト、サーバータイプ、2FAの有効化/無効化)を入力し、[続行]をクリックします。

Enter Server Info

次のページで、サーバーを登録します。ここでは、2つのオプションがあります。デフォルトでは、Rocket.Chatが提供する事前に設定されたゲートウェイとプロキシを使用します(これが推奨されるオプションです)。

または、スタンドアロンを維持し、サービスプロバイダーとアカウントを作成し、事前に設定された設定を更新し、モバイルアプリをプライベート証明書で再コンパイルすることも選択できます。そして、[続行] をクリックします。

Register Rocket.Chat Server

セットアップが完了し、ワークスペースが準備されました。[ワークスペースに移動] をクリックします。ステップ3: Rocket.Chatの逆プロキシの設定

Use Work Space
Rocket.Chat Home Workspace

9. NGINXApacheなどの逆プロキシを使用すると、Rocket.Chatアプリケーションをドメインやサブドメイン(たとえばhttp://chat.tecmint.com)経由でアクセス可能にすることができます。サーバーのアドレスやアプリケーションポート(たとえばhttp://10.42.0.247:3000)を入力する必要はありません。

さらに、Rocket.ChatはSSL/TLSを処理しないミドルティアのアプリケーションサーバーです。逆プロキシを使用すると、SSL/TLS証明書を構成してHTTPSを有効にすることもできます。

Rocket.ChatのNginx逆プロキシを有効にする

10.まず、システムにまだインストールされていない場合は、NGINXパッケージをインストールします。

$ sudo apt apt install nginx		#Ubuntu/Debian 
$ sudo dnf install nginx		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install nginx		#CentOS/RHEL 7

11.パッケージのインストールが完了したら、現在、Nginxサービスを開始し、システム起動時に自動的に開始されるように設定し、実行中であることを確認します。

$ sudo systemctl enable --now nginx
$ sudo systemctl status nginx

12. 次に、例えばRocket.Chatアプリケーション用の仮想サーバーブロックファイルを/etc/nginx/conf.d/ディレクトリに作成します。

$ sudo vim /etc/nginx/conf.d/chat.tecmint.com.conf

次に、ファイルに以下の設定をコピーして貼り付けます(chat.tecmint.comを有効なサブドメインまたはドメインに置き換えてください)。

upstream backend {
    server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name chat.tecmint.com;

    # You can increase the limit if you need to.
    client_max_body_size 200M;

    error_log /var/log/nginx/chat.tecmint.com.log;

    location / {
        proxy_pass http://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-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;
    }
}

ファイルを保存して閉じます。

13. 次に、NGINXの構成を構文エラーの有無で確認します。OKなら、最近の変更を適用するためにNginxサービスを再起動します。

$ sudo nginx -t
$ sudo systemctl restart nginx

Rocket.ChatのApacheリバースプロキシを有効にする

14. システムにまだインストールされていない場合は、Apache2パッケージをインストールしてください。

$ sudo apt install apache2		#Ubuntu/Debian 
$ sudo dnf install httpd		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install httpd		#CentOS/RHEL 7

15. 次に、apacheサービスを起動して有効にし、以下のように実行されているかどうかを確認します。

----- On Ubuntu/Debian -----
$ sudo systemctl enable --now apache2 	
$ sudo systemctl status apache2

----- On CentsOS/RHEL 7/8 ----- 
$ sudo systemctl enable --now httpd
$ sudo systemctl status httpd

16. 次に、例えばRocket.Chatアプリケーション用の仮想ホストファイルを/etc/apache2/sites-available/または/etc/httpd/conf.d/ディレクトリに作成します。

----- On Ubuntu/Debian -----
$ sudo vim /etc/apache2/sites-available/chat.tecmint.com.conf

----- On CentsOS/RHEL 7/8 ----- 
$ sudo vim /etc/httpd/conf.d/chat.tecmint.com.conf

17. 以下の設定をコピーして貼り付け、chat.tecmint.comを有効なドメインに置き換えます。

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName chat.tecmint.com

    LogLevel info
    ErrorLog /var/log/chat.tecmint.com_error.log
    TransferLog /var/log/chat.tecmint.com_access.log

    <Location />
        Require all granted
    </Location>

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

    ProxyPassReverse /          http://localhost:3000/
</VirtualHost>

ファイルを保存して閉じます。

18. UbuntuとDebianでは、必要なapache2モジュールを有効にしてサービスを再起動して、最近の変更を適用します。

$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_wstunnel
$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

CentOS/RHELとFedoraでは、単純にapacheサービスを再起動します。

# systemctl restart httpd

19. 今、すべてが正しく設定されています。ブラウザを開き、次のアドレスを入力してください。プロキシサーバーで構成されたドメインを使用して、Rocket.Chatアプリケーションにアクセスできるはずです。

http://chat.tecmint.com
Rocket.Chat Login Screen

20. 次の重要なステップは、チャットサービスにHTTPS証明書のセキュリティとプライバシーの利点を追加することです。本番環境では、ほとんどの最新のウェブブラウザで信頼されている無料のLet’s Encryptを使用することをお勧めします。

Let’s Encryptは自動化されていることに注意してください:メインストリームのLinuxディストリビューションやWebサーバーで、無料のオープンソースツールであるcertbotを使用して、Let’s Encrypt証明書を自動的に取得してインストールするか、単に取得して手動でインストールできます。

ステップ4:デスクトップ上でRocket.Chatクライアントをインストールする

21. 最後に、Rocket.ChatデスクトップアプリケーションをLinux、Mac、またはWindowsからRocket.Chatプロジェクトのウェブサイトからダウンロードしてインストールすることができます。AndroidとiOS用のモバイルアプリも提供されています。

Linuxでデスクトップアプリケーションをインストールするには、Linuxディストリビューションに応じてdeb(x64)またはrpm(x64)パッケージをダウンロードします。

$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat_2.17.7_amd64.deb
OR
$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat-2.17.7.x86_64.rpm

22.その後、次に示すようにdpkgまたはrpmパッケージマネージャーを使用してパッケージをインストールします。

$ sudo dpkg -i rocketchat_2.17.7_amd64.deb      #Ubuntu/Debian
$ sudo rpm -i rocketchat-2.17.7.x86_64.rpm      #CentOS/RedHat

23.パッケージのインストールが完了したら、システムメニューrocket.chatを検索し、それを起動します。ロード後、次のスクリーンショットに示すようにサーバーのURLを入力して接続します。

Source:
https://www.tecmint.com/rocket-chat-open-source-team-chat-for-linux/